Wie kann ich mir mit EnumChildWindows() alle buttons ect. von einem anderen Window auflisten lass?
-
Wie wirds gemacht? hat wer ein BeispielCode oder so fuer mich?
Danke!
Gruß Tobi.
-
Warum unbedingt EnumChildWindows?
Warum verwendest Du nicht GetWindow?
for (HWND hWnd=::GetWindow(hWndParent,GW_CHILD); hWnd; hWnd=::GetWindow(hWnd,GW_HWNDNEXT)) { ... }
-
ok von mir aus... was ich brauche ist die bestimmte ID eines buttons, oder was mir auch immer EnumChildW. returnt. was muesset ich dem zu folge zw. die
for(...) { ... } schleife schreiben um mir die return werte oder so auflisten zu lassen?Gruß Tobi
-
Guck dir doch mal die Schleife an. Das hWnd ist das Handle des Childs damit kannst du doch alles machen

Wenn du wirklich (aus welchem grund auch immer?) doch die ID brauchst dann nimm GetDlgCtrlID();MfG schirrmie
-
nunja.. des ParentWindow hat 8Buttons woher soll ich wissen ob ich an den richtigen butten die message BN_PUSH sende???
wie weiss ich das ich des richtige handle habe?( will ja nur den start knopf druecken net alle.
-
Ja das musst du ja wissen welches du nun letztendlich drückst. Wenn du alle IDs hättest und nicht alle HWNDs dann müsstest du dich doch entscheiden weis nicht wo dein problem ist.
Aber du könntest ja mit GetWindowText(...) den Text des Buttons ermitteln und dann nach dem Text gehen und dann ihn drückenMfG schirrmie
-
Aber wenn du die ID hast ist es sinfrei alle Fenster durchzugehen ... hol dir dann lieber mit FindWindow das Parent Wnd und dann mit FindWindowEx den entsprechenden Button ...
-
da liegt doch mein prob... ich weiss nicht wie ich es angehen soll. wie speichere ich alle?
am besten wuerde sein eine KonsolenAnwendung mit der ich mit getwindow oder was weiss ich mir die id's alle auflisten lassen koennte aber wie?
-
Na die ID wird ja bei dem Programm immer die selbe für ein Control sein. Also gehst de mit Spy++ hin und suchst dir dein benötigtes Control raus. Mit der ID und dem Handle zum Parent Wnd kommst de nöhmlich leicht zum Ziel ^^
-
Spy++ was isn des? hab ich noch nie gehört ? ( ist das beim BCB6 au dabei oder is des nen tool was man sich dl'n muss? )
also ich bins mal FindWindow() und FindWindowEx() angegangen, hier scheitere ich mit FindwindowEx().
char path[] = "C:\\Dokumente und Einstellungen\\Tobi\\Eigene Dateien\\startup.exe"; static HWND hStartup, hStart; switch( message ) { case WM_CREATE: { ShellExecute( 0, "open", path, 0, 0, SW_SHOWNORMAL ); Sleep( 1300 ); // is nötig weil nach der init. des tools der // winName geändert wird hStartup = FindWindow( 0, "Starting..." ); if( !( hStartup ) ) { MessageBox( 0, "Couldn't find the window!", "Shut Down!", MB_OK | MB_ICONERROR ); return 0; } else { hStart = FindWindowEx( hStartup, 0, 0, "Start" ); if( !( hStart ) ) { MessageBox( 0, "Couldn't find the childwindow!", "Shut Down!", MB_OK | MB_ICONERROR ); return 0; } MessageBox( 0, "Window was found, all work fine!", "All right!", MB_OK | MB_ICONINFORMATION ); } return 0; } [...]bei FindwindowEx kommt immer die fehlermeldung-.- wieso findet er den button net?
-
?.?.?