Win32 API概念:即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。
Win32 API作用:应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。
Win32 API使用:C#中使用DllImport关键字引入包含非托管方法的 DLL 的名称。例如user32.dll。
user32.dll概念:user32.dll是Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。
通过案例演示如何使用user32.dll关闭“MyLove”这个程序,首先引入命名空间
1 using System.Windows.Forms; 2 using System.Runtime.InteropServices;
通过DllImport引入user32.dll,这是核心代码
1 [DllImport("User32.dll", EntryPoint = "FindWindow")] 2 private static extern int FindWindow(string lpClassName, string lpWindowName); 3 private static void CloseWin() 4 { 5 const int WM_CLOSE = 0x10; //关闭 6 const uint WM_DESTROY = 0x02; 7 const uint WM_QUIT = 0x12; 8 const int BM_CLICK = 0xF5; //单击 9 IntPtr Window_Handle = (IntPtr)FindWindow(null, "MyLove");//查找所有的窗体,看看想查找的句柄是否存在,Microsoft Word 句柄 10 if (Window_Handle == IntPtr.Zero) //如果没有查找到相应的句柄 11 { 12 MessageBox.Show("没有找到窗体"); 13 } 14 else //查找到相应的句柄 15 { 16 SendMessage(Window_Handle, WM_CLOSE, 0, 0); //关闭窗体 17 } 18 }
控制台住函数入口处进行调用
1 static void Main(string[] args) 2 { 3 Console.Title = "关闭其他窗体"; 4 CloseWin(); 5 }