Thứ Hai, 20 tháng 2, 2012

// // 2 comments

Lấy Handle, Title của cửa sổ Windows đang hoạt động - C#


Snippet sử dụng hàm thư viện để lấy Handle của cửa sổ chương trình đang hoạt động sử dụng C#


// Khai báo thư viện hàm
using System.Runtime.InteropServices;

// Khai báo sử dụng hàm thư viện Api Win32, chú ý phải đặt trong 1 class nào đó
[DllImport("user32.dll")]
private static extern int GetForegroundWindow();
[DllImport("user32.dll")]
private static extern int GetWindowText(int hWnd, StringBuilder text, int count);


    // Cách thực hiện mã nguồn như sau, chú ý được viết trong 1 phương thức nào đó

    int chars = 256;
    StringBuilder buff = new StringBuilder(chars);
    int handle = GetForegroundWindow();
    if (GetWindowText(handle, buff, chars) > 0)
    {
        lbNameWindow.Text = buff.ToString();
        lbHandle.Text = handle.ToString();
        if (new IntPtr(handle) == this.Handle)
        {
            // Yes
        }
        else
        {
            // No
        }
   }

2 comments:

Unknown nói...

Còn việc lấy Classname của của sổ đang hoạt động thế nào nhỉ?
Mnhf vẫn chưa hiểu cái handl này!

a nói...

Có handle rồi bạn có thể lấy className bằng hàm GetClassName