01/10/2018, 10:01

Làm cách nào để biết khi người dùng chọn chương trình nào thì biết tên chương trình đó

Em đang muốn làm 1 phần mềm bằng visual c# như sau : khi người dùng đang dùng chrome thì nó sẽ hiển thị “bạn đang dùng chrome” rồi khi mình chuyển qua chương trình khác chẳng hạn như window media thì nó sẽ báo là “bạn đang dùng window media”. Nhưng em chưa biết làm cách nào để biết khi người dùng chọn chương trình nào thì biết tên chương trình đó. Mong các cao nhân chỉ bảo giúp em ạ.

明玉 viết 12:10 ngày 01/10/2018

Đăng kí một sự kiện global, khi user bấm vào một cửa sổ thì callback sẽ chạy và cho bạn đầy đủ mọi thứ, quan trọng nhất là hwnd của cửa sổ đó. Tham khảo:

stackoverflow.com
Vasyl Boroviak

Is there Windows system event on active window changed?

c#, .net, windows, winapi
asked by Vasyl Boroviak on 10:01AM - 10 Dec 10

Nếu bạn cần gấp, không cần chính xác thì có thể liên tục gọi API này GetForegroundWindow.

Có HWND rồi thì bạn có thể query nhiều thứ của cửa sổ đó, query được cả process, thread của nó luôn. Từ một HWND có thể móc ra chính xác tên của ứng dụng đó (không phải tên của exe), chính xác giống như trong Task Manager, nhưng hơi phức tạp.

Link trên có đáp án dùng code C++, bạn phải học về P/Invoke để chuyển được cái đó lên C#.

Bài liên quan
0