2013-06-11 19 views
15

Próbuję utworzyć plik wsadowy, który może automatycznie nacisnąć klawisz strzałki w lewo i strzałki w prawo na liczbę razy z kilkoma przerwami pomiędzy nimi. Czy ktokolwiek mógłby mi w tym pomóc?Naciśnij klawisze klawiatury przy użyciu pliku wsadowego.

P.S: Próbowałem zainstalować oprogramowanie klawiatury automatycznej, ale nie mogłem ich zainstalować, ponieważ byłem w pracy. Potrzebuję tego programu do pracy na moim biurowym komputerze.

+1

i twoi "office-PC" uruchamia system operacyjny? – Devolus

+1

powinieneś wypróbować AutoIt – Endoro

+0

System operacyjny - Windows 7 – Rupesh

Odpowiedz

5

Dla jasności, chcesz uruchomić program z pliku wsadowego, a następnie mieć pliki wsadowe (w twoim przykładzie klawisze strzałek) w ramach uruchomionego programu?

Jeśli tak jest, nie będą w stanie tego zrobić ze po prostu „bat” plik jako uruchomionej zatrzyma plik wsadowy z kontynuowaniem aż terminated--

Mój pierwszy zalecenie polegałoby na użyciu np. AutoHotkey lub AutoIt, jeśli to możliwe, ponieważ oba mają aktywne fora, na których znajdziesz niezliczone przykłady osób uruchamiających aplikacje i wysyłających naciśnięcia klawiszy, nie wspominając o narzędziach do "rejestrowania" tego, co chcesz zrobić. Powiedziałeś jednak, że jest to komputer roboczy i możesz nie móc załadować programu innej firmy, ale nie masz wolnych opcji.

Możesz użyć Windows Scripting Host z czegoś takiego jak plik .vbs, aby uruchomić program i wysłać klucze do tego procesu. Jeśli używasz wersji systemu Windows, która zawiera PowerShell 2.0 (Windows XP z Service Pack 3, Windows Vista z dodatkiem Service Pack 1, Windows 7, itp.) Możesz użyć Hosta skryptów systemu Windows jako obiektu COM ze swojego skryptu PS lub użyć Klasa Intersact VB.

Specyfika tego, jak to zrobić, wykracza poza zakres tej odpowiedzi, ale można znaleźć wiele przykładów przy użyciu metod, które właśnie opisałem, wyszukując w SO lub Google.

edit: Wystarczy, aby pomóc Ci zacząć można sprawdzić tutaj:

  1. Automate tasks with Windows Script Host's SendKeys method
  2. A useful thread about SendKeys
33

Wow! Oznacza to, że musisz nauczyć się innego języka programowania, aby wysłać dwa klucze do klawiatury? Są prostsze sposoby osiągnięcia tego samego. :-)

Poniższy plik wsadowy jest przykładem, który uruchamia inny program (w tym przypadku cmd.exe), wysyła do niego polecenie, a następnie wysyła strzałkę w górę, która powoduje odzyskanie ostatnio wykonanego polecenia . Plik Batch jest na tyle prosty, że można go zrozumieć bez żadnych problemów, więc możesz go zmodyfikować zgodnie ze swoimi potrzebami.

@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)); 

Listę najważniejszych nazw SendKeys, patrz: http://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.84).aspx

Na przykład:

LEFT ARROW {LEFT} 
RIGHT ARROW {RIGHT} 

Dla dalszego wyjaśnienia tego rozwiązania, patrz: GnuWin32 openssl s_client conn to WebSphere MQ server not closing at EOF, hangs

+0

To jest wspaniałe! Bardzo dziękuję Użyłem go np.przygotować login Citrix 2013 (linia skryptu do uruchomienia i aktywowania adresu logowania: '@start iexplore https: // /Citrix/StoreFrontWeb' ... – Kawi42

+0

wymaga to, aby okno konsoli było skupione, gdy klawisze są" wciśnięte " –

+0

przy użyciu 'TITLE blablablub' w części wsadowej i' WshShell.AppActivate ("blablablub"); WScript.Sleep (100); 'w części Jscript nieco zmniejszyłoby problem. –

Powiązane problemy