Befehl für Programm ohne Pausen öffnen


Funs

Still Fresh
Joined
Jan 20, 2008
Messages
47
Hi,
wie schaffe ich es, dass ihc ein anderes programm, welches ein windows terminal programm is auszuführen ohne die pausen ("Belibige Taste drücken..."usw) oda das mein programm dann irwie die tasten drückt.
Gibt es dafür ein Befehl?


mfg Funs
 
Wenn du XP benutzt könntest Du Dir ein kleines WSH-Script erstellen: einfach eine neue .VBS-datei anlegen und editieren.
Unter http://www.wallstreet-online.de/diskussion/236548 findest Du raus wie man mit WSH ein Programm startet und
wie die Befehle zum Senden von Tastaturcodes, sowie zum Warten lauten. So kannst Du die Tastendrücke ordentlich timen.
Dann rufst Du am Anfang Deines WSH-Scripts die CMD-Shell mit deiner Anwendung auf und läßt den Rechner den Rest machen.

edit:
Man kann in der CMD auch per
Code:
befehl > nul
sämtliche Ausgaben umleiten, in diesem Fall ins Nirvana. Keinen Schimmer, ob es auch diese PAUSE Anweisung in nem Shellscript übergeht, müsste man mal versuchen, vielleicht hilft Dir das irgendwie.

editedit:
Was hat das Ganze mit C++ zu tun? ^^
 
Vielleicht hilft dir ja auch die CMD Referenz:
cmd.exe /? > D:\log.txt said:
Startet eine neue Instanz des Windows Befehlsinterpreters.

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] Zeichenfolge]

/C Führt den Befehl in der Zeichenfolge aus und endet dann.
/K Führt den Befehl in der Zeichenfolge aus und endet dann nicht.
/S Bestimmt Behandlung von Zeichenfolgen nach /C oder /K (siehe unten).
/Q Schaltet die Befehlsanzeige aus.
/D Deaktiviert die Ausführung von AutoRun-Befehlen von der Registrierung.
/A Ausgabe interner Befehle in eine Pipe oder Datei im ANSI-Format.
/U Ausgabe interner Befehle in eine Pipe oder Datei im UNICODE-Format.
/T:fg Legt die Hinter- bzw. Vordergrundfarben fest (siehe auch COLOR /?).
/E:ON Aktiviert Befehlserweiterungen (siehe unten).
/E:OFF Deaktiviert Befehlserweiterungen (siehe unten).
/F:ON Aktiviert die Ergänzung von Datei- und Verzeichnisnamen.
/F:OFF Deaktiviert die Ergänzung von Datei- und Verzeichnisnamen.
/V:ON Aktiviert verzögerte Erweiterung von Variablen, ! wird dabei als
Trennzeichen verwendet. Zum Beispiel wird mit /V:ON die Variable
!var! zur Ausführungszeit erweitert. Im Gegensatz dazu wird bei
Verwendung der Syntax var die Variable zum Zeitpunkt der Eingabe
aufgelöst (Diese Werte können z. B. in einer FOR-Schleife
unterschiedlich sein!).
/V:OFF Deaktiviert die verzögerte Erweiterung von Variablen.
Ich würde jetzt, ohne es getestet zu haben,darauf schließen, dass:
cmd.exe /C script.xyz
den Script ohne die Pause aufruft.
 
Würde das nicht einfach nur das Fenster schließen, nachdem der Befehl abgearbeitet wurde?
 
Hmm, ist ein Argument.

Aber:
Du könntest theoretisch dann folgenden Befehl nutzen:

cmd.exe /C test.bat

in der test.bat steht dann:
@echo hallo test!
@echo off
ping 127.0.0.1 -n 30 >nul

Dann würde die Ausgabe so aussehen:
CMD startet..arbeitet Befehle in test.bat ab, zeigt "hallo test!" an und wartet dann rund 30 Sekunden.
Dann geht das Fenster zu ;)

Edit: Getestet und läuft :)
 
Das bringt ihm was? Er will, wenn ich das richtig verstanden habe, dass sein Programm durchläuft, ohne, dass er eine "beliebige Taste zum Fortsetzen" drücken muss.
Dein Beispiel impliziert, dass der Befehl schon abgearbeitet wurde, wie es ja so schön in der Befehlsreferenz steht.
Code:
/C Führt den Befehl in der Zeichenfolge aus und endet dann.
 
Vielleicht sollte er uns mal sagen, welchen Befehl er abarbeiten möchte ;)

Ich habe das jetzt so verstanden, dass nach dem Befehl diese Meldung erscheint. Dann wäre meine Lösung durchaus berechtigt ^_^
 
kuru said:
auszuführen ohne die pausen ("Belibige Taste drücken..."usw) oda das mein programm dann irwie die tasten drück
Welcher Befehl ruft denn einen Instanz von cmd.exe auf und verlangt vor dem Ausführen eine Tastenkombi?! :huh:
Naja, warten wir mal ab, bis er sich zu Wort meldet...
 
Der Shellscript-Befehl PAUSE macht genau das: Warten innerhalb des scripts, bis der user eine Eingabe macht, den guten, alten ANY KEY drückt.
Aber ja, bevor wir uns hier die Haare ausraufen, einfach mal abwarten.
 
Ja, aber es wäre doch ziemlich hirnrissig erst den Befehl PAUSE anzuwenden und dann zu fragen, wie man diesen automatisieren kann, oder? :D :D
 
Also, ich habe mir ein Programm gemacht (c++), jetz habe ich eine exe, die ich am anfang MEINES programmes starten möchte und ohne pausen durchlaufen soll.
Mit pausen sieht dei zeile bei mir so aus:
Code:
ShellExecute(NULL, "open", "abcde.exe", NULL, NULL, SW_SHOW);

nur leider sind da jetz also die pausen drin, die den weiteren verlauf MEINES programms erheblich unübersichtlich machn....
 
ich weiß niicht, welche Libs du verwendest, aber sowas kann man angeblich ganz gut in QT4 mit QProcess machen, ist aber keine einfache sache (QOctave nutzt das z.b.).

Keine chance, an den Quellcode zu kommen?
 
Ansonnsten könntest du mit der WinAPI die Tasten emulieren

FindWindowEx -> Fenster Suchen (Classname und Window Name kann man z.B. mit dem Programm Spy++ herausfinden)
SendInput -> Tastatureingaben schicken
 
Back
Top