Prozess anhand Prozess-Id aktivieren

krauti

Grünschnabel
Prozess anhand Prozess-Id aktivieren (Qt - QProcess)

Hallo,

ich habe folgendes Problem:

Ich habe via processIdentifier(), einer Funktion von Qt (QProcess) folgenden Struct erhalten

typedef struct PROCESS_INFORMATION
{
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
}PID;

die Variable dwProcessId enthält die Prozess-Id, wie sie auch im Taskmanager angezeigt wird.
Wie kann ich nun den Focus aus dem Programm heraus auf diesen Prozess setzen, damit der Anwender nicht auf die Taskbar klicken muss um die Anwendung wieder in den Vordergrund zu bekommen.

vorab schon mal vielen Dank für eure Hilfe...

mfg Krauti
 
Zuletzt bearbeitet:
Du müsstest dir ein HANDLE auf das MainWindow des Programms holen (mit FindWindow()) und dann kannst du in den Vordergrund setzen (SetForegroundWindow()).

Gruß Homer
 
Hi,

Die Idee hatte ich bereits schon, leider bin ich daran gescheitert, dass ich nicht via Prozess-Id zum entsprechenden HANDLE des Prozesses kam, wenn das ist alles klar, mein CWnd bekomme ich durch fromHandle und danach wie Du sagtest setForeGroundWindow().
Das HANDLE aus dem Struct kann ich in Zusammenhang mit afxwin.h nicht verwenden, da es Probleme gibt dieses include in unser System einzubinden.
Deswegen versuche ich einen Weg zu finden, nur mit Hilfe der Prozess-Id das entsprechende HANDLE oder HWND zu finden.

mfg Krauti
 
Zurück