Announcement

Collapse
No announcement yet.

Ermitteln aller laufenden anwendungen unter Windows

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

  • Ermitteln aller laufenden anwendungen unter Windows

    hallo alleseits,
    ich hab eine, wie mir scheint, recht verzwickte frage:
    wie kann ich aus meinem programm heraus ermitteln, ob eine andere beliebige anwendung (die nicht von vornherein bekannt ist) läuft? wenn ich diese ermittlung erfolgreich durchgeführt habe, so möchte ich dann das programm z.B. in fordergrund bringen. ich habe versuche mit "find window" gemacht und dadurch das handle und den klassennamen zu erhalten. das klappt bei einigen programmen gut. mir ist dabei aufgefallen, daß bei programmen größeren umfanges welche mehrere fenster besitzen die prozedur nicht klappt, da ich nicht oder nur manchmal den richtigen klassennamen erhalte.
    hat einer eine idee wie ich vorgehen soll?
    vielen dank. es wäre nett, wenn ich die antwort auch per mail erhalten würde. mailto:[email protected]

  • #2
    Mit den nachfolgenden Befehlen kannst du jedes Fenster nacheinander holen:

    HWND hWndFirst;
    HWND hWndBuffer;

    hWndBuffer = ::GetWindow(/*HWND von Mainframe*/,GW_HWNDFIRST);
    do
    {
    // ...mit HWND arbeiten...

    hWndBuffer = ::GetWindow(hWndBuffer,GW_HWNDNEXT);
    }
    while (hWndBuffer!=NULL)

    Comment

    Working...
    X