COMO DESLIGAR WIN2000 PELO AMOR DE DEUS!SERIO, TO PRESISANDO
tipo, essa função ñ funcionaprocedure DesligaMicro;
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 ....
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
Curtidas 0
Respostas
Carnette
19/02/2003
function SairdoWindows(RebootParam: Longword): Boolean;
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
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
GOSTEI 0
Anonymous
19/02/2003
ESSA FUNÇÃO AI DE CIMA NAUM FUNCIONA ........
QUER SOUBER, PRO FAVOR ....
MEU ICQ EH 89606451 .....
procurei no help do delphi, mas ele ñ diz mta coisa ....
abraços ....
QUER SOUBER, PRO FAVOR ....
MEU ICQ EH 89606451 .....
procurei no help do delphi, mas ele ñ diz mta coisa ....
abraços ....
GOSTEI 0
Carnette
19/02/2003
Funciona SIM...é que faltou o resto
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,
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,
GOSTEI 0
Anonymous
19/02/2003
EM WIN 2000 NAUM FUNCIONA, ACABEI DE FAZER UM PROGRAMINHA E NAUM FUNFA ....
SERIO, ACREDITE EM MIM ... EM WIN 9X FUNCIONA MAIS PLATAFORMA NT NAUM FUNFA ......
SERIO, ACREDITE EM MIM ... EM WIN 9X FUNCIONA MAIS PLATAFORMA NT NAUM FUNFA ......
GOSTEI 0
Carnette
19/02/2003
Voce LEU a parte que fala:
Windows NT/2000/XP: O processo da chamada deve ter o privilégio de SE_SHUTDOWN_NAME
Windows NT/2000/XP: O processo da chamada deve ter o privilégio de SE_SHUTDOWN_NAME
GOSTEI 0
Anonymous
19/02/2003
EU BOTEI UM BOTÃO Q CHAMA A FUNÇÃO ASSIM:
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 ....
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 ....
GOSTEI 0
Carnette
19/02/2003
então sinto muito....não sei o que está acontecenco aí....na rede que eu usei funcionou....e, eu tbm não sei lá grandes coisas de rede .... :oops:
GOSTEI 0