是否有哪個函數可以關閉電腦的. |
|
jin0376
一般會員 ![]() ![]() 發表:6 回覆:11 積分:3 註冊:2002-05-03 發送簡訊給我 |
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
參考這篇:
在所有版本windows中關閉計算機,甚至在Windows不想退出
或 NT 告訴你沒有特權關機時。
function GetWinVersion: String;
var
VersionInfo: TOSVersionInfo;
OSName: String;
begin
// 設定記錄大小
VersionInfo.dwOSVersionInfoSize := SizeOf( TOSVersionInfo ); if Windows.GetVersionEx( VersionInfo ) then
begin
with VersionInfo do
begin
case dwPlatformId of
VER_PLATFORM_WIN32s : OSName := 'Win32s';
VER_PLATFORM_WIN32_WINDOWS : OSName := 'Windows 95';
VER_PLATFORM_WIN32_NT : OSName := 'Windows NT';
end;
Result := OSName ' Version ' IntToStr( dwMajorVersion ) '.'
IntToStr( dwMinorVersion ) #13#10' (Build '
IntToStr( dwBuildNumber ) ': ' szCSDVersion ')';
end;
end
else
Result := '';
end; procedure ShutDown;
const
SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; // Borland忘記了這個聲明
var
hToken: THandle;
tkp: TTokenPrivileges;
tkpo: TTokenPrivileges;
zero: DWORD;
begin
if Pos( 'Windows NT', GetWinVersion) = 1 then //我們不得不做大量的事
begin
zero := 0;
if not OpenProcessToken( GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
begin
MessageBox( 0, '錯誤退出', 'OpenProcessToken()失敗', MB_OK );
Exit;
end;
if not OpenProcessToken( GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
begin
MessageBox( 0, '錯誤退出', 'OpenProcessToken()失敗', MB_OK );
Exit;
end; if not LookupPrivilegeValue( nil, 'SeShutdownPrivilege' , tkp.Privileges[ 0 ].Luid ) then
begin
MessageBox( 0, '錯誤退出', 'LookupPrivilegeValue()失敗', MB_OK );
Exit;
end;
tkp.PrivilegeCount := 1;
tkp.Privileges[ 0 ].Attributes := SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges( hToken, False, tkp, SizeOf( TTokenPrivileges ), tkpo, zero );
if Boolean( GetLastError() ) then
begin
MessageBox( 0, '錯誤退出', 'AdjustTokenPrivileges()失敗', MB_OK );
Exit;
end
else
ExitWindowsEx( EWX_FORCE or EWX_SHUTDOWN, 0 );
end
else
begin
ExitWindowsEx( EWX_FORCE or EWX_SHUTDOWN, 0 );
end;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |