怎樣設(shè)置C# FindWindow的查找選項(xiàng)

c#
小樊
81
2024-11-19 14:26:44
欄目: 編程語言

在C#中,FindWindow函數(shù)用于查找具有指定窗口類名或窗口標(biāo)題的頂級(jí)窗口

[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("user32.dll", SetLastError = true)]
static extern bool SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr dwNewLong);

[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex);

const int GWL_EXSTYLE = -20;
const int WS_EX_NOACTIVATE = 0x08000000;

public static IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow)
{
    return FindWindowEx(hwndParent, hwndChildAfter, lpszClass, lpszWindow);
}

要設(shè)置FindWindow的查找選項(xiàng),您可以使用SetWindowLongPtr函數(shù)來修改窗口樣式。例如,如果您想要查找一個(gè)不可激活的窗口,可以使用以下代碼:

IntPtr hwnd = FindWindow("ClassName", "WindowTitle");
if (hwnd != IntPtr.Zero)
{
    // 設(shè)置窗口樣式為不可激活
    SetWindowLongPtr(hwnd, GWL_EXSTYLE, GetWindowLongPtr(hwnd, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
}

請(qǐng)注意,您需要根據(jù)實(shí)際情況替換"ClassName""WindowTitle"為您要查找的窗口的類名和窗口標(biāo)題。

0