全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2159
推到 Plurk!
推到 Facebook!

是否有哪個函數可以關閉電腦的.

 
jin0376
一般會員


發表:6
回覆:11
積分:3
註冊:2002-05-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-05-07 16:58:17 IP:61.222.xxx.xxx 未訂閱
是否有哪個函數可以關閉電腦的.....也就是像在安裝某些硬體驅動程式時他會要求重新開機一樣,請各位先知不吝指教
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-05-07 18:29:34 IP:211.22.xxx.xxx 未訂閱
參考這篇: 在所有版本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;
系統時間:2024-04-20 9:10:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!