DLL动态链接库,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。
user32.dll是Windows用户界面相关应用程序接口(API),用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。使用系统API函数时需要在命名空间添加System.Runtime.InteropServices
ExitWindowsEx函数位于user32.dll动态链接库中,主要用来退出Windows操作系统,并用特定的选项重新启动,其语法格式如下:
[Dllimport("user32.dll",EntityPoint="ExitWindowEx",CharSet=CharSet.Ansi)] //C#中[]用于外部DLL类库的引用。
private static int ExitWindowsEx(int uFlags,int dwReserved);
参数说明:
uFlags:要执行的操作
4:强迫中止没有响应的进程
0:中止进程然后注销
2:重新启动
1:关闭系统
dwReserved:一般设为0。
注销计算机的实现代码如下:
[DllImport("user32.dll", EntryPoint = "ExitWindowsEx", CharSet = CharSet.Ansi)]
private static extern int ExitWindowsEx(int uFlags, int dwReserved);
ExitWindowsEx(0, 0);