Exe in einer form starten

  • geschlossen
  • C#

  • cccpmik
  • 2369 Aufrufe 7 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Exe in einer form starten

    hi leute also ich habe da ein game und es hat nicht die funktion dass es in windows mode lauft also es ist immer nur fullscreen. da dachte ich mir ich schreibe ein kleines programm in c# um window mode zu erstellen ich dachte es wäre einfach gemacht mit diesem quellcode

    Quellcode

    1. string Programmname = "notepad.exe";
    2. System.Diagnostics.Process.Start(Programmname);


    leider ist es nicht. bei der ausführung wird das programm gestartet aber nicht IN der Form1. hat einer von euch ne ahnung wie ich es machen könnte dass ich einfach einen panel einfüge und IN dem panel soll die exe angezeigt werden. und geht das überhaupt?

    MFG
  • Ich geb dir mal ein paar Denkanstöße (Kann kein C#, aber Delphi):

    1.) du startest das Programm mit ShellExecuteEx (ShellExecuteEx)

    2.) Dann musst du an das FensterHandle des Programms, z.B. Notepad, kommen (mit ShellExecuteEx geht das)

    3.) Du weißt das Fensterhandle dem Panel-Handle zu

    So müsste das funktionieren...
    [SIZE="1"]User helfen Usern: Die FSB-Tutoren

    Sag nein zu Filehostern - [color="blue"]AOKHA[/color]

    Ups: Horst Evers MovieMix How High Generals + 2x Xvid Viele Klassiker-Games[/SIZE]
  • Also ich denke, daß das nicht so ohne weiteres zu machen ist. Manche Programme steuern ja innerhalb des Ladens alles was mit fer Darstellung am screen zu tun hat, sprich die Resolution, die Size ( meist fulscreen ) usw.Und selbst wenn du das Spiel dann mit shell execute aufrufst ist es ein exefile, d.h esstartet im eigene thread und in der vom Gameprogrammierer vorgegebenen Größe

    JonnyBlack
  • Ich bezweifele, das es so zu realisieren ist. Es würde mich interessieren, in welcher Programmiersprache du dein Spiel programmiert hast...

    Evtl. solltest du dort lieber eine Lösung suchen, wie du das ganze als Window-Mode realisieren kannst, anstatt dir einen so umständlichen Loader zu basteln.
  • die frage ist auch, WAS du realisieren willst
    eventuell/höchst wahrscheinlich lässt sich das ganze auch viel einfacher realisieren
    (bei notepad z.b. ne richtextbox und n openfile und savefiledialog)
  • Soweit ich das richtig im Kopf habe wird bei games die im Fullscreen mode laufen der Windowhandle 0 benutzt (meine ich mal gelesen zu haben, wenns falsch ist bitte ich das zu berichtigen) :) Die gleiche technik wird bei Screensavern benutzt.

    Window Handle 0 bedeutet quasi der Desktop oder das Root-Fenster. Wenn du es schaffst dem spiel ein anderes Fenster als Handle zu geben sollte das klappen, sonst nicht... Ich persönlich hab grad keine Idee wie du das hinbekommen könntest, glaube kaum das das machbar ist.
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Hallo,
    also wenn ich das richtig verstanden habe willst du die exe in deiner Form laufen lassen. Ohne weiteres geht das nicht. Es gäbe vielleicht die Möglichkeit, dass du den laufenden Process an dein Programm anheften kannst, aber wie genau das dann funktioniert kann ich dir auch nicht sagen.

    Bei einer Win32 Apl. ist soweit ich weiß eine 0 oder NULL im Window Handle ein nicht geöffnetes Fenster, zumindest gibt eine Funktion zum Erstellen eines Fenster den wert NULL an das Handle zurück wenn es nicht funktioniert hat.

    Gibt es für das Spiel keine Parameter die du verwenden könntest? Manche Spiele unterstützen beim Aufruf der exe parameter wie -xysize oder sowas in der Art.

    Gruß