C++ foundwindow findet fenster nicht.

aL1ien

Mitglied
Hallo Comm,

Ich habe eine .NEt applikation und versuche diese mit einer konsolenapplikation zu entdecken. Nun, er findet aber das fenster nicht

Konsole:
Code:
  HWND wnd = 0; 
  while(!wnd){ 
    wnd = FindWindow("test", NULL); 

    if(wnd) 
	{
		wnd = GetWindow(wnd, GW_CHILD); 
   
	}

    Sleep(10); 
  }

.NET

Code:
this->Name = L"Form1";
			this->Tag = L"test";
			this->Text = L"Form1";

Er findet es mit "test" und auch mit "Form1" als Suchwort nicht. Wenn man aber "notepad" eingibt, geht es ::CONFUSED::
 
Hallo,

das sollte eher so herum gehen:
C++:
FindWindow(NULL, "test");
Der erste Parameter ist der Name der Fensterklasse (NICHT der .NET-Klassennname) und der zweite der Titel des Fensters.

Gruß
MCoder
 
Hi.

Du setzt den Namen des Fenstern auf "Form1", suchst aber nach "test" und wunderst dich das es nicht gefunden wird...?

Gruß
 
Wenn ich dort "notepad" einfüge geht es...

wenn ich es so mache gehts:


HWND wnd = 0;
wnd = FindWindow(NULL, "Form1") ;

aber mit dem while gehts nicht :O
 
Zuletzt bearbeitet:
aber mit dem while gehts nicht :O
Was willst du denn mit der Schleife erreichen bzw. was bedeutet "geht nicht"?

Ich kann nur vermuten, dass du die untergeordneten (Child-) Fenster auflisten willst. Veilleicht hilft dir ja der folgende Code weiter:
C++:
// Hauptfenster der App 
HWND hWndMain  = FindWindow(NULL, "Form1"); 
// Erst untergeordnetes Fenster
HWND hWndChild = GetWindow(hWndMain, GW_CHILD); 

while( !hWndChild )
{ 
    // Alle weiteren untergeordneten Fenster der selben Hierarchie
    hWndChild = GetWindow(hWndChild, GW_HWNDNEXT); 
}
Gruß
MCoder
 
Zurück