Fórum ajuda com win xp #238201
17/06/2004
0
Caros amigos estou tentando fazer um sistema para desligar o windows xp a nivel de aprendizado e nao consigo progredir pois tudo o que sei de delphi foi tirado deste valioso forum, ja pesquisei alguns tópicos da lista de discussão porém por falta de conhecimento nao consegui aplicar os exemplos obtidos aqui; se alguem puder me dar uma ajuda de como aplicalos agradeço muito.
O negócio e o seguinte o código abaixo segundo autor funciona porem nao sei onde vou inserir o tal, em qual evento em que lugar , depois da implementation não sei portanto fico no aguardo de um auxilio. uso delphi 5
segue o código:
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;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WinExit(EWX_SHUTDOWN or EWX_FORCE);
end;
miguel_apm@terra.com.br
O negócio e o seguinte o código abaixo segundo autor funciona porem nao sei onde vou inserir o tal, em qual evento em que lugar , depois da implementation não sei portanto fico no aguardo de um auxilio. uso delphi 5
segue o código:
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;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WinExit(EWX_SHUTDOWN or EWX_FORCE);
end;
miguel_apm@terra.com.br
Miguel
Curtir tópico
+ 0
Responder
Posts
17/06/2004
Tuiobecker
Olá
eu fiz um que faz conexao e desliga na hora marcada, se quise me manda um e-mail.
tuio@frosinet.com.br
eu fiz um que faz conexao e desliga na hora marcada, se quise me manda um e-mail.
tuio@frosinet.com.br
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)