WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Programmstart incl. Eingabe! (http://www.wcm.at/forum/showthread.php?t=131186)

pmartin 12.04.2004 18:38

Programmstart incl. Eingabe!
 
Hallo Leute!
Wer hat ne Idee!
Möchte gern mehrere Programme starten per Batch-Datei!
Bei den Programmen sind zum endgültigen Start noch eine Eingabe (Return) erforderlich!
Wer hat ne Idee!

Vielen Dank

Peter

kikakater 12.04.2004 18:51

Code:

beispiel.bat:
call C:\Programme\ConTEXT\context.lnk
call C:\Programme\ConTEXT\7z.lnk

Link Dateien (=Verknüpfungen) heißen cOntExt und 7z (mit versteckter Endung lnk)

cOntExt = Groß-, Kleinschreibung spielt keine Rollex

"call " kann auch weggelassen werden

pmartin 12.04.2004 18:56

Ja das ist schon nett!
Wie verarbeite ich die Eingabe!
Also Programm startet => es kommt ein Eröffnungsbildschirm => jetzt soll eine Eingabe erfolgen ("Return")=> jetzt startet das Programm erst!


Gruss Peter

kikakater 12.04.2004 19:04

Context (=ein Texteditor) muss so aufgerufen werden:

C:\Programme\ConTEXT\context.lnk beispiel.bat

Dann lädt er die Datei, eine Dateiumleitung lässt dieses Programm nicht zu.

Für DOS Programme kann man laufwerk:\pfad\program.lnk <hexedited_datei_mit_carriage_return_zeichen.txt aufrufen

"<" steht für eine Umleitung der Eingabe. Aus einer Datei die Eingabe lesen, allerdings weiß ich nicht, ob das Eingabegerät am Dateiende auf die Tastatur zurückgesetzt wird.

pmartin 12.04.2004 20:03

Schade klappt nicht so wie ich mir das gedacht habe!

Gruss Peter

flinx 12.04.2004 20:09

Um welche Programme handelt es sich?

pmartin 12.04.2004 20:50

AirbusND und AirbusPFD von Flyreal
Gruss Peter

Potassium 12.04.2004 22:27

was ist mit
Code:

@echo off
pause
call c:\windows\regedit.exe
pause
call c:\irgendwas\nochwas.exe


pmartin 13.04.2004 06:17

Vielen dank für die Hilfe!
Nur das alles hilft nicht wirklich!
Das Problem ist nach dem ich das Programm gestartet habe macht es im Eröffnungsbildschirm eine Lizenzüberprüfung und erwartet dabei die Eingabe von CR (Return) sonst bleibt es stehen. Wie damit natürlich auch die Batch-Datei.

Gruss Peter

kikakater 13.04.2004 09:11

Du solltest Microsoft anschreiben, um das Problem lösen zu können oder zumindest zu erfahren, daß dies nicht möglich ist.

Die Fakten zum Problem sind folgende:

Der Input - gemeint ist die Eingabe - wird komplett über Nachrichten gesteuert. Will man Tastendrücke (blödes Wort, Mehrzahl halt) vorher abfangen, muß man in das Betriebssystem sehr viel stärker eingreifen über einen eigenen Tastaturhandler, der nicht nur Tasten ausliest sondern eben auch eine gedrückte Taste simulieren kann ! Es geht also um das Zeichengerät Tastatur mit den Kommandos Zeichen lesen und Zeichen schreiben, beides ist wichtig.

Dieser Weg ist aufgrund der Komplexität verbaut.

Wie kann es dann gehen ?

Durch eine Nachricht, die an das Hauptfenster der Anwendung geschickt wird, oder an das Splashfenster, falls dieses den Eingabefokus hat.

Ich würde Kontakt zu Microsoft aufnehmen und fragen, ob es so ein Werkzeugprogramm gibt, das eine Anwendung herausfindet (bsp. über den Anwendungsnamen) und dann eine bestimmte Anzahl an virtuellen Tastencodes an die Anwendung mittels SendMessage(...) schickt.

MS will do, so oder so ...

Liebe Grüße weiterhin an Dich,

mfg Kikakater

lorgoth 24.09.2004 11:25

Hallo,

Erstmal sorry dass ich diesen alten Thread wieder aus der Versenkung hole, aber ich habe auch ein Problem mit Batch dateien und auf der Suche bin ich hierauf gestoßen.

Also mein Problem ist ich hab folgendes in meine Batch datei geschrieben:
Code:

call "C:\Program Files\Outlook Express\msimn.exe"
call "C:\Program Files\Opera7\opera.exe"

das Problem ist, dass jetzt Outlook Express (das erste Programm) gestartet wird, die Batch Datei aber nicht weiter abgearbeitet wird, ich versteh aber nicht warum.

lorgoth 24.09.2004 11:26

Sorry Doppelpost

pong 24.09.2004 12:09

ein

Code:

pause
Sollte da Abhilfe schaffen

pong

lorgoth 24.09.2004 12:57

Hat leider nicht geholfen,

Code:

call "C:\Program Files\Opera7\opera.exe"
pause
call "C:\Program Files\Outlook Express\msimn.exe"
pause

hiermit startet der Batch Opera, danach hängt er, wenn ich Opera dann schliesse, startet der batch erst das Pause in dem er mich um ein "press any key to continue"... scheinbar hängt der Batch schon in der call Zeile fest.
Für mich scheints als ob das im selben Thread gestartet wird und der nächste Aufruf erst gestartet wird wenn der vorherige Thread beendet wurde.

kikakater 24.09.2004 14:33

Das Prozedere funktioniert so (für Windows 2000/Windows XP):

Hintereinander Starten (also vom Prinzip her quasi parallel) von mehreren Windows (=GraphicalUserInterface oder auch Konsolen-) Programmen durch eine Datei b1.bat, wobei die als letzte aufgerufene Anwendung die aktive Anwendung ist - bezogen auf den Fensterstatus dieser Programminstanz.

Das Konsolenfenster von b1.bat wird nach dem letzten Programmaufruf auch sogleich beendet, außer beim Einsatz von pause am Ende, aber bitte das ist eine logische Frage und weniger Anleitung zum Richtigmachen. Je nach Einsatzzweck halt nach den start Aufrufen weitere Befehle aufführen oder es dabei belassen.

Code:

start /DC:\Pfad_xy_ohne_Backslash_am_Ende Programm1.exe
start /DC:\Pfad_xz_ohne_Backslash_am_Ende Programm2.exe

Mittels des 'start' Batchbefehls kann jede Datei "gestartet" werden, deren zugehörige Anwendung (über die bekannte Dateiendungsassoziation, z.B. .txt standardmäßig für Notepad) von Windows aufgerufen wird und beispielsweise die Datendatei Xy.Autocad_Endung als ersten Parameter übergeben bekommt und diese Datei dann in aller Regel zur Editierung bzw. zu einem speziellen Abarbeitungsmodus (Winamp Dateilistendateien seien hier als Beispiel erwähnt) öffnet.

mfg Kikakater

flinx 24.09.2004 14:37

Lass das call weg.

kikakater 24.09.2004 14:41

start Syntax

kikakater 24.09.2004 14:45

Zitat:

Original geschrieben von flinx
Lass das call weg.
Das resultiert im Beenden der Ausführung der Batchdatei nach dem ersten Programmaufruf. Das zweite Programm wird schlichtweg nicht mehr gestartet und das Konsolenfenster nach dem Beenden des aufgerufenen Windows Programmes Nummer 1 geschlossen.

flinx 24.09.2004 14:54

Zitat:

Original geschrieben von kikakater
Das resultiert im Beenden der Ausführung der Batchdatei nach dem ersten Programmaufruf. Das zweite Programm wird schlichtweg nicht mehr gestartet und das Konsolenfenster nach dem Beenden des aufgerufenen Windows Programmes Nummer 1 geschlossen.
Ist das so... :rolleyes: :D

lorgoth 24.09.2004 15:18

Danke jetzt funzt es so wie ichs haben wollte...

THX a lot

lorgoth 24.09.2004 15:19

Danke ... jetzt funzt es so wie ichs haben wollte

THX a lot

kikakater 24.09.2004 15:31

@flinx: Das geht nur beim Aufruf von .lnk Dateien, so etwas wie symbolische Links unter Unix, weder war es belehrend gemeint noch den Spott Deinerseits fördernd, ja das ist so :p :) (ist nett gemeint)

flinx 24.09.2004 16:02

Zitat:

Original geschrieben von kikakater
@flinx: Das geht nur beim Aufruf von .lnk Dateien, so etwas wie symbolische Links unter Unix, weder war es belehrend gemeint noch den Spott Deinerseits fördernd, ja das ist so :p :) (ist nett gemeint)
Schon ausprobiert auch?
zb.
Code:

"C:\Programme\Mozilla Firefox\firefox.exe"
"C:\Programme\Mozilla Firefox\firefox.exe"
"C:\Programme\Mozilla Firefox\firefox.exe"

:)

lorgoth 24.09.2004 16:04

Zitat:

Original geschrieben von flinx
Schon ausprobiert auch?
zb.
Code:

"C:\Programme\Mozilla Firefox\firefox.exe"
"C:\Programme\Mozilla Firefox\firefox.exe"
"C:\Programme\Mozilla Firefox\firefox.exe"

:)

Jo nur da wurde nur die erste Anweisung ausgeführt die darauffolgenden nur, wenn die erste ANweisung wieder beendet war.

flinx 24.09.2004 16:28

I stand corrected. :)

Seltsamerweise funktioniert
z.b. ein
Code:

"C:\Programme\Mozilla Firefox\firefox.exe"
"C:\Programme\Microsoft Office\Office\winword.exe"
"%SystemRoot%\explorer.exe"
"C:\Programme\Mozilla Firefox\firefox.exe"

anstandslos, wenn beim Aufruf Firefox und Winword schon gestartet sind. :confused:

lorgoth 24.09.2004 18:10

Strange bei mir hat er einfach nicht weitergemacht. Welches Sys hast du? Ich arbeite mit Win XP. Wenn ich hngegen den Aufruf mit start mache funzt alles einwandfrei

kikakater 24.09.2004 19:38

Ich muß mich korrigieren: Ohne "call" funktioniert die Weiterverarbeitung einer Batchdatei mit mehreren Programmaufrufen sehr wohl, allerdings erst jeweils nach dem Beenden des aufgerufenen Programmes kommt die nächste Befehlszeile (z.B. nächster Programmaufruf) an die Reihe.

Entschuldigung flinx. Das war ein Irrtum wegen einem Tippfehler.

Daß bei einem bereits laufenden Programm weitere Kopien des Programmes (=Instanzen) gestartet werden ohne Verzögerung, hängt mit der Instanzenbehandlung von Windows zusammen. So ein weiterer Programmaufruf gilt nicht mehr als echter Programmstart, sondern es wird nur mehr ein eigener Datenbereich für die neue Kopie desselben Programms angelegt.

Das ist eine unterschiedliche Behandlung und somit eine Eigenart von Windows in Bezug auf Programmkopien im Speicher.

lual 29.09.2004 18:25

Zitat:

Original geschrieben von kikakater
... ob es so ein Werkzeugprogramm gibt, das eine Anwendung herausfindet (bsp. über den Anwendungsnamen) und dann eine bestimmte Anzahl an virtuellen Tastencodes an die Anwendung mittels SendMessage(...) schickt.
ich habe einmal so ein pgm geschrieben und im www unter dem namen NagScreenKiller zum download bereitgestellt. allerdings ist derzeit meine hompage down und ich habe zu wenig zeit um mich darum zu kümmern. vielleicht findest du es noch auf einer der zahlreichen downloadseiten (suche nach NagScreenKiller). falls nicht, dann schicke ich es auch gerne per mail.


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag