企业网站的开发背景,网址地址,网络营销的策略包括,广西网站建设软件推广有的程序可以打开多个窗口并显示在任务栏上。某些情况下#xff0c;我们需要找到窗口做些事情时#xff0c;可以参考下面的代码。 public static class Win32Api{[DllImport(user32.dll, SetLastError true)]public static extern bool EnumWindows(EnumWindows…有的程序可以打开多个窗口并显示在任务栏上。某些情况下我们需要找到窗口做些事情时可以参考下面的代码。
public static class Win32Api{[DllImport(user32.dll, SetLastError true)]public static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam);public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);[DllImport(user32.dll, SetLastError true)]public static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);[DllImport(user32.dll)]public static extern bool IsWindowVisible(IntPtr hWnd);[DllImport(user32.dll, SetLastError true)]public static extern IntPtr GetWindow(IntPtr hWnd, GetWindow_Cmd uCmd);public enum GetWindow_Cmd : uint{GW_HWNDFIRST 0,GW_HWNDLAST 1,GW_HWNDNEXT 2,GW_HWNDPREV 3,GW_OWNER 4,GW_CHILD 5,GW_ENABLEDPOPUP 6}}class Program{static void Main(string[] args){GetWindowCount(Process.GetProcessesByName(myapp)[0]);}private static void GetWindowCount(Process process){int windowCount 0;Thread.Sleep(1000);int processId process.Id;Win32Api.EnumWindows((IntPtr hWnd, IntPtr lParam) {int id;Win32Api.GetWindowThreadProcessId(hWnd, out id);IntPtr parentWindow Win32Api.GetWindow(hWnd, Win32Api.GetWindow_Cmd.GW_OWNER);if (id processId parentWindow IntPtr.Zero Win32Api.IsWindowVisible(hWnd)){windowCount;}return true;}, IntPtr.Zero);Debug.WriteLine($process window: {windowCount});}}