Thứ Hai, ngày 20 tháng 2 năm 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:

tuấn anh 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!

lex luther nói...

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