不好意思,我写是写完整了,但是传上去的时候好像出错了。 user Registry; procedure Tform1.button1(sender:TObject); var reg:TRegistry; begin reg:=TRegistry.create; reg.rootkey=HKEY_CURRENT_USER; 。。 。。 reg.free; end; 上面的一段程序有错误没有啊,不知道为什么我编译的时候老是有警告提示,说'reg'没有初始化。
function SetPrivilege(sPrivilegeName : string;bEnabled : boolean ): boolean; var TPPrev, TP : TTokenPrivileges; Token : THandle; dwRetLen : DWord; begin Result := False; //opens the access token associated with a process. OpenProcessToken( GetCurrentProcess, //handle to process TOKEN_ADJUST_PRIVILEGES //Required to change the privileges specified in an access token. or TOKEN_QUERY, //Required to query the contents of an access token. Token); TP.PrivilegeCount := 1; //retrieves the locally unique identifier (LUID) used on a specified system to //locally represent the specified privilege name. if( LookupPrivilegeValue( Nil, //attempts to find the privilege name on the local system. PChar( sPrivilegeName ), // address of string specifying the privilege TP.Privileges[ 0 ].LUID ) // address of locally unique identifier )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; //enables or disables privileges in the specified access token. Result := AdjustTokenPrivileges( Token, // handle to token that contains privileges False, //modifies privileges TP, // pointer to new privilege information SizeOf( TPPrev ), // size, in bytes, of the TPPrev buffer TPPrev, // receives original state of changed privileges dwRetLen // receives required size of the TPPrev buffer ); 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 // handle errors... Result := False; end; end; begin WinExitInNT(EWX_SHUTDOWN+EWX_POWEROFF); end.