c++ DOS Programm soll externes Programm steuern



  • Hey,
    ich bin noch recht neu in der c++ Programierung und habe folgendes Problem:

    Ich möchte auf einem windows 7 computer, ein Programm schreiben welches unter dos läuft.
    Dieses Programm soll dann unter dos ein zweites programm aufrufen, und dort praktisch ein paar tasten drücken.
    (sowas wie öffne programm.exe, warte 10 sec, drücke dann f1, dann enter und dann 2 mal escape).

    ist so etwas denn generell möglich, oder können keine 2 programme "gleichzeitig" ausgeführt werden?

    ich bin um jeden Hilfe dankbar, komme nämlich überhaupt nicht mehr weiter...
    Danke,
    Max.



  • Echt unter DOS? Welche Version?

    Es gibt/gab heute nur wenige Compiler mit denen es eventuell möglich ist DOS - Programme unter Windows zu erstellen. Bis XP funktionierte das noch. Windows 7 ? -> der Versuch macht klug.

    Aber die beiden Compiler, von denen ich annehme das die noch unter Windows 7 C++ Programme für DOS erstellen können, können das nur auf einem C++ Level von vor 2000.

    Warum versuchst du das ganze nicht unter DOS? Die Compiler können auch nur old C++
    aber da findest du eventuell noch alte Bücher oder Zeitschriften, die dir zeigen wie das gehen kann.

    Warum nicht sofort direkt das ganze in einem Programm, sondern eines das ein weiteres aufruft, wenn du scheinbar eh beide erstellen willst oder musst 😕

    MfG f.-th.



  • Unter Win7 laufen keine Dos-Programme (16 Bit).



  • noergel schrieb:

    Unter Win7 laufen keine Dos-Programme (16 Bit).

    Falsch, nur unter Windows 7 64 Bit laufen keine DOS Programme mehr.
    Windows 7 32 Bit kann 16 Bit Anwendungen noch ausführen.



  • Compiler, der unter Win XP noch lief und eine allerdings etwas gewöhnungsbedürftige, einfache IDE dabei hat: Open-Watcom. In der 1.6 Version war es noch möglich in der IDE als Zielplattform DOS auszuwählen. In der 1.9 Version geht das in der IDE glaub nicht mehr.

    Auf der Seite von Digital-Mars sollte auch noch eine ältere C++Version für die Ziel-Plattform DOS verfügbar sein. Da müsst ihr lesen welche das ist.

    Etwas sehr altes gibt es auch noch im Borland-Museum oder wie die Nachfolgeseite heute heisst? Embarcadero? Das ist aber C++ vor mehr als 20 Jahren 😉 Da war Windows noch in den Kinderschuhen. Da könnte etwa Version Win 2.0 aktuell gewesen sein.

    Microsoft dürfte bei Visual C++ 1.52 oder 6.0 zuletzt DOS unterstützt haben.
    Hier etwas zu einem ähnlichen Thema.
    http://social.msdn.microsoft.com/Forums/de-DE/visualcplusde/thread/34c653ae-fa69-4e0b-bb97-3fe9fa8df940

    MfG f.-th.



  • naja, der grund warum ich ein externes programm bauen möchte, welches mein anderes steuert ist der:
    das "andere" programm existiert bereits, ist aber in turbopascal geschrieben. nun muss ich dort eine art funktion einbauen, dieses alle halbe stunde auszuführen. da ich mich aber überhaupt nicht mit turbopascal auskenne (und es für zeitverschwendung halte mich da noch hineinzuarbeiten) dachte ich mit einem zweiten programm wäre das einfacher.
    ich habe leider ein 64 bit, dann werde ich wohl unter dos versuche müssen zu compilen.
    vielen dank für eure antworten und hilfe 🙂
    (ob das mit den 2 programmen funktioniert, damit hat noch niemand erfahrung, oder?)
    grüßle max.



  • Wenn dein TP Programm ein 16-Bit Programm ist, wirst du sowieso Schwierigkeiten haben, es überhaupt unter einem 64-Bit Windows zu starten, geschweige denn mehrfach.
    Probiere es einfach aus in deinem DOS-Fenster.
    Das Programm dann periodisch ausführen zu lassen, wäre auch einfach über Win7->Aufgabenplanung->Neu->Trigger möglich, da brauchst du kein extra Programm zu schreiben.
    Evtl. musst du dein TP Programm neu für 32-Bit kompilieren, um es überhaupt zum Starten zu bewegen, ich weiß nicht, ob das letzte Borland-Pascal 32-Bit konnte, sonst musst du es sogar mit Delphi versuchen.



  • Du kannst auch zum neu compilieren FreePascal probieren. Das kann 32-Bit.
    (kostet nix, ausser etwas Zeit)



  • ah, da hab ich mich schlecht ausgedrückt, sorry.
    ich habe 2 rechner. einen uralt laptop mit dos, auf dem die programme laufen sollen, und einen windows 7 rechner, auf dem ich (dachte ich) das c++ programm schreiben könnte welches das andere programm steuert. (zur not wäre das wohl auch auf dem dos computer möglich, ich kenn mich nur so schlecht mit dos aus...).
    wieder danke für die hilfe!
    max.



  • Reine Neugier:
    wie "steuert" man ein DOS-Programm unter DOS von einem anderen Rechner aus?
    Welche Schnittstellen benutzt du?



  • Wutz schrieb:

    wie "steuert" man ein DOS-Programm unter DOS von einem anderen Rechner aus?

    dermax schrieb:

    ich habe 2 rechner. einen uralt laptop mit dos, auf dem die programme laufen sollen, und einen windows 7 rechner, auf dem ich (dachte ich) das c++ programm schreiben könnte welches das andere programm steuert.

    Ich glaube, wenn fertig, soll alles auf einem, dem DOS-Rechner, laufen.



  • ok, schon wieder bin ich unklar 😉

    ich steuere den dos-computer nicht mit meinem windows-computer.

    Beide programme sollen auf dem Dos-computer laufen. der windows computer hat eigentlich nichts damit zu tun, das einzige was ich mit diesem machen wollte ist das programm schreiben, weil mir der vertrauter ist.

    davon haben mir ja jetzt diverse leute schon indirekt abgeraten, d.h. eigenltich ist der raus und ich habe nur noch den DOS computer, auf dem die beiden programme laufen sollen...

    (bin mittlerweile am zweifeln ob es nicht doch einfacher ist sich in turbopascal einzuarbeiten....)

    grüße max.



  • Du kannst 16-Bit C-Programme u.a. mit Turbo-C erstellen, das gibt es (ich glaube in der Version 3.0 (als Diskettenimages!)) irgendwo kostenlos.
    Das installierst du dann auf deinem Uraltlaptop (so wie TurboPascal auch) oder unter einem 32-Bit Windows und schreibst dir das Programm dann entsprechend. Die WinAPI Funktion Sleep() kannst du dafür natürlich nicht einsetzen, musst dir aus der TC Bibliothek einen passende Timer-Funktion raussuchen.
    So schwer ist allerdings TurboPascal auch nicht, wenn du nur eine Schleife einbauen willst, sollte das wohl relativ einfach gehen, in TP heisst das entsprechende Schleifenkonstrukt repeat/until, s.ä. wie do/while in C.
    Wenn die Features des TP Programms nicht zu diffizil sind, kannst du dir auch überlegen, gleich das ganze Programm von TP -> TC zu portieren.



  • ok, ich werde mich mal mit turbopascal versuchen. vielen dank für eure hilfe!!!
    grüße max.



  • Hallo,

    ich kenne mich zwar nicht so gut aus im Thema Programmiersprache, doch möchte es jetzt endlich mal lernen und das als neues Hobby zu entdecken. Arbeitet ihr wirklich noch mit dem alten MS - DOS System?



  • Ne, das ist wohl eher die Ausnahme. Hier geht es hauptsächlich um die Windows-Konsole.



  • Wutz schrieb:

    Reine Neugier:
    wie "steuert" man ein DOS-Programm unter DOS von einem anderen Rechner aus?
    Welche Schnittstellen benutzt du?

    Das meinte er wohl nicht als er sagte:

    dermax schrieb:

    ...habe 2 rechner. einen uralt laptop mit dos, auf dem die programme laufen sollen.

    Also beide Programme sollen GLEICHZEITIG unter DOS laufen. Nunja, da MS-DOS kein
    Multitasking kann wird das nicht so einfach gehen. Man müsste möglicherweise
    das Contolprogramm als TSR-Programm auslegen und könnte dann wohl auch direkt
    was in die Tastatur-Register schreiben.

    Als Compiler würde ich dann Borland C++ Version 3.1 empfehlen - naja oder eben doch Turbo-Pascal.


Anmelden zum Antworten