2010-02-15 38 views

Trả lời

13

Nếu bạn đang ở trên biểu mẫu: Me.hWnd. Nếu bạn không biết mà hình thức là hình thức hiện tại: Screen.ActiveForm.hWnd

2

Nó được một thời gian dài kể từ khi tôi sử dụng VB6, nhưng đây là những gì tôi nhớ:

Bạn sẽ muốn mở Viewer API, mà phải ở trong Start Menu xung quanh mục VB6. Khi bạn mở nó, bạn muốn chọn win32api.txt, và bạn sẽ nhận được một danh sách tất cả các hàm API của Win32. Đây là cách dễ nhất để không làm hỏng các chữ ký chức năng. Sao chép và dán khai báo hàm vào một trong các mô-đun VB6 của bạn.

Tôi luôn "lừa" và chỉ tìm cửa sổ của mình theo tên phụ đề, thay vì lặp qua tất cả các cửa sổ có sẵn bằng GetWindow. Nếu bạn đồng ý với điều này, bạn muốn sử dụng FindWindow và chuyển tên chú thích làm thông số thứ hai.

8

Sử dụng Windows API, GetForegroundWindow() sẽ nhận được tay cầm của cửa sổ topmost bất kể là ứng dụng nó là từ đâu, và GetActiveWindow() sẽ nhận được tay cầm của ứng dụng của bạn của cửa sổ đang hoạt động. Tuyên bố Declare bạn sẽ cần:

Declare Function GetForegroundWindow Lib "user32.dll"() As Long 
Declare Function GetActiveWindow Lib "user32.dll"() As Long 

Gọi một trong hai chức năng sẽ trở lại tay cầm cửa sổ như mô tả ở trên.

+0

+1. Rõ ràng cửa sổ hiện đang hoạt động có thể không phải là một biểu mẫu. – MarkJ

+0

+1 Câu trả lời hay. –

Các vấn đề liên quan