COMO DESLIGAR WIN2000 PELO AMOR DE DEUS!SERIO, TO PRESISANDO
19/02/2003
0
ExitWindowsEx(EWX_SHUTDOWN, 0) ;
AI ME RESPONDERAM AKI NESSE FORUM MESMO DIZENDO Q ESSA PROCEDURE FUNCIONAVA .... MAS NAUM FUNCIONA!
procedure DesligaMicro;
var
hToken : THandle;
tkp : TOKEN_PRIVILEGES;
zero : DWord;
begin
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken);
LookupPrivilegeValue(nil, ´SeShutdownPrivilege´, tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
zero := 0;
AdjustTokenPrivileges(htoken, FALSE, tkp ,zero ,nil, zero);
ExitWindowsEx(EWX_POWEROFF, 0) ;
end;
QUEM SOUBER, POR FAVOR, ME DA UM HELP ....
ABRAÇOS ....
Anonymous
Posts
19/02/2003
Carnette
var
TTokenHd: THandle;
TTokenPvg: TTokenPrivileges;
cbtpPrevious: DWORD;
rTTokenPvg: TTokenPrivileges;
pcbtpPreviousRequired: DWORD;
tpResult: Boolean;
const
SE_SHUTDOWN_NAME = ´SeShutdownPrivilege´;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
tpResult := OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
TTokenHd);
if tpResult then
begin
tpResult := LookupPrivilegeValue(nil,
SE_SHUTDOWN_NAME,
TTokenPvg.Privileges[0].Luid);
TTokenPvg.PrivilegeCount := 1;
TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
cbtpPrevious := SizeOf(rTTokenPvg);
pcbtpPreviousRequired := 0;
if tpResult then
Windows.AdjustTokenPrivileges(TTokenHd,
False,
TTokenPvg,
cbtpPrevious,
rTTokenPvg,
pcbtpPreviousRequired);
end;
end;
Result := ExitWindowsEx(RebootParam, 0);
end;
Chmada da função
19/02/2003
Anonymous
QUER SOUBER, PRO FAVOR ....
MEU ICQ EH 89606451 .....
procurei no help do delphi, mas ele ñ diz mta coisa ....
abraços ....
19/02/2003
Carnette
Chmada da função
SairDoWindows(EWX_SHUTDOWN or EWX_POWEROFF);
SairDoWindows(EWX_REBOOT );
EWX_LOGOFF
Fecha todos os processos que funcionam no contexto da segurança do processo que se chamou
Função de ExitWindowsEx. Então registra o usuário fora.
EWX_POWEROFF
Fecha o sistema e desliga a força.
O sistema deve suportar a característica do POWEROF.
Windows NT/2000/XP:
O processo da chamada deve ter o privilégio de SE_SHUTDOWN_NAME.
EWX_REBOOT
Fecha o sistema e reinicia
Windows NT/2000/XP: O processo da chamada deve ter o privilégio de SE_SHUTDOWN_NAME.
EWX_SHUTDOWN
Fecha o sistema a um ponto em que é seguro desligar a força.
Todos os amortecedores da lima foram nivelados ao disco, e todos os processos running pararam.
Se o sistema suportar a característica do POWEROF,
19/02/2003
Anonymous
SERIO, ACREDITE EM MIM ... EM WIN 9X FUNCIONA MAIS PLATAFORMA NT NAUM FUNFA ......
19/02/2003
Carnette
Windows NT/2000/XP: O processo da chamada deve ter o privilégio de SE_SHUTDOWN_NAME
19/02/2003
Anonymous
SairDoWindows(EWX_SHUTDOWN or EWX_POWEROFF);
I A FUNÇÃO ESTA IGUAZINHA A Q VC POSTOU AKI, I PELO Q ENTENDI DELA, ELA ESTA COM O PRIVILÉGIOS DE SE_SHUTDOWN_NAME ....
DA UMA OLHADA NA FUNÇÃO E V C TAH CERTIM MESMO ....
BEM, ESPERO NAUM ESTAR ENXENDO, MAS EH Q ESTOU LOCO ATRAZ DISSO ....
19/02/2003
Carnette
Clique aqui para fazer login e interagir na Comunidade :)