mit diesem Code und der Hilfe von Netcat wird ein TCP Paket übermittelt welches dann das Licht einschaltet.
Mein erster Versuch war die bat Datei direkt auszuführen dies funktioniert allerdings nicht. Daher meine Frage ist es möglich ein TCP Paket über die Skripterstellung zu versenden wie dies in Kommand möglich ist.
Beim herumstöbern bin ich gerade auch darauf gestossen. Doch das Fenster öffnet sich und schließt sich direkt wieder ohne seiner Arbeit auszuführen ich habe zum Testen ein Pausenbefehl in die Batch-Datei eingefügt aber dies wird anscheinend direkt übersprungen.
Beim direkten ausführen beim Starten der Batch-Datei wird es ausgeführt und die Pause eingehalten (also die Batch-Datei ist soweit funktionsfähig).
Hallo André die Shellexecute-Anweisung benutzt als aktuelles Verzeichnis das Natspeak-Programmverzeichnis. Vielleicht liegt hierin die Ursache. Ich habe kein Problem (unter Windows 10) mit dem Warte-Befehl "timeout" in der Batch-Datei. 10 Sekunden reichen, um die Ergebnisse der DOS-Anweisungen auszuwerten. Gruß, Pascal
Das kann man Fenster geht kurz auf danach wird sofort der TTS Playstring abgespielt ich habe zum Testen der Batch-Datei volle Zugriffe gegeben ohne Erfolg. Danach habe ich die ncat Datei in das Verzeichnis geschoben und konnte es daher ausführen. Er hat wahrscheinlich den Befehl abgebrochen da er die Datei im System nicht fand. Das erste Problem des Ausführen ist behoben es müssen sich alle Programme in den Ordner befinden da er nicht auf das System zugreift (ich vermute mal wegen berechtigungs problemen).
Es ist allerdings ein anderes Problem aufgetreten die Datei wird doppelt teilweise 3 fach ausgeführt wird. Es äußert sich darin das zwei oder drei mal das Fenster gleichzeitig geöffnet wird.
Grüße André
Ergänzung: es ist dabei nur wichtig das die ncat Datei im Ordner "C:Program Files (x86)NuanceNaturallySpeaking14Program" befindet die Batch-Datei kann woanders sein.
Edit: zum Fehler zwei fach Beziehungsweise dreifach starten habe ich bemerkt das wenn die Reihenfolge
1 2 3 4 5
Sub Main ShellExecute "C:Dragonbefehl.bat" TTSPlayString "Arbeitszimmer Licht" GoToSleep End Sub
ist das die Batch-Datei dreimal ausgeführt wird
wenn:
1 2 3 4
Sub Main ShellExecute "C:Dragonbefehl.bat" TTSPlayString "Arbeitszimmer Licht" End Sub
wird die Batch-Datei zweimal ausgeführt
wenn:
1 2 3
Sub Main ShellExecute "C:Dragonbefehl.bat" End Sub
wird die Batch-Datei einmal ausgeführt
Zum beheben zum beheben muss die Batch-Datei am Ende stehen
1 2 3 4 5
Sub Main TTSPlayString "Arbeitszimmer Licht" GoToSleep ShellExecute "C:Dragonbefehl.bat" End Sub
Zitat von NokmanEs ist allerdings ein anderes Problem aufgetreten die Datei wird doppelt teilweise 3 fach ausgeführt wird. Es äußert sich darin das zwei oder drei mal das Fenster gleichzeitig geöffnet wird.
Interessant. Müsste man weiter beobachten. Eins ist aber klar: Man kann nicht darauf bauen, dass im Dragon-Skript immer auf die Beendigung einer Aktion gewartet wird, bevor die naächste Anweisung ausgeführt wird. Deshalb müsste z.B. vor der TTSPlaystring-Anweisung ein Wait stehen. Ansonsten ist die ganze Kopiererei garnicht nötig: ein CD-Statemant in der Batch-Datei bzw. eine vollständige Pfadangabe in Shellexecute wären viel eleganter gewesen. Gruß, Pascal
Da kann ich ihnen Zustimmen mit den CD wäre es auch gegangen. Im Grunde habe ich nur aufgezeigt das der Script es nicht die Möglichkeit hat Datei die im Systemordner liegen auszuführen was mit einfachen CMD geht.
Das mehrfach ausführen sehe ich im Moment als Fehler im Programm.