Anwendung aus anwendung starten



  • hallo,

    meien anderen probleme haben sich soweit erledigt...
    Jetzt möchte ich eine sdi anwendung, aus einer dialogbasierten raus starten.
    -> Button (klick) ->open der sdi anwendung

    1. geht das ??
    2. wie??

    Bin dankbar für jede hilfe....



  • Hy,

    Wenn ich dich richtig verstanden habe möchtest du mit einem klick auf einem Button eine zweite ExE starten.
    Das kannst du mit

    ShellExecute(HWND,"open","file.exe","Eventuell Parameter","WorkDir",SW_SHOW);
    

    machen.

    Wenn du die zweite ExE in deine erste ExE packen möchtest müsstest du den Code in den speicher laden und diesen dann ausführen.
    Dabei kann ich dir leider nicht Helfen, denn dazu reicht mein wissen dann doch nicht.

    Mit ShellExecute kannst du noch mehr machen.
    Schau mal in die MSDN.

    Ich hoffe das hat dir geholfen.

    MFG

    ReneS



  • kann man das os machen:

    ShellExecute(ERROR_BAD_FORMAT ,"open","k:\\\\...\\toll.exe",NULL, NULL, SW_SHOWNORMAL);
    

    😕 😕

    In den speicher laden?? wie meinst du das so wie man ein bitmap in den speicher setzt??



  • Mit ShellExecute startes du Programme.
    Ein Beispiel:

    ShellExecute(NULL,"open","C:\\WINNT\\notepad.exe","","",SW_SHOW);
    

    Mal ne Frage:
    Hast du die zweite exe im Verzeichniss(Fertige EXE) oder in deinem Projekt?
    Mit in deinem Projekt meine ich das du Dialog und SDI in einem und demselben Projekt bearbeitest.
    Wobei ich nicht einmal sicher bin ob das überhaupt geht.

    MFG

    RS



  • Also das sind zwei verschieden verzeichnisse.
    Ich möchte per button druck, dass die zweite anwendung (SDI) geöffnet wird und ausführbar ist.
    Oder kann ich vielleicht eine SDI direkt erstellen in einer Dialogbasiertenanwendung??



  • Ich denke mir das es einfacher ist eine zweite exe zu erstellen und diese dann mit ShellExecute zu starten.



  • hab ich ja
    habe zwei unterschiedliche progs, die in unterschiedlichen ordner sind.



  • Hallo,

    jetzt hab ich es so gemacht :

    CString stropen;
    
    	stropen = openfenster;
    	openfenster.MakeUpper();
    
    	WinExec("k:\\\\...\\toll.exe",SW_SHOW);
    

    es geht, jetzt muss nur noch das fenster in den vordergrund
    weiss du vielleicht wie das geht????



  • Du musst mit FindWindow das Handle der Anwendug holen und dann
    den Focus drauf setzten.

    MFG

    RS



  • kannst du mir das mal genauer erklären???



  • Servus,

    HWND hHandle = ::FindWindow(NULL, "FensterName");
    CWnd* pCwnd = FromHandle(hHandle);
    
    pCwnd->SetForegroundWindow();
    

    müsste so gehen habs aber nicht getestet 😃

    *winke*
    Hellsgore



  • Geht 😃 😃 😃



  • das kann ich aber auf meine erste lösung nicht anwenden oder???
    Das geht aber irgendwie nicht....



  • Ganz einfach:

    WinExec("k:\\\\...\\toll.exe",SW_SHOW);
    HWND hHandle = ::FindWindow(NULL, "FensterName"); //Der Fenstername steht oben in der Titelleiste
    CWnd* pCwnd = FromHandle(hHandle); 
    
    pCwnd->SetForegroundWindow();
    

    MFG
    RS



  • ja danke jetzt geht zwar das fenster auf, aber bevor es auf geht zeigt es mir noch ne fehlermeldung und dann schliesst sich die hauptanwendung....

    ich hab das jetzt so gemacht:

    CString stropen;
    
    	stropen = openfenster;
    	openfenster.MakeUpper();
    	WinExec("k:\\\\...\\toll.exe",SW_SHOW); 
    	HWND hHandle = ::FindWindow(NULL, "Toll"); //Der Fenstername steht    oben in der Titelleiste 
    
    	CWnd* pCwnd = FromHandle(hHandle);  
    
    	pCwnd->SetForegroundWindow();
    


  • Hauptsache es funktioniert 😃 😉 😃



  • 😃 😃 😃 😃
    sehr witzig
    😃 😃 😃 😃

    es wäre schon nicht schlecht wenn man danach noch das hauptprogr. danach noch benutzen könnte



  • Was für eine Meldung bekommst du denn?



  • Hallo,

    ich habe jetzt mit Projekt->dem Projekt hinzufügen einfach die dateien der sdi-anwendung hinzugefügt.
    Er hatte mir zuerst einen fehler angezeigt das stdafx und noch ein afx, das gleiche erstellen würde... da habe ich die kurzerhand gelöscht und jetzt zeigt er folgendes :

    fatal error C1083: vorkompilierte Header-Datei-Datei kann nicht geoeffnet werden: 'Debug/Start.pch': No such file or directory

    Die ist aber noch da, also die start.pch, nur im release ordner....
    Ich glaube das ich etwas vorschnell gehandelt habe mit dem löschen...

    kann mir einer einen tip geben??



  • Morgäään,

    Versuche doch erst mal die Projektmappe komplett neu zu erstellen.
    Das hat bei mir manchmal wunder bewirkt.

    MFG

    RS


Anmelden zum Antworten