Ir para conteúdo
Fórum Script Brasil
  • 0

Desligamento Do Windows (Auto Resolvido)


Paulo Nobre

Pergunta

Alguém pode ajudar?

Quem já tentou escrever um código para desligamento do windows

de dentro de um programa poderá ter tido algum problema

para desligar o windows XP, devido as restrições do usuário.

Isso se resolve usando a função:

function WinExit(flags: integer): boolean;

function SetPrivilege(privilegeName: string; enable: boolean): boolean;

var

tpPrev, tp : TTokenPrivileges;

token : THandle;

dwRetLen : DWord;

begin

result := False;

OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, token);

tp.PrivilegeCount := 1;

if LookupPrivilegeValue(nil, pchar(privilegeName), tp.Privileges[0].LUID) then

begin

if enable then

tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED

else

tp.Privileges[0].Attributes := 0;

dwRetLen := 0;

result := AdjustTokenPrivileges(token, False, tp, SizeOf(tpPrev), tpPrev, dwRetLen);

end;

CloseHandle(token);

end;

begin

if SetPrivilege('SeShutdownPrivilege', true) then

begin

ExitWindowsEx(flags, 0);

SetPrivilege('SeShutdownPrivilege', False)

end;

winExit:= True;

end;

//A função acima desliga o windows

//**************************************************************************

Aí, num botão de comando ou num menu

basta digitar o código:

WinExit(EWX_POWEROFF); E o PROBLEMA ESTÁ RESOLVIDO.

O problema é que no windows 98 nada acontece.

Alguém sabe como resolver este problema, ou seja, um código que desligue os dois sistemas operacionais.

Tentei,

WinExit(EWX_POWEROFF or EWX_SHUTDOWN OR EWX_FORCE);

E TODAS AS COMBINAÇÕES POSSíveis e nada acontece no 98.

Observe que EWX_POWEROFF tem que ter para fechar totamente o XP.

Alguma ajuda?

PS: Quem forneceu o código da função foi um colaborador deste forum, o s3c, aliás onde anda o s3c?

Paulo Nobre

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...