Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

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

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

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

    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:

    Código:
    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

  • Font Size
    #2
    Se voce estiver usando Sleep apos chamar a CreateThread, obvio que ira travar.
    Recomendo voce usar WaitForSingleObject(Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...).

    Nao tenho como testar seu codigo, mas tente usar a funcao que citei acima.
    "Nunca desista de seus sonhos. Desisti de seus sonhos é abrir mão da felicidade."
    (Augusto Cury)



    Meu Blog... http://www.lab-infor.blogspot.com
    Meu canal do Youtube... http://www.youtube.com/user/rodrigo32323232

    Comment


    • Font Size
      #3
      Sem usar sleep na função o crash é instantaneo.

      Segue o código de como inicio a thread:

      Código:
      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);

      Comment


      • Font Size
        #4
        Postado Originalmente por #M0rph Ver Post
        Se voce estiver usando Sleep apos chamar a CreateThread, obvio que ira travar.
        Recomendo voce usar WaitForSingleObject(Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...).

        Nao tenho como testar seu codigo, mas tente usar a funcao que citei acima.
        Sem usar sleep na função o crash é instantaneo.

        Segue o código de como inicio a thread:

        Código:
        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);

        Comment


        • Font Size
          #5
          Esse 'detectado' eh o que?
          "Nunca desista de seus sonhos. Desisti de seus sonhos é abrir mão da felicidade."
          (Augusto Cury)



          Meu Blog... http://www.lab-infor.blogspot.com
          Meu canal do Youtube... http://www.youtube.com/user/rodrigo32323232

          Comment

          X
          Working...
          X