在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)題。