需調(diào)用API函數(shù) 需在開(kāi)頭引入命名空間 using System.Runtime.InteropServices; 獲取當(dāng)前窗口句柄:GetForegroundWindow() [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern IntPtr GetForegroundWindow(); 返回值類(lèi)型是IntPtr,即為當(dāng)前獲得焦點(diǎn)窗口的句柄 使用方法 : IntPtr myPtr=GetForegroundWindow(); 獲取到該窗口句柄后,可以對(duì)該窗口進(jìn)行操作.比如,關(guān)閉該窗口或在該窗口隱藏后,使其顯示 [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern int ShowWindow(IntPtr hwnd, int nCmdShow); 其中ShowWindow(IntPtr hwnd, int nCmdShow); nCmdShow的含義 0 關(guān)閉窗口 1 正常大小顯示窗口 2 最小化窗口 3 最大化窗口 使用實(shí)例: ShowWindow(myPtr, 0); 獲取窗口大小及位置: 需要調(diào)用方法GetWindowRect(IntPtr hWnd, ref RECT lpRect) [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect); [StructLayout(LayoutKind.Sequential)] public struct RECT { public int Left; //最左坐標(biāo) public int Top; //最上坐標(biāo) public int Right; //最右坐標(biāo) public int Bottom; //最下坐標(biāo) } 示例: InPtr awin = GetForegroundWindow(); //獲取當(dāng)前窗口句柄 RECT rect = new RECT(); GetWindowRect(awin, ref rect); int width = rc.Right - rc.Left; //窗口的寬度 int height = rc.Bottom - rc.Top; //窗口的高度 int x = rc.Left; int y = rc.Top; |
|
來(lái)自: 昵稱(chēng)15242507 > 《C#》