win2000 professional 的关机问题 |
缺席
|
cxg
中階會員 發表:116 回覆:192 積分:76 註冊:2004-02-12 發送簡訊給我 |
function SetPrivilege(sPrivilegeName : string; bEnabled : boolean ): boolean;
var
TPPrev, TP : TTokenPrivileges;
Token : THandle;
dwRetLen : DWord;
begin
Result := False;
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token); //handle to process
TP.PrivilegeCount := 1;
if( LookupPrivilegeValue( Nil, PChar( sPrivilegeName ),TP.Privileges[ 0 ].LUID ))then
begin
if( bEnabled )then //Give this privileges
begin
TP.Privileges[ 0 ].Attributes := SE_PRIVILEGE_ENABLED;
end else begin //NOT Give this privileges
TP.Privileges[ 0 ].Attributes := 0;
end;
dwRetLen := 0;
Result := AdjustTokenPrivileges(Token, False, TP, SizeOf( TPPrev ), TPPrev, dwRetLen);
end;
CloseHandle( Token );
end; function WinExitInNT( iFlags : integer ) : boolean;
begin
Result := True;
if( SetPrivilege( 'SeShutdownPrivilege', True ) )then
begin
if( not ExitWindowsEx( iFlags, 0 ) )then
begin
Result:= False;
end;
SetPrivilege( 'SeShutdownPrivilege', False )
end else begin
Result := False;
end;
end; 然后我用
WinExitInNT( EWX_POWEROFF);
来关闭计算机,机器有时能关闭,有时不能关闭。请问这有什么原因吗?谢谢。
|
cxg
中階會員 發表:116 回覆:192 積分:76 註冊:2004-02-12 發送簡訊給我 |
|
cxg
中階會員 發表:116 回覆:192 積分:76 註冊:2004-02-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |