Child-Windows
-
Hallo,
ich habe folgende Frage:Ich habe eine exe-datei und möchte diese als child-window meiner selzu programmierenden Anwendung starten.
Nur leider habe ich keine Ahnung ob das geht und wenn ja wie.
Wie startet man denn eine exe als child-window?danke schonmal,
andi01.
-
Du kannst keine exe als child window starten, aber
mit SetParent könntest du dein Fenster als child von einem anderen Fenster setzen
-
danke, genau das ist mein ziel

ich werde mir die funktion gleich nochmal ansehen und bescheidsagen obs geklapp hat!mfg,
andi01.
-
so hanbs jetzt mal mit mnotepad getestet. die funktion scheint erfolgreich ausgeführt zu werden da editor dann unsichtbar ist und auch im taskmanager nicht mehr auftaucht

aber wie kriege ich editor nun wieder sichtbar? ein unsichtbares child-window nützt mir nicht sehr viel.
danke schonmal,
andi01.
-
Gugg mal da:
-
Sorry wollte auf dein anderes Post antworten, dat hier halt nix mit dem Thema zu tun.
-
ich weiß normal geht das mit ShowWindow(); aber bei mir tut sich da gar nix, das fenste blibt unsichtbar=(
hier mein code:
// childwindow setzen.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include "stdafx.h" #include<iostream> #include<windows.h> #include<conio.h> #include<winuser.h> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { WinExec("C://myfile-befehle/notepad.exe", SW_NORMAL); HWND hwnd=FindWindow(0, TEXT("Unbenannt - Editor")); Sleep(1000); if(hwnd==NULL) { cout<<"Bitte starten Sie editor!\n"; } HWND hwnd2=SetParent(hwnd, GetConsoleWindow()); Sleep(1000); ShowWindow(hwnd2, SW_NORMAL); UpdateWindow(hwnd2); getch(); }was ist denn falsch?
danke schonmal,
andi01.
-
SetParent gibt das zuletzt aktive Parent zurück und das willst du ja nicht sichtbar machen, sondern den Editor
-
danke. hab jetzt mit neuem code das child-handle ermittelt und festgestellt dass es gleich bleibt. aber das sichtbar-machen funzt auch mit dem neue handle nicht

// childwindow setzen.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include "stdafx.h" #include<iostream> #include<windows.h> #include<conio.h> #include<winuser.h> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { WinExec("C://myfile-befehle/notepad.exe", SW_NORMAL); HWND hwnd=FindWindow(0, TEXT("Unbenannt - Editor")); cout<<"Handle Editor: "<<hwnd<<endl; Sleep(1000); if(hwnd==NULL) { cout<<"Bitte starten Sie editor!\n"; } SetParent(hwnd, GetConsoleWindow()); Sleep(1000); HWND child=FindWindowEx(GetConsoleWindow(), NULL, 0, TEXT("Unbenannt - Editor")); cout<<"child-handle: "<<child<<endl; ShowWindow(child, SW_NORMAL); UpdateWindow(child); getch(); }was ist denn nun wieder falsch?
mfg,
andi01.
-
Versuch doch mal ShowWindow mit hwnd du hast doch das hwnd von dem Editor schon?
-
EDIT:
et gehts

hatte nur vergessen runterzurollen^^ da war editor
im fenster. kann man den irgendwie rausschieben auf den desktop?thx,
andi01.