Código causando crash na aplicação + Thread

28/01/2013

0

Boa tarde, estou com um problema ... tenho uma procedure que faz uma verificação heuristica, no caso ela pega todo texto que existe na tela e aplicações e verifica com um listbox pesquisando pela existencia de algum através da função "Pos".
Acontece que essa procedure está sendo chamada por uma Thread (CreateThread e GotoLabel) e quando uso um delay (Sleep) baixo ela causa crash na aplicação.
Já tentei ao maximo resolver porém sem resultados positivos até agora, se alguem souber como me ajudar agradeço.

Segue a procedure:

procedure Heuristico;
var
  Idx     : Word;
  X       : Word;
  Caption : Array[0..255] of Char;
begin
  for Idx := 0 to ListaHeur.Count-1 do begin
    Application.ProcessMessages;
    for X:=1 to 10000 do begin
    Application.ProcessMessages;
      if (GetWindowText(x,Caption,255) <> 0) then begin
      Application.ProcessMessages;
        if Caption <> '' then begin
        Application.ProcessMessages;
          if (Pos(AnsiLowerCase(ListaHeur.Strings[Idx]), AnsiLowerCase(Caption)) > 0) then begin
            detectado := true;

            PostMessage(FindWindow(nil, Caption), WM_Close, 0, 0);

            CriaLog('null','null', Caption);

            break;
          end;
          Application.ProcessMessages;
        end;
        Application.ProcessMessages;
      end;
      Application.ProcessMessages;
    end;
    Application.ProcessMessages;
  end;

  Application.ProcessMessages;
end;


Grato a todos :)
Douglas Ruiz

Douglas Ruiz

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar