在C#中,FindWindow
函数用于查找具有指定窗口类名或窗口标题的顶级窗口
[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);
}
要设置FindWindow
的查找选项,您可以使用SetWindowLongPtr
函数来修改窗口样式。例如,如果您想要查找一个不可激活的窗口,可以使用以下代码:
IntPtr hwnd = FindWindow("ClassName", "WindowTitle");
if (hwnd != IntPtr.Zero)
{
// 设置窗口样式为不可激活
SetWindowLongPtr(hwnd, GWL_EXSTYLE, GetWindowLongPtr(hwnd, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
}
请注意,您需要根据实际情况替换"ClassName"
和"WindowTitle"
为您要查找的窗口的类名和窗口标题。