Ĺadny brzuch
Mam troche głupie pytanie... Co złego jest w tym kodzie?
function DelphiExitsWindows(Flags: Word):Boolean; var iVersionInfo : TOSVersionInfo; iToken : THandle; iPriveleg : TTokenPrivileges; iaresult : DWord; begin Result:=False; FillChar (iPriveleg, SizeOf (iPriveleg), #0); iVersionInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); GetVersionEx(iVersionInfo); if iVersionInfo.dwPlatformId <> VER_PLATFORM_WIN32_NT then Result:=ExitWindowsEx(Flags, 0) else if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES 16: or TOKEN_QUERY, iToken) then if LookupPrivilegeValue (NIL,'SeShutdownPrivilege', iPriveleg.Privileges[0].Luid) then begin iPriveleg.PrivilegeCount := 1; iPriveleg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; if AdjustTokenPrivileges (iToken, False, iPriveleg, Sizeof(iPriveleg), iPriveleg, iaresult) then Result:=ExitWindowsEx (Flags, 0); end; end;
Podobno to funkcja na zamykanie Windowsa NT (więc pod XP powinna działać?) :] Wie ktoś co jest nie tak? Z góry dzięki za szybką odpowiedź :)
Nie czytalem - ale jest zasada - co jest nie tak? Wywala Ci blad? Nie zamyka systemu? Monitor wybucha?
Wiem ze to: http://www.swissdelp...code.php?id=168 dziala pod kazdym windowsem
lepiej ShellExecute i shutdown :)
lepiej ShellExecute i shutdown :)
dziala tylko na xp Arundll32 user,ExitWindowsdla win9x? :P
Arundll32 user,ExitWindowsdla win9x? :P
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
function DelphiExitsWindows(Flags: Word):Boolean; var iVersionInfo : TOSVersionInfo; iToken : THandle; iPriveleg : TTokenPrivileges; iaresult : DWord; begin Result:=False; FillChar (iPriveleg, SizeOf (iPriveleg), #0); iVersionInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); GetVersionEx(iVersionInfo); if iVersionInfo.dwPlatformId <> VER_PLATFORM_WIN32_NT then Result:=ExitWindowsEx(Flags, 0) else if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES 16: or TOKEN_QUERY, iToken) then if LookupPrivilegeValue (NIL,'SeShutdownPrivilege', iPriveleg.Privileges[0].Luid) then begin iPriveleg.PrivilegeCount := 1; iPriveleg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; if AdjustTokenPrivileges (iToken, False, iPriveleg, Sizeof(iPriveleg), iPriveleg, iaresult) then Result:=ExitWindowsEx (Flags, 0); end; end;
Podobno to funkcja na zamykanie Windowsa NT (więc pod XP powinna działać?) :] Wie ktoś co jest nie tak? Z góry dzięki za szybką odpowiedź :)
Nie czytalem - ale jest zasada - co jest nie tak? Wywala Ci blad? Nie zamyka systemu? Monitor wybucha?
Wiem ze to: http://www.swissdelp...code.php?id=168 dziala pod kazdym windowsem
lepiej ShellExecute i shutdown :)
lepiej ShellExecute i shutdown :)

dziala tylko na xp Arundll32 user,ExitWindowsdla win9x? :P
Arundll32 user,ExitWindowsdla win9x? :P
