leider muss ich wieder dieses Forum nutzen da ich seit einigen Tagen keine Lösung finde.
Also ich möchte ein Process unter Windows 7 suchen und dann Maximieren oder zumindest nach vorne bringen.
Jetzt kommt das Problem das ich nicht weiss wie ich Prozesse die unten neben der Uhr stehen finden kann.
Ein Beispiel ist z.B. Skype der neben die Uhranzeige wandert wenn ich Ihn mit "x" Beende. Dies geht natürlich auch bei anderen Programmen. Aber ich denke Skype kennt jeder und versteht somit mein Problem. Ich habe bisher folgenden Quellcode für suchen und Klicken für Notepad:
Code: Alles auswählen
HWND hwnd;
TCHAR* buffer;
DWORD dwPid; //Prozess ID des Targets
HWND hwGamewindow; //Fenstername des Targets
HANDLE hProcess; //ID nach dem Öffnen des Prozesses, sprich dem Recht zu Debuggen
DWORD idtest; //ID von hwnd zum attachen zur 2t ID ?!
DWORD idtest2; //2te ID wir mit ID1 verbunden ?!
bool attach; //Wenn WAHR verbindet es ID1 und ID2 ?!
hwnd = FindWindowA("Notepad",NULL);
//hwnd = FindWindowA("Notepad",NULL);
if (!hwnd){
qDebug() << "Fenster nicht gefunden" << endl;
}else{
qDebug() << "Fenster Gefunden !" << endl;
qDebug() << "WindowHandle: " << hwnd << 'n' << endl;
//SendMessage(hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0);// Fenster Maximieren
SendMessage(hwnd, WM_SYSCOMMAND, SWP_NOZORDER | SWP_NOSIZE | SWP_SHOWWINDOW, 0);// Fenster holen
RECT *windowPos = new RECT();
GetWindowRect(hwnd,windowPos);
//SetWindowPos(hwnd,0,windowPos->left,windowPos->top,(windowPos->right-windowPos->left),(windowPos->bottom-windowPos->top),SWP_NOZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
//qDebug() << "GETPOS: " << windowPos->left << windowPos->top << endl;
idtest = GetCurrentThreadId();
idtest2 = GetWindowThreadProcessId(hwnd,0);
attach = AttachThreadInput(idtest,idtest2, true);
if(!attach){
qDebug()<<"attach Fehler: "<<GetLastError()<<endl;
}
SetFocus(hwnd);
QCursor::setPos(windowPos->left+10,windowPos->top+10);
}
Kann mir da bitte jemand helfen ? Ich möchte am ende eine TK-Anlagen dadurch ansteuern.