Jeg prøver å utvikle en batch-fil som automatisk kan trykke venstre pil og høyre piltast for n antall ganger med litt pause i mellom. Kan noen hjelpe meg med dette?
PS: Jeg prøvde å installere automatisk tastaturprogramvare, men jeg kunne ikke installere dem siden jeg var på jobb. Jeg trenger dette programmet for å jobbe på kontor-PC-en min.
Jøss! Betyr dette at du må lære et annet programmeringsspråk bare for å sende to nøkler til tastaturet? Det finnes enklere måter å oppnå det samme på. :-)
Batch-filen nedenfor er et eksempel som starter et annet program (cmd.exe i dette tilfellet), sender en kommando til det og deretter sender en pil opp-tast, som forårsaker å gjenopprette den sist utførte kommandoen. Batch-filen er enkel nok til å bli forstått uten problemer, så du kan endre den slik at den passer til dine behov.
@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
// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));
For en liste over nøkkelnavn for SendKeys, se: http://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.84).aspx
For eksempel
LEFT ARROW {LEFT}
RIGHT ARROW {RIGHT}
For en nærmere forklaring av denne løsningen, se: https://stackoverflow.com/questions/16823068/gnuwin32-openssl-s-client-conn-to-websphere-mq-server-not-closing-at-eof-hangs/16868982#16868982
Bare for å være tydelig, ønsker du å starte et program fra en batchfil og deretter få batchfilen til å trykke på taster (i ditt eksempel, piltastene) i det lanserte programmet?
Hvis det er tilfelle, er du ikke kommer til å være i stand til å gjøre det med bare en ".bat" fil som lanserte ville stoppe batch-filen fra å fortsette til den avsluttet - -.
Min første anbefaling vil være å bruke noe som AutoHotkey eller AutoIt hvis mulig, ganske enkelt fordi de begge har aktive fora der du' vil finne utallige eksempler på folk som starter applikasjoner og sender tastetrykk, for ikke å nevne verktøy for å bare "registrere" hva du vil gjøre. Men du sa at dette er en arbeidsdatamaskin, og at du kanskje ikke kan laste inn et tredjepartsprogram ... men du er ikke uten alternativer.
Du kan bruke Windows Scripting Host fra noe som en .vbs-fil for å starte et program og sende nøkler til den prosessen. Hvis du kjører en versjon av Windows som inkluderer PowerShell 2.0 (Windows XP med Service Pack 3, Windows Vista med Service Pack 1, Windows 7, etc.) kan du bruke Windows Scripting Host som et COM-objekt fra PS-skriptet ditt eller bruke VBs Intereact-klasse.
Detaljene for hvordan du gjør det er utenfor omfanget av dette svaret, men du kan finne mange eksempler ved å bruke metodene jeg nettopp har beskrevet ved å søke på SO eller Google.
redigere: Bare for å hjelpe deg med å komme i gang kan du se her: