Programm starten mit Batch und in dem geöffneten Programm automatische Tastatureingabe mit Befehl?

5 Antworten

Im Prinzip ist das schon möglich und jetzt das große ABER:

Mit Word hast du ein sehr gutes Beispiel genannt! Ein User startet Word, weil er damit „schreiben“ will – was und warum auch immer. Weltweit gibt es inzwischen schätzungsweise 7 Mrd. potentielle Anwender, von denen jeder „seinen“ Text schreiben will. „Hello World“ ist zwar ein bekannter Einstieg in die Programmierung, aber ist es auch ein guter Start in die Textverarbeitung?

Bis auf Buchautoren schreibt jeder Wordanwender in über 50 % der Fälle einen neuen Text. Wie soll man da einen Starttext festlegen und wie sollte der lauten?

Wie gesagt, ist dein Gedanke sehr positiv gedacht, nur scheitert er in diesem Fall an der Praxis.

Dein Auto startet ja auch nicht einfach so, nur weil du die Tür öffnest. Manchmal will man ja auch nur was aus dem Auto herausholen!


stichterdenny 
Fragesteller
 27.06.2015, 19:36

Ich muss sagen deine Denkweise ist wirklich beeindruckend. Wenn du es so formulierst klingt es völlig logisch das es nicht möglich ist. Bin dir dennoch dankbar für deine Antwort. Wäre halt in jeder Hinsicht sehr Vorteilhaft gewesen wenn so etwas einfach mit Batch zu bewerkstelligen sei ohne Drittanbieter Programme zu benötigen.

Ich bin eher ein Fan davon alles nur mit Batch hinzubekommen. Und genau darauf arbeite ich gerade hin. Solltest du eventuell doch eine Idee bekommen würde ich mich darüber freuen wieder von dir zu hören.

Danke und Gruß Denny

0

Sowas in der Art?

@if (@CodeSection == @Batch) @then

@echo off

rem Use %SendKeys% to send keys to the keyboard buffer set SendKeys=CScript //nologo //E:JScript "%~F0"

rem Start the other program in the same Window start "" /B cmd

%SendKeys% "echo off{ENTER}"

set /P "=Wait and send a command: " < NUL ping -n 5 -w 1 127.0.0.1 > NUL %SendKeys% "echo Hello, world!{ENTER}"

set /P "=Wait and send an Up Arrow key: [" < NUL ping -n 5 -w 1 127.0.0.1 > NUL %SendKeys% "{UP}"

set /P "=] Wait and send an Enter key:" < NUL ping -n 5 -w 1 127.0.0.1 > NUL %SendKeys% "{ENTER}"

%SendKeys% "exit{ENTER}"

goto :EOF

@end

Alles viel zu umständlich. 1. Word-Datei erstellen (Dateiname.docx) 2. echo {deintext} > (Dateiname.docx) 3. word Datei öffnen


stichterdenny 
Fragesteller
 27.06.2015, 19:38

Word war in diesem Fall nur als Beispiel gedacht.

0
Proximus553  27.06.2015, 23:07

Stimmt, kann ja auch ne (*.txt) oder sonstwas datei sein

0

versuch mal AutoIt ...https://www.autoitscript.com/site/autoit/  .... etwas senden ist denke ich Sendkeys .... und natürlich erstmal die Windowsbefehle um das Fenster zu bestimmen wohin gesendet werden soll


stichterdenny 
Fragesteller
 26.06.2015, 21:20

Kann man mit AutoIt auch Bat dateien erstellen?

Oder ist das dann eine andere Dateiendung?

0
ThomasAral  26.06.2015, 21:21
@stichterdenny

ist die endung   AU3   ... oder evt. anders (meine war halt Version 3, vielleicht sind die jetzt weiter).

0
ThomasAral  26.06.2015, 21:23
@ThomasAral

das ist die konfortabelste script sprache unter für Windows, die ich kenne --- allerdings nicht ganz einfach zu erlenen

etwas einfacher:  VBScript ... das geht mit Endung   VBS ... ich weiss jetzt nicht ob das VBScript  Sendkeys kennt ... mal ausprobieren.

0

Sorry jetzt mit zeilenumbrüchen an den richtigen Stellen...

@if (@CodeSection == @Batch) @then

@echo off

rem Use %SendKeys% to send keys to the keyboard buffer

set SendKeys=CScript //nologo //E:JScript "%~F0"

rem Start the other program in the same Window

start "" /B cmd

%SendKeys% "echo off{ENTER}"

set /P "=Wait and send a command: " < NUL

ping -n 5 -w 1 127.0.0.1 > NUL

%SendKeys% "echo Hello, world!{ENTER}"

set /P "=Wait and send an Up Arrow key: [" < NUL

ping -n 5 -w 1 127.0.0.1 > NUL

%SendKeys% "{UP}"

set /P "=] Wait and send an Enter key:" < NUL

ping -n 5 -w 1 127.0.0.1 > NUL

%SendKeys% "{ENTER}"%

SendKeys% "exit{ENTER}"

goto :EOF

@end


stichterdenny 
Fragesteller
 26.06.2015, 21:39

Muss leider zugeben das ich da nicht wirklich durchblicke.

Hier mal mein Skript wie es zurzeit aussieht:

@echo off

color 0F

echo Sie haben KeePass gestartet!

set /p jn=Möchten sie KeePass wirklich ausfuehren (J/N)?

if "%jn%" == "j" goto ja

if "%jn%" == "n" goto nein

:ja

echo KeePass wird jetzt gestartet...

start "" "J:\DATENBANKEN\KeePass-2.29\KeePass.exe"

ping 127.0.0.1 -n 3 >nul

exit

:nein

echo Start von KeePass wird abgebrochen...

ping 127.0.0.1 -n 3 >nul

exit

Könnten sie mir das mit dem SendKeys nochmal genau erklären?

Bin ziemlicher anfänger.

0