Với winapi32.dll - Không cần viết Declare trong VB6 project nữa! (4 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hai2hai

VNUNi®
Thành viên danh dự
Tham gia
14/6/06
Bài viết
1,137
Được thích
2,297
Nghề nghiệp
Tư vấn giải pháp bán lẻ
Actually, winapi32.dll is a typelib from MKTYPLIB tool. It has been made so that declarations don't have to be typed at VB IDE. Just set the reference and start using the API from most of the system dlls. A Huge collection of apis from GDI32,USER32,GDIPLUS,KERNEL32 and ADVAPI32. Best for the developers like me

Original source

Các bạn chỉ cần download file DLL ở topic này, sau đó reference tới mọi ứng dụng viết trên VB6, VBA. Như vậy là khi các bạn sử dụng các hàm APIs của Windows thì thoái mái dùng mà ko cần phải declare trong project nữa.

Hope that helps!
 

File đính kèm

Lần chỉnh sửa cuối:
Cái này ứng dụng vào việc gì vậy? Nghe có vẻ cao siêu quá, a có thể cho vd và giải thích thêm 1 chút được o?
 
File bị Hai2hai ơi! Có thể up lại được không? Em tải về bị lỗi rồi, không dùng được.
 
Thông báo lỗi cần được mô tả rõ ràng nhé.

- Bước gây ra lỗi (Tức là làm những gì, đến đâu thì xảy ra lỗi)
- Mô tả thông báo lỗi.

P/S: Chỉ cần Add to project bằng cách Reference tới file này. Tuy nhiên, để mình kiểm tra lại lần nữa về file DLL bên trong xem có hoạt động không đã.

@All: Nếu ai không biết tới APIs là gì thì bỏ qua nhé. Không cần download đâu.
 
Lần chỉnh sửa cuối:
À, bác đừng giận! Chỉ là tải file về bị lỗi thôi! Là lỗi WinRAR: Diagnostic messages chứ không phải registered đâu!
 
Tôi đã kiểm tra file DLL bên trong và thấy đã hoạt động tốt.

Để sử dụng thì các bạn làm như sau:

- Copy file winapi32.dll vào 1 thư mục hệ thống (ví dụ: C:\Windows\System32)
- Mở Project, chọn project reference tới file này. (File này là file dạng thư viện tlb nên không cần đăng ký như Dll bình thường).

Chú ý: Một khi file này đã được đăng ký vào hệ thống qua việc project reference thì khi di chuyển file, các bạn phải xóa đăng ký ở trong Registry rồi mới có thể dùng lại ở 1 thư mục khác. Vì thế hãy nên để nó ở thư mục hệ thống và không nên di chuyển nhiều lần tới nơi khác (vì đây là tlb chứ ko phải là dll thực sự nên ko thể dùng phương pháp unregisterd & register được như đối với dll).

- Sau đó, trong các project đã sử dụng thư viện tlb này, chỉ việc sài các APIs functions mà không cần khai báo gì cả.

P/S: Những ai chưa quen APIs là gì thì tự tìm hiểu trên mạng nhé. Tôi không lấy ví dụ vì cái này chả có ví dụ gì cả. File này dành cho những người viết VB6 mà thường xuyên dùng đến hàm APIs thôi.

Việc các bạn không download được thì không nên thắc mắc vì đó là lỗi download của các bạn. Tôi đã download và mở file bình thường.
 
Lần chỉnh sửa cuối:
Hì, cái này hay đấy, nhưng khi chương trình biên dịch exe rồi khi đem (file chạy này) sang máy khác có phải kèm theo tlb này không?
 
File win.tlb Tôi úp phía dưới nó như bài số 1
cho ai nếu sử dụng trên VB6 + VBA 32 bít ... nếu thích thì sử dụng
còn sử dụng sao thì chịu khó Google nhé

Còn nếu Bạn nào muốn tò mò hỏi cách sử dụng ... thì tôi gợi ý cho tí tẹo thôi nhé

Tìm trên GPE này tên nick có chữ cái đầu tiên là S hoặc B ....
Hỏi xem anh ấy chỉ dẫn cho mà sử dụng
-0-0-0- ===\.
 

File đính kèm

Lần chỉnh sửa cuối:
Bây giờ em mới biết nick @hai2hai là của anh người dơi, hồi xưa em hay đọc bài của khunglongbeo với hai2hai lắm
 
ứ phải đâu mà người ta xem ông s với ông b có biết xài hay ko đó thui
mà chắc chắn là biết xài ............. ko như ai đó cứ ộp ộp đáy giếng đó thôi -0-0-0-

trong đó là 1 thư viện API 32 khổng lồ

1632919167908.png
Bài đã được tự động gộp:

tây nó phán như sau

1632919291704.png

Google nó keo như sau

Một API được khai báo với câu lệnh Declare là những API có giới hạn muộn.
Bạn có thể sử dụng nó để kiểm tra xem một hàm có tồn tại hay không (như IsWow64Process) và xử lý kết quả.
Các API dựa trên TLB là các API được giới hạn sớm (chúng được đặt trong bảng nhập) và nếu không tồn tại một hàm,
tệp thực thi sẽ không chạy với thông báo cửa sổ tiêu chuẩn.
Cách tiếp cận dựa trên TLB nhanh hơn một chút.

....
....
chỉ là ta ở nhà né dịch lâu quá trong một góc nào đó mà ít khi biết ngoài kia nó như thế nào thôi
 
Lần chỉnh sửa cuối:
Thì nó cũng như các thư viện nhìn thấy trong cửa sổ References - VBAProject thôi chứ có gì to tát mà phải khoe.

Mỗi một tập tin Excel mới sẽ có các thư viện được thêm tự động như: Visual Basic For Applications, Microsoft Excel ... Object Library, OLE Automation, Microsoft Office ... Object Library. Chính OLE Automation là một OLE Type Library - thư viện stdole2.TLB. Hay Microsoft ActiveX Data Objects 2.8 Library cũng là thư viện msado28.TLB.

Trong cửa sổ References - VBAProject cũng có thể nhấn nút Browse ... -> duyệt tới thư viện TLB rồi thêm vào -> sử dụng bình thường thư viện.
 
ha há cái tiêu đề to trà bá ... còn ta cứ bay và mây cứ trôi trên 9 tầng trời .... ai đó muốn học thì tới mùa quýt khô là học được ===> 123 Run -0-0-0-

Trước khi chạy thì để lại chút gì cho gió

thay vì ta sử dụng Hàm API trên VBA nếu ko check thư viện trên thì bắt buộc ta phải khai báo API như sau thì mới sử dụng được
Mã:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
          (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
          ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Còn nếu check thư viện trên thì ta bỏ hoàn toàn khai báo Declare API mà chỉ cần như sau thôi
Mã:
Public Sub Open_doc(Path As String)
    Dim ScrDC&
    ScrDC = GetDesktopWindow()
    ShellExecute ScrDC, "Open", Path, "", "C:\", SW_SHOWNORMAL
End Sub

Phương pháp trên Tạm keo là kết nối sớm nhanh hơn khai báo Declare một chút ( còn khai báo Declare tạm keo là kết nối muộn )
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom