function TForm1.GetLocaleInformation(Flag: Integer): String;
var
pcLCA: Array[0..20] of Char;
begin
if( GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,Flag,pcLCA,19) <= 0 ) then begin
pcLCA[0] := #0;
end;
Result := pcLCA;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetLocaleInformation(LOCALE_SENGLANGUAGE));
end;
参数"Flag"可以取下列值:
LOCALE_NOUSEROVERRIDE { do not use user overrides }
LOCALE_USE_CP_ACP { use the system ACP }
LOCALE_ILANGUAGE { 语言代号 }
LOCALE_SLANGUAGE { 本地语言名称 }
LOCALE_SENGLANGUAGE { 语言的英语名 }
LOCALE_SABBREVLANGNAME { 语言名称缩写 }
LOCALE_SNATIVELANGNAME { 本地语言名称 }
LOCALE_ICOUNTRY { 国家代号 }
LOCALE_SCOUNTRY { 国家名 }
LOCALE_SENGCOUNTRY { 国家的英语名称 }
LOCALE_SABBREVCTRYNAME { 国家名缩写 }
LOCALE_SNATIVECTRYNAME { 国家名 }
LOCALE_IDEFAULTLANGUAGE { 缺省语言代号 }
LOCALE_IDEFAULTCOUNTRY { 缺省国家代码 }
LOCALE_IDEFAULTCODEPAGE { 缺省oem代码页 }
LOCALE_IDEFAULTANSICODEPAGE { 缺省ansi代码页 }
LOCALE_IDEFAULTMACCODEPAGE { 缺省mac页 }
LOCALE_SLIST { 列表项分割符 }
LOCALE_IMEASURE { 测量单位0 = 米制, 1 = 英制 }
LOCALE_SDECIMAL { 小数点符号 }
LOCALE_STHOUSAND { 千位分割符 }
LOCALE_SGROUPING { digit grouping }
LOCALE_IDIGITS { number of fractional digits }
LOCALE_ILZERO { leading zeros for decimal }
LOCALE_INEGNUMBER { 负数模式 }
LOCALE_SNATIVEDIGITS { native ascii 0-9 }
LOCALE_SCURRENCY { 本地货币符号 }
LOCALE_SINTLSYMBOL { 国际货币符号 }
LOCALE_SMONDECIMALSEP { 货币小数点分割符 }
LOCALE_SMONTHOUSANDSEP { 货币千位分割符 }
LOCALE_SMONGROUPING { monetary grouping }
LOCALE_ICURRDIGITS { # local monetary digits }
LOCALE_IINTLCURRDIGITS { # intl monetary digits }
LOCALE_ICURRENCY { positive currency mode }
LOCALE_INEGCURR { negative currency mode }
LOCALE_SDATE { 日期分割符 }
LOCALE_STIME { 时间分割符 }
LOCALE_SSHORTDATE { 短日期字符串 }
LOCALE_SLONGDATE { 长日期字符串 }
LOCALE_STIMEFORMAT { time format string }
LOCALE_IDATE { short date format ordering }
LOCALE_ILDATE { long date format ordering }
LOCALE_ITIME { time format specifier }
LOCALE_ITIMEMARKPOSN { time marker position }
LOCALE_ICENTURY { century format specifier (short date) }
LOCALE_ITLZERO { leading zeros in time field }
LOCALE_IDAYLZERO { leading zeros in day field (short date) }
LOCALE_IMONLZERO { leading zeros in month field (short date) }
LOCALE_S1159 { AM designator }
LOCALE_S2359 { PM designator }
LOCALE_ICALENDARTYPE { type of calendar specifier }
LOCALE_IOPTIONALCALENDAR { additional calendar types specifier }
LOCALE_IFIRSTDAYOFWEEK { first day of week specifier }
LOCALE_IFIRSTWEEKOFYEAR { first week of year specifier }
LOCALE_SDAYNAME1 { long name for Monday }
LOCALE_SDAYNAME2 { long name for Tuesday }
LOCALE_SDAYNAME3 { long name for Wednesday }
LOCALE_SDAYNAME4 { long name for Thursday }
LOCALE_SDAYNAME5 { long name for Friday }
LOCALE_SDAYNAME6 { long name for Saturday }
LOCALE_SDAYNAME7 { long name for Sunday }
LOCALE_SABBREVDAYNAME1 { 星期一的缩写 }
LOCALE_SABBREVDAYNAME2 { 星期二的缩写 }
LOCALE_SABBREVDAYNAME3 { 星期三的缩写 }
LOCALE_SABBREVDAYNAME4 { 星期四的缩写 }
LOCALE_SABBREVDAYNAME5 { 星期五的缩写 }
LOCALE_SABBREVDAYNAME6 { 星期六的缩写 }
LOCALE_SABBREVDAYNAME7 { 星期天的缩写 }
LOCALE_SMONTHNAME1 { long name for January }
LOCALE_SMONTHNAME2 { long name for February }
LOCALE_SMONTHNAME3 { long name for March }
LOCALE_SMONTHNAME4 { long name for April }
LOCALE_SMONTHNAME5 { long name for May }
LOCALE_SMONTHNAME6 { long name for June }
LOCALE_SMONTHNAME7 { long name for July }
LOCALE_SMONTHNAME8 { long name for August }
LOCALE_SMONTHNAME9 { long name for September }
LOCALE_SMONTHNAME10 { long name for October }
LOCALE_SMONTHNAME11 { long name for November }
LOCALE_SMONTHNAME12 { long name for December }
LOCALE_SMONTHNAME13 { long name for 13th month (if exists) }
LOCALE_SABBREVMONTHNAME1 { 一月的缩写 }
LOCALE_SABBREVMONTHNAME2 { 二月的缩写 }
LOCALE_SABBREVMONTHNAME3 { 三月的缩写 }
LOCALE_SABBREVMONTHNAME4 { 四月的缩写 }
LOCALE_SABBREVMONTHNAME5 { 五月的缩写 }
LOCALE_SABBREVMONTHNAME6 { 六月的缩写 }
LOCALE_SABBREVMONTHNAME7 { 七月的缩写 }
LOCALE_SABBREVMONTHNAME8 { 八月的缩写 }
LOCALE_SABBREVMONTHNAME9 { 九月的缩写 }
LOCALE_SABBREVMONTHNAME10 { 十月的缩写 }
LOCALE_SABBREVMONTHNAME11 { 十一月的缩写 }
LOCALE_SABBREVMONTHNAME12 { 十二月的缩写 }
LOCALE_SABBREVMONTHNAME13 { 十三月的缩写(如果有的话) }
LOCALE_SPOSITIVESIGN { 正号 }
LOCALE_SNEGATIVESIGN { 负号 }
LOCALE_IPOSSIGNPOSN { 正号位置 }
LOCALE_INEGSIGNPOSN { 负号位置 }
LOCALE_IPOSSYMPRECEDES { mon sym precedes pos amt }
LOCALE_IPOSSEPBYSPACE { mon sym sep by space from pos amt }
LOCALE_INEGSYMPRECEDES { mon sym precedes neg amt }
LOCALE_INEGSEPBYSPACE { mon sym sep by space from neg amt }
LOCALE_FONTSIGNATURE { font signature }
LOCALE_SISO639LANGNAME { ISO 缩写语言名称 }
LOCALE_SISO3166CTRYNAME { ISO 缩写国家名称 }
1、获取windows版本信息
可以通过Windows API函数GetVersionEx来获得。
具体程序如下:
Procedure Tform1.Button1Click(sender:TObject);
Var()
OSVI:OSVERSIONINFO;
begin()
OSVI.dwOSversioninfoSize:=Sizeof(OSVERSIONINFO);
GetVersionEx(OSVI);
label1.Caption:=IntToStr(OSVI.dwMinorVersion)+','
+IntToStr(OSVI.dwMinorVersion)+','
+IntToStr(OSVI.dwBuildNumber)+','
+IntToStr(OSVI.dwPlatformId)+','
+OSVI.szCSDVersion;
end;
end.
2、获取CPU信息
可以通过Windows API函数GetSystemInfo来获得有关信息。
具体程序如下:
procedure TForm1.Button1Click(Sender: TObject);
Var()
SysInfo:SYSTEM_INFO;
begin()
GetSystemInfo(Sysinfo);
Edit1.Text:='系统中有'+IntToStr(Sysinfo.dwNumberOfProcessors)+'个CPU'
+',类型为'+IntToStr(Sysinfo.dwProcessorType);
end;
end.
3、获取内存信息
可以通过Windows API函数GlobalMemoryStatus来获得内存信息。
具体程序如下:
procedure TForm1.Button1Click(Sender: TObject);
Var()
MemInfo:MEMORYSTATUS;
begin()
MemInfo.dwLength:=sizeof(MEMORYSTATUS);
GlobalMemoryStatus(MemInfo);
memo1.Lines.Add(IntToStr(MemInfo.dwMemoryLoad)+'%的内存正在使用') ;
memo1.Lines.Add('物理内存共有'+IntToStr(MemInfo.dwTotalPhys)+'字节');
memo1.Lines.Add('可使用的物理内存有'+IntToStr(MemInfo.dwAvailPhys)+'字节');
memo1.Lines.Add('交换文件总大小为'+IntToStr(MemInfo.dwTotalPageFile)+'字节') ;
memo1.Lines.Add('尚可交换文件大小为'+IntToStr(MemInfo.dwAvailPageFile)+'字节');
memo1.Lines.Add('总虚拟内存有'+IntToStr(MemInfo.dwTotalVirtual)+'字节');
memo1.Lines.Add('未用虚拟内存有'+IntToStr(MemInfo.dwAvailVirtual)+'字节');
end;
end.
或用以下代码:
memo1.Text:=IntToStr(MemInfo.dwMemoryLoad)+'%的内存正在使用'+#13#10
+'可使用的物理内存有'+IntToStr(MemInfo.dwAvailPhys)+'字节'+#13#10
+'交换文件总大小为'+IntToStr(MemInfo.dwTotalPageFile)+'字节'+#13#10
+'尚可交换文件大小为'+IntToStr(MemInfo.dwAvailPageFile)+'字节'+#13#10
+'总虚拟内存有'+IntToStr(MemInfo.dwTotalVirtual)+'字节'+#13#10
+'未用虚拟内存有'+IntToStr(MemInfo.dwAvailVirtual)+'字节';
来替代memo1.line.add(…)部分。
4、获取Windows和系统路径
可以通过Windows(API函数来获得)
具体程序如下:
procedure TForm1.Button1Click(Sender: TObject);
Var()
SysDir:array[0..128] of char;
begin()
GetWindowsDirectory(SysDir,128);
Edit1.Text:='Windows 路径:'+SysDir;
GetSystemDirectory(SysDir,128);
Edit1.Text:=Edit1.Text+'; 系统路径:'+SysDir;
end;
5、获取用户注册信息
我们都知道,一般在软件安装过程中,它都会提示用户,要求输入系列号或产品号和用户的一些注册信息(用户
的公司名称、用户名等)以及安装的目录和路径等。
通过以下代码可查看用户注册信息:
procedure TForm1.Button1Click(Sender: TObject);
Var()
Reg:TRegistry;
begin()
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software/Microsoft/Windows NT/CurrentVersion',False);
Edit1.Text:='当前路径:'+Reg.CurrentPath;
Edit2.Text:='产品系列号:'+Reg.ReadString('ProductId');
Edit3.Text:='产品名:'+Reg.ReadString('ProductName');
Edit4.Text:='注册公司名称:'+Reg.ReadString('RegisteredOrganization');
Edit5.Text:='用户名:'+Reg.ReadString('RegisteredOwner');
Edit6.Text:='软件类型:'+Reg.ReadString('SoftwareType');
Reg.CloseKey;
Reg.Free;
end;
注意:在程序编译之前,必须在USES语句下添加registry单元。
6、关闭Widows
可以通过Windows API函数ExitWindowsEx来关闭Widows。
procedure TForm1.Button1Click(Sender: TObject);
begin()
If RadioButton1.Checked = True Then
ExitWindowsEx(EWX_LOGOFF,0) //以其他用户身份登录
ElseIf RadioButton2.Checked = True Then
ExitWindowsEx(EWX_SHUTDOWN,1) //安全关机
ElseIf RadioButton3.Checked = True Then
ExitWindowsEx(EWX_REBOOT,2) //重新启动计算机
ElseIf RadioButton4.Checked = True Then
ExitWindowsEx(EWX_FORCE,4) //强行关机
ElseIf RadioButton5.Checked = True Then
ExitWindowsEx(EWX_POWEROFF,8); //关闭系统并关闭电源
end;
var
pcLCA: Array[0..20] of Char;
begin
if( GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,Flag,pcLCA,19) <= 0 ) then begin
pcLCA[0] := #0;
end;
Result := pcLCA;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetLocaleInformation(LOCALE_SENGLANGUAGE));
end;
参数"Flag"可以取下列值:
LOCALE_NOUSEROVERRIDE { do not use user overrides }
LOCALE_USE_CP_ACP { use the system ACP }
LOCALE_ILANGUAGE { 语言代号 }
LOCALE_SLANGUAGE { 本地语言名称 }
LOCALE_SENGLANGUAGE { 语言的英语名 }
LOCALE_SABBREVLANGNAME { 语言名称缩写 }
LOCALE_SNATIVELANGNAME { 本地语言名称 }
LOCALE_ICOUNTRY { 国家代号 }
LOCALE_SCOUNTRY { 国家名 }
LOCALE_SENGCOUNTRY { 国家的英语名称 }
LOCALE_SABBREVCTRYNAME { 国家名缩写 }
LOCALE_SNATIVECTRYNAME { 国家名 }
LOCALE_IDEFAULTLANGUAGE { 缺省语言代号 }
LOCALE_IDEFAULTCOUNTRY { 缺省国家代码 }
LOCALE_IDEFAULTCODEPAGE { 缺省oem代码页 }
LOCALE_IDEFAULTANSICODEPAGE { 缺省ansi代码页 }
LOCALE_IDEFAULTMACCODEPAGE { 缺省mac页 }
LOCALE_SLIST { 列表项分割符 }
LOCALE_IMEASURE { 测量单位0 = 米制, 1 = 英制 }
LOCALE_SDECIMAL { 小数点符号 }
LOCALE_STHOUSAND { 千位分割符 }
LOCALE_SGROUPING { digit grouping }
LOCALE_IDIGITS { number of fractional digits }
LOCALE_ILZERO { leading zeros for decimal }
LOCALE_INEGNUMBER { 负数模式 }
LOCALE_SNATIVEDIGITS { native ascii 0-9 }
LOCALE_SCURRENCY { 本地货币符号 }
LOCALE_SINTLSYMBOL { 国际货币符号 }
LOCALE_SMONDECIMALSEP { 货币小数点分割符 }
LOCALE_SMONTHOUSANDSEP { 货币千位分割符 }
LOCALE_SMONGROUPING { monetary grouping }
LOCALE_ICURRDIGITS { # local monetary digits }
LOCALE_IINTLCURRDIGITS { # intl monetary digits }
LOCALE_ICURRENCY { positive currency mode }
LOCALE_INEGCURR { negative currency mode }
LOCALE_SDATE { 日期分割符 }
LOCALE_STIME { 时间分割符 }
LOCALE_SSHORTDATE { 短日期字符串 }
LOCALE_SLONGDATE { 长日期字符串 }
LOCALE_STIMEFORMAT { time format string }
LOCALE_IDATE { short date format ordering }
LOCALE_ILDATE { long date format ordering }
LOCALE_ITIME { time format specifier }
LOCALE_ITIMEMARKPOSN { time marker position }
LOCALE_ICENTURY { century format specifier (short date) }
LOCALE_ITLZERO { leading zeros in time field }
LOCALE_IDAYLZERO { leading zeros in day field (short date) }
LOCALE_IMONLZERO { leading zeros in month field (short date) }
LOCALE_S1159 { AM designator }
LOCALE_S2359 { PM designator }
LOCALE_ICALENDARTYPE { type of calendar specifier }
LOCALE_IOPTIONALCALENDAR { additional calendar types specifier }
LOCALE_IFIRSTDAYOFWEEK { first day of week specifier }
LOCALE_IFIRSTWEEKOFYEAR { first week of year specifier }
LOCALE_SDAYNAME1 { long name for Monday }
LOCALE_SDAYNAME2 { long name for Tuesday }
LOCALE_SDAYNAME3 { long name for Wednesday }
LOCALE_SDAYNAME4 { long name for Thursday }
LOCALE_SDAYNAME5 { long name for Friday }
LOCALE_SDAYNAME6 { long name for Saturday }
LOCALE_SDAYNAME7 { long name for Sunday }
LOCALE_SABBREVDAYNAME1 { 星期一的缩写 }
LOCALE_SABBREVDAYNAME2 { 星期二的缩写 }
LOCALE_SABBREVDAYNAME3 { 星期三的缩写 }
LOCALE_SABBREVDAYNAME4 { 星期四的缩写 }
LOCALE_SABBREVDAYNAME5 { 星期五的缩写 }
LOCALE_SABBREVDAYNAME6 { 星期六的缩写 }
LOCALE_SABBREVDAYNAME7 { 星期天的缩写 }
LOCALE_SMONTHNAME1 { long name for January }
LOCALE_SMONTHNAME2 { long name for February }
LOCALE_SMONTHNAME3 { long name for March }
LOCALE_SMONTHNAME4 { long name for April }
LOCALE_SMONTHNAME5 { long name for May }
LOCALE_SMONTHNAME6 { long name for June }
LOCALE_SMONTHNAME7 { long name for July }
LOCALE_SMONTHNAME8 { long name for August }
LOCALE_SMONTHNAME9 { long name for September }
LOCALE_SMONTHNAME10 { long name for October }
LOCALE_SMONTHNAME11 { long name for November }
LOCALE_SMONTHNAME12 { long name for December }
LOCALE_SMONTHNAME13 { long name for 13th month (if exists) }
LOCALE_SABBREVMONTHNAME1 { 一月的缩写 }
LOCALE_SABBREVMONTHNAME2 { 二月的缩写 }
LOCALE_SABBREVMONTHNAME3 { 三月的缩写 }
LOCALE_SABBREVMONTHNAME4 { 四月的缩写 }
LOCALE_SABBREVMONTHNAME5 { 五月的缩写 }
LOCALE_SABBREVMONTHNAME6 { 六月的缩写 }
LOCALE_SABBREVMONTHNAME7 { 七月的缩写 }
LOCALE_SABBREVMONTHNAME8 { 八月的缩写 }
LOCALE_SABBREVMONTHNAME9 { 九月的缩写 }
LOCALE_SABBREVMONTHNAME10 { 十月的缩写 }
LOCALE_SABBREVMONTHNAME11 { 十一月的缩写 }
LOCALE_SABBREVMONTHNAME12 { 十二月的缩写 }
LOCALE_SABBREVMONTHNAME13 { 十三月的缩写(如果有的话) }
LOCALE_SPOSITIVESIGN { 正号 }
LOCALE_SNEGATIVESIGN { 负号 }
LOCALE_IPOSSIGNPOSN { 正号位置 }
LOCALE_INEGSIGNPOSN { 负号位置 }
LOCALE_IPOSSYMPRECEDES { mon sym precedes pos amt }
LOCALE_IPOSSEPBYSPACE { mon sym sep by space from pos amt }
LOCALE_INEGSYMPRECEDES { mon sym precedes neg amt }
LOCALE_INEGSEPBYSPACE { mon sym sep by space from neg amt }
LOCALE_FONTSIGNATURE { font signature }
LOCALE_SISO639LANGNAME { ISO 缩写语言名称 }
LOCALE_SISO3166CTRYNAME { ISO 缩写国家名称 }
1、获取windows版本信息
可以通过Windows API函数GetVersionEx来获得。
具体程序如下:
Procedure Tform1.Button1Click(sender:TObject);
Var()
OSVI:OSVERSIONINFO;
begin()
OSVI.dwOSversioninfoSize:=Sizeof(OSVERSIONINFO);
GetVersionEx(OSVI);
label1.Caption:=IntToStr(OSVI.dwMinorVersion)+','
+IntToStr(OSVI.dwMinorVersion)+','
+IntToStr(OSVI.dwBuildNumber)+','
+IntToStr(OSVI.dwPlatformId)+','
+OSVI.szCSDVersion;
end;
end.
2、获取CPU信息
可以通过Windows API函数GetSystemInfo来获得有关信息。
具体程序如下:
procedure TForm1.Button1Click(Sender: TObject);
Var()
SysInfo:SYSTEM_INFO;
begin()
GetSystemInfo(Sysinfo);
Edit1.Text:='系统中有'+IntToStr(Sysinfo.dwNumberOfProcessors)+'个CPU'
+',类型为'+IntToStr(Sysinfo.dwProcessorType);
end;
end.
3、获取内存信息
可以通过Windows API函数GlobalMemoryStatus来获得内存信息。
具体程序如下:
procedure TForm1.Button1Click(Sender: TObject);
Var()
MemInfo:MEMORYSTATUS;
begin()
MemInfo.dwLength:=sizeof(MEMORYSTATUS);
GlobalMemoryStatus(MemInfo);
memo1.Lines.Add(IntToStr(MemInfo.dwMemoryLoad)+'%的内存正在使用') ;
memo1.Lines.Add('物理内存共有'+IntToStr(MemInfo.dwTotalPhys)+'字节');
memo1.Lines.Add('可使用的物理内存有'+IntToStr(MemInfo.dwAvailPhys)+'字节');
memo1.Lines.Add('交换文件总大小为'+IntToStr(MemInfo.dwTotalPageFile)+'字节') ;
memo1.Lines.Add('尚可交换文件大小为'+IntToStr(MemInfo.dwAvailPageFile)+'字节');
memo1.Lines.Add('总虚拟内存有'+IntToStr(MemInfo.dwTotalVirtual)+'字节');
memo1.Lines.Add('未用虚拟内存有'+IntToStr(MemInfo.dwAvailVirtual)+'字节');
end;
end.
或用以下代码:
memo1.Text:=IntToStr(MemInfo.dwMemoryLoad)+'%的内存正在使用'+#13#10
+'可使用的物理内存有'+IntToStr(MemInfo.dwAvailPhys)+'字节'+#13#10
+'交换文件总大小为'+IntToStr(MemInfo.dwTotalPageFile)+'字节'+#13#10
+'尚可交换文件大小为'+IntToStr(MemInfo.dwAvailPageFile)+'字节'+#13#10
+'总虚拟内存有'+IntToStr(MemInfo.dwTotalVirtual)+'字节'+#13#10
+'未用虚拟内存有'+IntToStr(MemInfo.dwAvailVirtual)+'字节';
来替代memo1.line.add(…)部分。
4、获取Windows和系统路径
可以通过Windows(API函数来获得)
具体程序如下:
procedure TForm1.Button1Click(Sender: TObject);
Var()
SysDir:array[0..128] of char;
begin()
GetWindowsDirectory(SysDir,128);
Edit1.Text:='Windows 路径:'+SysDir;
GetSystemDirectory(SysDir,128);
Edit1.Text:=Edit1.Text+'; 系统路径:'+SysDir;
end;
5、获取用户注册信息
我们都知道,一般在软件安装过程中,它都会提示用户,要求输入系列号或产品号和用户的一些注册信息(用户
的公司名称、用户名等)以及安装的目录和路径等。
通过以下代码可查看用户注册信息:
procedure TForm1.Button1Click(Sender: TObject);
Var()
Reg:TRegistry;
begin()
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software/Microsoft/Windows NT/CurrentVersion',False);
Edit1.Text:='当前路径:'+Reg.CurrentPath;
Edit2.Text:='产品系列号:'+Reg.ReadString('ProductId');
Edit3.Text:='产品名:'+Reg.ReadString('ProductName');
Edit4.Text:='注册公司名称:'+Reg.ReadString('RegisteredOrganization');
Edit5.Text:='用户名:'+Reg.ReadString('RegisteredOwner');
Edit6.Text:='软件类型:'+Reg.ReadString('SoftwareType');
Reg.CloseKey;
Reg.Free;
end;
注意:在程序编译之前,必须在USES语句下添加registry单元。
6、关闭Widows
可以通过Windows API函数ExitWindowsEx来关闭Widows。
procedure TForm1.Button1Click(Sender: TObject);
begin()
If RadioButton1.Checked = True Then
ExitWindowsEx(EWX_LOGOFF,0) //以其他用户身份登录
ElseIf RadioButton2.Checked = True Then
ExitWindowsEx(EWX_SHUTDOWN,1) //安全关机
ElseIf RadioButton3.Checked = True Then
ExitWindowsEx(EWX_REBOOT,2) //重新启动计算机
ElseIf RadioButton4.Checked = True Then
ExitWindowsEx(EWX_FORCE,4) //强行关机
ElseIf RadioButton5.Checked = True Then
ExitWindowsEx(EWX_POWEROFF,8); //关闭系统并关闭电源
end;