Boa noite, gostaria de saber como listar todos os usuários logados no computador, achei uma chave no regedit em ProfileList a RefCount, que tem seu valor 1 nos usuários logados, porem queria saber se existe outro método. Grato.
Teste assim: var
Idx : DWord;
begin
//if not detectado then begin
Application.ProcessMessages;
for Idx := 0 to ListaHeur.Count-1 do begin
//Delay(10);
FecharJanela(ListaHeur.Strings[Idx]);
//Delay(10);
end;
//end;
end;
function PSDRun3(Inicialize: Pointer):Dword;stdcall;
Label
GoToLabel;
begin
//if not detectado then begin
GoToLabel :
{ Heuristico }
Heuristico;
//Result := 0;
GoTo GoToLabel;
//end;
end;
CreateThread(nil, 0, @PSDRun3, Pointer(nil), NORMAL_PRIORITY_CLASS, ThreadId3)
Não está na thread pois tenho mais 2 threads que chamam outras funções e funciona normalmente. Teste você mesmo, com a thread que coloquei acima e verá.
Não apenas isso, se você observar o código inteiro verá que ele pega todos textos da tela, e fecha através da Pos verificando com minha lista. e não apenas um PostMessage(FindWindow(nil, Caption), WM_Close, 0, 0);
Sem sleep a aplicação causa crash instantaneamente após iniciar ... segue minha thread: procedure PSDRun2(Inicialize: Pointer);
Label
GoToLabel;
begin
if not detectado then begin
GoToLabel :
{ Heuristico }
Heuristico;
GoTo GoToLabel;
end;
end;
e
CreateThread(nil, 0, @PSDRun2, Pointer(nil), 0, ThreadId2);
O erro que acontece é "Access Violation" em function SysGetMem(Size: NativeInt): Pointer; {Set the block header} mov [eax - 4], edx Compilador: Delphi XE3
Utilizamos cookies e tecnologias semelhantes de acordo com a nossa Política de Privacidade, e ao continuar navegando, você concorda com estas condições.