Eigenes Programm in den Vordergrund bringen



  • Hi,

    ich habe nach langem suchen endlich geschafft mein Programm in den Vordergrund zu bringen.
    Ich verstehe nur noch nicht, was bestimmte Funktionen dabei für eine Rolle spielen.

    DWORD th1 = GetCurrentThreadId();
    DWORD th2 = GetWindowThreadProcessId(GetForegroundWindow(),NULL);
    AttachThreadInput(th2,th1,true);
    SetForegroundWindow(Application->Handle);
    

    Zeile 1 und 4 sind mir schon klar, die anderen beiden hingegen nicht.
    Was macht AttachThreadInput genau?
    Die Hilfe hat mir dabei auch keine Klarheit gebracht und deswegen hoffe ich jetzt auf Eure Hilfe.



  • AttachThreadInput fügt zu einen laufenden Prozess zu einem anderen hinzu. In deinem Fall wird DEINEM laufenden Prozess der Prozess des sich derzeitig im Vordergrund befindlichen Programms hinzugefgt bzw. synchronisiert.

    DWORD th2 = GetWindowThreadProcessId(GetForegroundWindow(),NULL);
    

    Hierüber wird die ProzessID des Programms im Vordergrund ermittelt.

    AttachThreadInput(th2,th1,true);
    

    Hier werden dann dein Prozess und der Prozess im Vordergrund synchronisiert.

    Verbessert mich wenn ich mich irre 🙂



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten