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.





  • 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.


Anmelden zum Antworten