comando para reinicializar computador
14/02/2006
0
Eu usava o seguinte comando para reinicializar o computador.
ExitWindowsEx(EWX_REBOOT, 0);
Funciona bem em máquina win95 e win98.
Só que na minha empresa tenho máquinas com winxp também e este comando não dá certo. Acredito que também não deva funcionar para o win2000.
Existe um comando que funcione para todos os windows???
Ou devo usar um comando para cada tipo de windows???
Como posso resolver o problema....
Obrigado.
ExitWindowsEx(EWX_REBOOT, 0);
Funciona bem em máquina win95 e win98.
Só que na minha empresa tenho máquinas com winxp também e este comando não dá certo. Acredito que também não deva funcionar para o win2000.
Existe um comando que funcione para todos os windows???
Ou devo usar um comando para cada tipo de windows???
Como posso resolver o problema....
Obrigado.
Briciosm
Curtir tópico
+ 0
Responder
Posts
14/02/2006
Paullsoftware
eu uso essa função que encontrei aqui mesmo no fórum e funciona comigo normalmente...
exemplo do uso:
espero ter ajudado! :wink:
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;
exemplo do uso:
SairdoWindows(EWX_FORCE+EWX_SHUTDOWN);
espero ter ajudado! :wink:
Responder
Clique aqui para fazer login e interagir na Comunidade :)