![]() |
Privilegien setzen
Hallo,
ich habe Luckies Funktion zur Änderung der Privilegien ausprobiert.
Delphi-Quellcode:
Ich werde immer hier rausgeworfen. Egal was ich an Privileg eingebe.
function EnablePrivilege(const Privilege: string; fEnable: Boolean; out
PreviousState: Boolean): DWORD; var Token : THandle; NewState : TTokenPrivileges; Luid : TLargeInteger; PrevState : TTokenPrivileges; Return : DWORD; begin PreviousState := True; if (GetVersion() > $80000000) then // Win9x Result := ERROR_SUCCESS else begin // WinNT if not OpenProcessToken(GetCurrentProcess(), MAXIMUM_ALLOWED, Token) then Result := GetLastError() else try if not LookupPrivilegeValue(nil, PChar(Privilege), Luid) then Result := GetLastError() else begin NewState.PrivilegeCount := 1; NewState.Privileges[0].Luid := Luid; if fEnable then NewState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED else NewState.Privileges[0].Attributes := 0; if not AdjustTokenPrivileges(Token, False, NewState, SizeOf(TTokenPrivileges), PrevState, Return) then Result := GetLastError() else begin Result := ERROR_SUCCESS; PreviousState := (PrevState.Privileges[0].Attributes and SE_PRIVILEGE_ENABLED <> 0); end; end; finally CloseHandle(Token); end; end; end; procedure TForm1.Button1Click(Sender: TObject); var a:boolean;x:dword; begin x:=EnablePrivilege('SE_SYSTEMTIME_NAME',false,a); end; Was mach ich falsch?
Delphi-Quellcode:
Rainer
try
if not LookupPrivilegeValue(nil, PChar(Privilege), Luid) then Result := GetLastError() else |
Re: Privilegien setzen
Hallo. Ich habe eben mal in die Win32-API-Tutorials geguckt, weil es dort im Kapitel "Systemfunktionen/Datum und Uhrzeit" einen ähnlichen Beitrag gibt. Dort sieht das aber so aus:
Delphi-Quellcode:
SE_SYSTEMTIME_NAME ist bloß eine Konstante, wie du siehst. Das tatsächliche Privileg heißt anders. :stupid: Wirf am besten mal einen Blick in die Headerdateien (*.h) des PSDK.
const
SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege'; { ... } if(SetPrivilege(SE_SYSTEMTIME_NAME,true)) then SetLocalTime(st); Wobei ich dir aber jetzt schon sagen kann, dass das Setzen der Uhrzeit oder des Datums nicht von den Rechten abhängt. Da behauptet diese veraltete Win32.hlp etwas Falsches. Das weiß ich, weil besagter Teil aus den Tutorials aus meiner Feder stammt. :???: Tatsächlich dürfen nur Administratoren und Hauptbenutzer die Uhrzeit ändern. Das findest du in den Richtlinien. Notfalls musst du deinen Benutzer da noch eintragen. |
Re: Privilegien setzen
Hallo Mathias,
danke für deinen Beitrag. Ich hab das ganze auch nur als Spielerei gesehen, mir kams überhaupt nicht auf die Zeit an. Ich wollte nur wissen wie man sowas macht. Rainer |
Re: Privilegien setzen
Hallo Mathias,
das wars! Danke Rainer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz