PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tastenkombinationen in Batchdatei?



FMS 32 Pro
23.03.2008, 17:51
Mit welchem Befehl kann eine Batchdatei eine Tasten kombination ausführen?
Ich bin schon soweit das sich das gewünschte Programm öffnet lol ^^
Nach dem öffnen soll sofort die Funktion der Taste R und sofort danach die Leertaste ausgeführt werden. Danach soll xx Minuten nichts passieren. Nach XX Minuten wieder die Leertaste ausführen.

evtl. speichern und Programm wieder schließen.

Wer kann mir helfen?

Blinky
23.03.2008, 21:43
Das bekommste so mit einer Batch nicht hin. Dafür brauchte entweder VB-Scripts oder aber eine andere Scriptsprache wie AutoIt. VB-Scripts sollte dein Rechner von Haus aus unterstützen und AutoIt müßteste Dir runterladen. Die AutoIt-Script laufen auch ohne Programm, wenn Sie kompiliert sind, aber zum erstellen brauchte das Programm. Bei VB-Script brauchte in der Regel nichts weiter. Allerdings brauchte hier Kenntnisse in Basic.

Blinky

FMS 32 Pro
24.03.2008, 00:08
Das bekommste so mit einer Batch nicht hin. Dafür brauchte entweder VB-Scripts oder aber eine andere Scriptsprache wie AutoIt. VB-Scripts sollte dein Rechner von Haus aus unterstützen und AutoIt müßteste Dir runterladen. Die AutoIt-Script laufen auch ohne Programm, wenn Sie kompiliert sind, aber zum erstellen brauchte das Programm. Bei VB-Script brauchte in der Regel nichts weiter. Allerdings brauchte hier Kenntnisse in Basic.

Blinky

uff, da blick ich auch nich ganz durch. is das aufwengig? könntest du mir sowas schreiben?

Blinky
24.03.2008, 01:30
Hier kannste Dir die Deutsche Dokumentation runterladen

http://www.autoitscript.com/autoit3/docs.shtml

Programm unter
http://www.autoitscript.com/autoit3/downloads.shtml

Hier das Programm.

Suche in der Dokumentation unter Funktionsreferenz nach Tastaturkontrolle, Prozessmanagment, Fenstermanagment und Zeit- und Unterbrechungsfunktion.

Beispiel

RunWait ( "Programmname")
send("r{SPACE}")
sleep (5000)
WinClose ( "Fenstertittel", "")

Actros
24.03.2008, 11:11
Ich weiß, ist mittlerweile ne Standardfrage, aber was hast Du damit vor?

Vielleicht kann man das Problem ja auch auf ne andere Art und Weise lösen, ohne das man die Tasten simmulieren muß.

Gruß

Torsten

FMS 32 Pro
24.03.2008, 12:23
Also, ich hatte dazu schon mal einen Thema eröffnet. Es geht darum, dass FMS bei der Audioaufnahme von der Zeit immer von der letzten ausgewerteten Schleife ausgeht. Unsere Schleifen kommen immer zu erst. Ich möchte das bei Alarm für uns 60 min der Funkaufgezeichnet wird. Bei alarm für alle andere Feuerwehren nur 2 Minuten die Alarm durchsage. Naja und ich möchte nicht das ich wegen jeder Ölspur die Feuerwehr XY fährt ne Aufzeichnung von über einer Stunde hab. ALso hab ich mir Mp3 DirectCut auf den Laptop gemacht.
Der Script war nicht schwer, ging mit dieser Hilfedatei ganz leicht und hat prima geklappt. Allerdings hab ich jetzt ein Problem. Pötzlicht ging es nicht mehr? Das Programm wird geöffnet aber danach Passiert nchts mehr ?
Schau selbst:

Run("C:\Programme\mp3DirectCut\mp3DirectCut.exe")
Sleep(3000)
Send("R")
Send("{Space}")
Sleep(3600000)
Send("{Space}")
WinClose("mp3DirectCut")

Öffnet C:\Programme\mp3DirectCut\mp3DirectCut.exe
Wartet 3 Sekunden, (die Zeit wird zum laden des Programms gebraucht)
Sendet R an das Fenster (bereitet die Aufnahme vor)
Sendet Leertaste an das Fenster (Startet die Aufnahme)
Wartet 3600000 bzw. 1 Stunde (Das Programm nimmt 1 Stunde auf)
Send("{Space}") (Aufnahme wird beendet)
Schliest des Fenster mp3DirectCut

Zumindesten Theoretisch, Praktisch gehts nicht mehr =(

Wo ist der fehler? =(
Zu dem habe ich noch das Problem das Mp3 DirectCut immer nach Aufnahmestart eine Datei mit Namen "Recording.mp3" erstellt. Das heist Eine fürhere Aufnahme würde einfach überschrieben werden. Wie kann ich es machen automatisch als Recording1.mp3, Recording2.mp3, Recording3.mp3 gespeichert wird?

Blinky
24.03.2008, 12:45
1. Wird ich nach Run den Befehl

WinWait ("mp3DirectCut", "")

nehmen. Dann wartet das Script bis das Fenster existiert.

2. Bringt Dir die Tastenkombination nur was, wenn dein Aufnahmesoftware aktiv im Vordergrund ist. Mußte also mit

WinActivate("mp3DirectCut", "")

Das Fenster im Vordergrund holen vor dem senden der Tastenkombination.

Frage:
Da ich das Programm mp3DirectCut nicht kenne, muß die Datei nicht noch gespeichert werden?

FMS 32 Pro
24.03.2008, 12:58
Also, ich hatte dazu schon mal einen Thema eröffnet. Es geht darum, dass FMS bei der Audioaufnahme von der Zeit immer von der letzten ausgewerteten Schleife ausgeht. Unsere Schleifen kommen immer zu erst. Ich möchte das bei Alarm für uns 60 min der Funkaufgezeichnet wird. Bei alarm für alle andere Feuerwehren nur 2 Minuten die Alarm durchsage. Naja und ich möchte nicht das ich wegen jeder Ölspur die Feuerwehr XY fährt ne Aufzeichnung von über einer Stunde hab. ALso hab ich mir Mp3 DirectCut auf den Laptop gemacht.
Der Script war nicht schwer, ging mit dieser Hilfedatei ganz leicht und hat prima geklappt. Allerdings hab ich jetzt ein Problem. Pötzlicht ging es nicht mehr? Das Programm wird geöffnet aber danach Passiert nchts mehr ?
Schau selbst:

Run("C:\Programme\mp3DirectCut\mp3DirectCut.exe")
Sleep(3000)
Send("R")
Send("{Space}")
Sleep(3600000)
Send("{Space}")
WinClose("mp3DirectCut")

Öffnet C:\Programme\mp3DirectCut\mp3DirectCut.exe
Wartet 3 Sekunden, (die Zeit wird zum laden des Programms gebraucht)
Sendet R an das Fenster (bereitet die Aufnahme vor)
Sendet Leertaste an das Fenster (Startet die Aufnahme)
Wartet 3600000 bzw. 1 Stunde (Das Programm nimmt 1 Stunde auf)
Send("{Space}") (Aufnahme wird beendet)
Schliest des Fenster mp3DirectCut

Zumindesten Theoretisch, Praktisch gehts nicht mehr =(

Wo ist der fehler? =(
Zu dem habe ich noch das Problem das Mp3 DirectCut immer nach Aufnahmestart eine Datei mit Namen "Recording.mp3" erstellt. Das heist Eine fürhere Aufnahme würde einfach überschrieben werden. Wie kann ich es machen automatisch als Recording1.mp3, Recording2.mp3, Recording3.mp3 gespeichert wird?

Blinky
24.03.2008, 13:28
Wieso wiederholst Du dein Posting?

FMS 32 Pro
24.03.2008, 13:50
Sry, das muss ich irgendwie unbemerkt gemacht haben?
Ja da Programm erstellt beim Aufnnahmestart automatisch die Datei Recording.mp3

Das mit den zusätzlichen Befehlen werde ich probiern

FMS 32 Pro
24.03.2008, 13:58
Das klappt nicht, wenn ich schnell word öffne werden die Tasten befehle angezeit also r und leer eingetippt. Aber in Mp3 Cut klappt das aus irgendwelchen gründen nicht mehr?

Blinky
24.03.2008, 14:05
Das Programm muß im Vordergrund und aktiv sein. Du darfst dann auch nichts mit der Tastatur machen. Wenn ein anderes Programm im Vordergrund und aktiv ist, zählt die Tastenkombination für das andere Programm.

Mit AutoIt kannste auch Dateien umbenenen. Kannst ja mal in der Hilfe schauen.

Blinky

FMS 32 Pro
24.03.2008, 14:10
Ich habe an dem Script ja nichts verändert.
Ich habe nur einletztes mal abgespeichtert und wie ich getestet habe gings nicht mehr
Das programm ist im vordergrund. denn wenn ich nach dem öffnen selber r und leer drücke starte die aufnahme =????

FMS 32 Pro
24.03.2008, 15:10
Ich habe jetzt eine andere Version von Autoit installert und es geht wieder, also Problem ist gelöst.

Bleibt nur noch die sache mit dem Speichern. Weis da jemand rat?

Actros
24.03.2008, 15:28
Versuche doch mal über die Batch die Datei zu kopieren und umbennen, wenn die Aufnahme fertig ist.

FMS 32 Pro
24.03.2008, 15:34
Versuche doch mal über die Batch die Datei zu kopieren und umbennen, wenn die Aufnahme fertig ist.

öhm, kannsd du mir mal schreiben wie das in etwas aussehen müsste =?

Actros
24.03.2008, 16:25
Machs wie ich, "Try and error" mittels "Learning by doing...", damit du auch weißt was Du machst. Ist für die Fehlersuche ganz Praktisch.

Hier mal ein paar Hilfestellungen:

Google ist in diesem Fall Hilfreich:

nach "Batch Befehle" suchen

in diesen Ergebnissen nach Befehlen für "Kopieren" und "Umbenennen" suchen und wenn Du dazu noch hilfe brauchst, nach diesen Befehlen suchen.

Alternativ in der DOS-Eingabeaufforderung mal "Help" eintippen, da sind dann auch alle Dos-Befehle aufgelistet.

Viel Erfolg ;o)

Torsten

Blinky
24.03.2008, 16:46
Wenn er schon mit AutoIt arbeitet kann er es auch damit machen. Einfach die Hilfe bemühen. AutoIt kann zwar Dateien nicht umbenenen, aber löschen und kopieren ;-) Mal danach suchen.

Ausserdem müßte er, wenn er mit Batch arbeitet, auch wissen wie er dieses AutoIt-Script in einer Batch einbindet.

Entweder machte wie Actros es sagte, bindeste eine Batch mit ein die die Audio-Datei umbenent nach dem Aufnehmen oder macht gleich alles über AutoIt.

Blinky

FMS 32 Pro
24.03.2008, 18:10
Soweit so gut. Die Datei verschiebt es. Mit Autoit.
Ich habe auch eingestellt das vorhandene Dateien nicht überschrieben werden.
Kann ich einstellen, das wenn die Datei XY schon existiert, das die die Datei z.b. von 1 auf 2, 3 ,4, usw um benannt wird und danach in den Ordner kopiert?

Blinky
24.03.2008, 18:26
ja das geht durch ne If-Abfrage.

FMS 32 Pro
26.03.2008, 13:15
Das habe ich nicht hinbekommen. Dafür habe ich im MP3 Direct Cut eine funktion entdekt, das zusätzlich zum Namen "Recording" das Datum und die Uhrzeit des Aufnahmestarts im Dateinamen vermerkt ist. Also hat jede Datei einen anderen Namen. Problem ist somit gelöst.
ABER
Ich habe schon das nächste *g*
Ich möchte das wenn ich im Chat bin dass das Fenster geöffnet wird, und eine Away Nachricht eingegeben und gesendet wird wird, dass die anderen wissen das ich weg bin.
Das Problem ist der Name des Fensters ändert sich jenachdem in welchem Channel ich bin.
Das schaut so aus

Channel: Channelname, Nick: Mustermann

Die angabe Channelname variert wie gesagt immer.
Mit der eingabe WinActivate klappt das nicht da der Text ja nicht immer über einstimmt.
Kann ich es auch machen, das ein fesnter in den vordergrund geholt wird wenn nur ein paar Textstücke davon angegeben sind? Also z.b. Channel und meim Nick? Das Fenster existiert ja nur einmal, verwechslugnen sind also ausgeschlossen.

Das eigendliche senden der Nachricht klappt ohne probleme wenn das Channelfenster schon offen ist.
Nur wenn es grad minimiert ist und ich bei Alarm nicht am Pc bin schauts schlecht aus....

Ich habe auch versucht es mit alt und tab Tasten druck zwischen den Fenstern zu wechseln , nur die Tabs ändern sich jenach dem was geöffent ist. Es kann sein das ich mit 2 mal tab das Chatfenster erwisch, wenn ich zwischen durch ein anderes Programm öffne erwisch ich mit 2 mal tag den Firefox, oder das T-Online Start Center ...........

Blinky
26.03.2008, 14:37
Welches Chatsystem benutzt Du denn? Für mirc gibt es Script. Mußte mal suchen. ICQ kannste vergessen da gehts nicht.

FMS 32 Pro
27.03.2008, 00:14
Doch ICQ geht kla ;D
Bei Alarm wird ICQ geöffnet und der Status auf N/A mit dem Text hinweis "!!!ALARM - BIN AUF EINSATZ!!!" Danach wird ICQ wider geschlossen. Vielleicht etwas umständlich aba klappt ->

$g_szVersion = "Autoit"
If WinExists($g_szVersion) Then Exit ;
AutoItWinSetTitle($g_szVersion)
Sleep(10000)
Run("C:\Programme\ICQLite\ICQLite.exe")
Sleep(500)
Send("{Altdown}s")
Sleep(200)
Send("{Down}")
Sleep(200)
Send("{Down}")
Sleep(200)
Send("{Down}")
Sleep(200)
Send("{Down}")
Sleep(200)
Send("{Enter}")
Sleep(200)
Send("{Altup}")
Sleep(500)
Send("{Right}")
Sleep(200)
Send("{Right}")
Sleep(200)
Send("{!}{!}{!}ALARM {-} BIN AUF EINSATZ{!}{!}{!}")
Sleep(200)
Send("{Tab}")
Sleep(200)
Send("{Tab}")
Sleep(200)
Send("{Enter}")
Sleep(200)
Send("{ALTdown}{F4}")
Send("{ALTup}")

Chatsytem ist JAVA bzw Applet fenster oder so, weis nicht wie das genau heißt.

Wie gesagt die sache scheitert am in den Vordergund holen des Chatfensters wegen dem varierenden Fensternamen. Das Senden der Nachricht im Chat funktioniert.... wenn ich das Fenster im vordergrund habe.

Blinky
27.03.2008, 00:55
Du verwendest aber nicht die aktuele icq-Version

FMS 32 Pro
27.03.2008, 03:20
Nein, aber das neueste ist nicht immer auch das beste =)

Das Chatproblem ist auch gelöst.
Ich habe allen im Chat möglichen Channelfenstern eine WinActivate zuweisung gegeben.
Das sind ca. 350 Stk... *puh* Die EXE läuft dann alle eingetragenen Fenster ab. Wenn das richtige Fenster dran ist wird es geöffnet. Dieservorgang dauert ca 2 Sekunden. Wenn das Fenster offen ist wird mit ALt und Backspace ein eventuell im Eingabefeld bereits eingegebener Text gelöscht und die Statusnachricht eingefügt unf gesendet. Perfekt =)

Blinky
27.03.2008, 11:23
Selbst ist der Mann ;-) Und das Du Actros Tip beherzigt hast ist gut :-)

FMS 32 Pro
30.03.2008, 10:59
Jetzt klappt alles, allerdings musste ich noch eine kleine änderung vornehmen, da auf meinem Laptop keine 2 Programme gleichzeitig (FMS, Mp3 Direct Cut) auf die Soundkarte zugreifen können....
Also nimmt FMS erst 2 Minuten auf, das ich alle 5 Tonfolgen habe*musik* :) danach wird FMS beendet und Mp3 Direct Cut gestartet und die Aufnahme läuft los. Nach 120 Minuten wird die Aufnahme beendet und Mp3 Direct Cut geschlossen. Danach wird wider die FMS 32 Pro Exe geöffent. Dabei oder unmittelbar danach tritt aber immer ein fehler auf und FMS muss geschlossen werden. Ich habe es auch mit Reboot probiert und FMS in den Autostart getan das es selbsd ständig wider geöffnet wird - ging auch nicht. Wobei ich eher glaube das es an dem Laptop liegt als an der Autoit exe?
Gibts ein Patch oder so? habe Win 98..... Win Xp installation klappt leider nicht, bei der installation können manche Dateien nicht kopiert werden. Kein ahnung was da los ist. Also bin ich bei 98 geblieben.

Oder ich schreib ne Exe. die alle paar Minuten prüft ob das Fenster noch aktiv ist, es dann ggf. schließt und neu öffnet?

Auf meinem Alten Laptop auch mit Win 98 lief FMS Wochen ohne fehler tag ind nacht ;)

FMS 32 Pro
30.03.2008, 11:15
Gibt es eine Funktion die den Script wenn er abgelaufen ist wider neu startet, also ne endlos funktion?