PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Help] FindWindow();



MasterB
08.03.2010, 13:46
Hey, ich wollte mich dran machen ein kleines Programm in c++ zu programmieren...das Programm soll als erstes den gewünschten Fensternamen finden. Und genau da komm ich grade nicht weiter... hier mal meine main-Funktion.



int main(int argc, char** argv) {
DWORD id;
HANDLE ph;
string win_name;
HWND hwnd;
cout << "Fensternamen angeben. ";
getline(std::cin, win_name); //////
const char* win_name2 = win_name.c_str(); //////

hwnd = FindWindow(0, win_name2);

if(!hwnd) {
cout << "fenster nicht gefunden"; }
else
{
GetWindowThreadProcessId(hwnd,&id);

ph = OpenProcess(PROCESS_ALL_ACCESS, false,id);
}
cin.get();
return 0;

}

Es währe nett wenn mir wer die gekennzeichneten Zeilen eben erklären könnte, und auch vlt. den richtigen weg angeben könnte. Ich habe diese beiden Zeilen während meiner suche auf eine Lösung gefunden.
Vielen Dank im vorraus.

edit: Hab die Zeilen jetzt markiert...sry <.<..

blackberry
08.03.2010, 16:53
Also bei mir funktioniert das mit dem Fenster finden.
Bist du dir sicher, dass du den Fensternamen richtig geschrieben hast?

AlterHacker
08.03.2010, 16:59
&& nicht vergessen, das Process-Handle zu schließen :P
CloseHandle müsste das sein, wenn ich mich nicht irre^^

MasterB
09.03.2010, 17:30
Hmm...mein code war doch richtig aber,
@ Blackberry, ja das Fenster war richtig geschrieben, nur es war ein ä im namen -.-... und
@AlterHacker danke, hab ich hinzugefügt,

jetzt habe ich aber schon die nöchste frage :D, wo könnte ich jetzt nachgucken, wie ich umlaute mit rein bringen kann?...
Aber danke nochmals für die schnelle hilfe!

wacked
11.03.2010, 15:00
ascii table...
char Name[]="wasweißich\x??";
?? türlich ersetzen

GregorSamsa
11.03.2010, 15:17
Wenn du 'nen Process öffnen willst, versuch das lieber indem du dir direkt die PID über den Prozessnamen holst statt über den Fensternamen - der Fenstername ist nicht immer so vorhersehbar...