Announcement

Collapse
No announcement yet.

Handle einer Anwendung über Prozess oder teilweise Caption

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

  • Handle einer Anwendung über Prozess oder teilweise Caption

    Hallo,
    <p>&uuml;ber die Funktion aus ToolHelp32 (siehe Diskussion: Pfad von anderen
    Programmen durch Handle oder ProzessID) bekomme ich ja unter Win98 ohne
    Probleme den Prozess einer gew&uuml;nschten Exe-Datei heraus.
    <p>Wie kann ich jetzt das Handle eines ermittelten Prozesses bekommen?
    Bzw. ist es &uuml;ber den Prozess &uuml;berhaupt m&ouml;glich, die Anwendung
    zu ermitteln.
    <p>Alternativ w&uuml;rde mir auch helfen, wenn ich das handle einer Anwendung
    an einem Teil Ihrer Caption identifizieren kann, da die komplette Caption
    nicht bekannt ist. FindWindow scheint ja immer den kompletten Namen zu
    verlangen.
    <br>&nbsp;
    <p>Besten Dank
    Schöne Grüße, Mario

  • #2
    Hallo,

    in der Tat ist die Suche nach einer bekannten Zeichenkette in der Fensterbeschriftung am schnellsten erledigt. Das folgende Beispiel demonstriert die Suche einer NOTEPDAD.EXE-Instanz. Da dort im Titel auch der Dateiname angezeigt wird, sucht das Programm nur nach der Zeichenkette "Editor":
    <pre>
    function EnumWindProc(Wnd: HWND; i: Integer): Boolean; stdcall;
    const
    cLENGTH = 199;
    var
    szTitel : array[0..cLENGTH] of Char;
    pFound : PChar;
    begin
    GetWindowText(wnd, szTitel, cLENGTH);
    pFound := AnsiStrPos(szTitel, 'Editor');
    if Assigned(pFound) then
    Form1.ListBox1.Items.Add(szTitel);
    Result := True;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ListBox1.Clear;
    EnumWindows(@EnumWindProc,0);
    end;
    </pre>
    Über die Win32-API-Funktion <b>EnumWindows</b> wird dafür gesorgt, das Windows für jedes Fenster die eigene Callback-Funktion aufruft

    Comment


    • #3
      Funktioniert erstklassig, Danke
      Schöne Grüße, Mario

      Comment

      Working...
      X