aktives Fenster erkennen
-
da ich noch ein anfänger bin, hoffe ich mal, dass ich nichts allzublödes frage.
ich möchte ein programm schreiben das erkennt welches fenster aktiv ist.
durch suchen habe ich beispiele gefunden wie man abfragt, ob ein bestimmtes programm aktiv ist. aber da ich ja nicht weiss welche programme alles aufgemacht werden können, möchte ich das flexibel halten.
zB das es mir selber erkennt das ich den Mozilla Firefox offen habe, ich auf dem Desktop bin, oder so..
Oder kann man auf ne liste zugreifen, auf der alle programme (von der Taskliste) abgelegt sind?vielen dank für jegliche tipps, anregungen, beispielen etc..
BigNeal
-
Suchst du GetForegroundWindow - falls nicht: was genau willst du denn machen?
-
flenders schrieb:
Suchst du GetForegroundWindow - falls nicht: was genau willst du denn machen?
danke für die schnelle antwort
zu dieser funktion kam ich auch schon. wenn ich das ganze richtig verstanden habe, gibt sie ja einen "hanlde-wert" zurück. handle ist soviel ich kapiert habe einen art von "zeiger" auf das formular(habe noch keine praktischen erfahrungen mit handle)habe ich bis jetzt alles richtig verstanden?
jetzt möchte ich gerne diesen "handle-wert" irgendwo abfragen so, dass ich zB einen pragrammname oder so rauskriege,
zB:
Programmhandle = GetForegroundWindow(); ProgrammName = HandleToName(ProgrammName);alles klar?

ist das irgendwie so machbar?
schonmal thx im voraus
BigNEal
-
Sowas in dieser Art:
HWND hwnd = GetForegroundWindow(); DWORD pid; GetWindowThreadProcessId(hwnd, &pid); HANDLE hProcess = (HANDLE)OpenProcess(PROCESS_ALL_ACCESS, TRUE, pid); HMODULE hModule; EnumProcessModules(hProcess,&hModule,sizeof(HMODULE),NULL); TCHAR szName[MAX_PATH]; GetModuleFileNameEx(hProcess,hModule,szName,sizeof(szName)/sizeof(szName[0])); MessageBox(NULL,szName,"",0);
-
Danke, ich hab mal den ganzen code nachgeschlagen und es mehr oder weniger verstanden

theoretisch sollte es auch funktionieren, aber wenn ich es compilen will, kommt die untenstehende fehlermeldung. ich arbeite mit dem C++ builder 6. muss ich noch files includen oder so?[C++ Fehler] Unit1.cpp(27): E2268 Aufruf der undefinierten Funktion 'EnumProcessModules'
[C++ Fehler] Unit1.cpp(30): E2268 Aufruf der undefinierten Funktion 'GetModuleFileNameEx'thx BigNeal
-
Achso, hatte ich vergessen zu schreiben: Psapi.h einbinden und Psapi.lib linken

-
perfekt, danke.. klappt schonmal
vielen dank