2013-06-11 37 views
15

Tôi đang cố gắng phát triển một tập tin thực thi có thể tự động bấm mũi tên trái và phím mũi tên phải cho số lần tạm dừng ở giữa. Ai có thể vui lòng giúp tôi với điều này?Bấm phím Bàn phím bằng cách sử dụng tập tin batch

P.S: Tôi đã thử cài đặt phần mềm bàn phím tự động nhưng tôi không thể cài đặt chúng kể từ khi tôi làm việc. Tôi cần chương trình này để làm việc trên PC văn phòng của tôi.

+1

Và bạn "office-PC" chạy hệ điều hành nào? – Devolus

+1

bạn nên thử AutoIt – Endoro

+0

Hệ điều hành - Windows 7 – Rupesh

Trả lời

5

Chỉ cần rõ ràng, bạn muốn khởi chạy chương trình từ tệp lô và sau đó có các phím bấm tệp theo lô (trong ví dụ của bạn, các phím mũi tên) trong chương trình đã khởi chạy đó?

Nếu đúng như vậy, bạn sẽ không thể làm điều đó với chỉ đơn giản là một ".bat" tập tin như đưa ra sẽ ngăn chặn các tập tin thực thi từ việc tiếp tục cho đến khi nó terminated--

My đầu tiên đề nghị sẽ sử dụng một cái gì đó như AutoHotkey hoặc AutoIt nếu có thể, đơn giản vì cả hai đều có diễn đàn hoạt động, nơi bạn sẽ tìm thấy vô số ví dụ về những người khởi chạy ứng dụng và gửi các phím nhấn không đề cập đến các công cụ đơn giản là "ghi lại" những gì bạn muốn làm. Tuy nhiên bạn nói đây là một máy tính làm việc và bạn không thể tải chương trình của bên thứ ba .. nhưng bạn không có tùy chọn.

Bạn có thể sử dụng Windows Scripting Host từ thứ gì đó như tệp .vbs để khởi chạy chương trình và gửi khóa cho quá trình đó. Nếu bạn đang chạy phiên bản Windows có PowerShell 2.0 (Windows XP với Gói Dịch vụ 3, Windows Vista với Gói Dịch vụ 1, Windows 7, v.v.), bạn có thể sử dụng Windows Scripting Host làm đối tượng COM từ tập lệnh PS hoặc sử dụng Lớp Intereact của VB.

Các chi tiết cụ thể về cách thực hiện nằm ngoài phạm vi của câu trả lời này nhưng bạn có thể tìm thấy nhiều ví dụ sử dụng các phương pháp tôi vừa mô tả bằng cách tìm kiếm trên SO hoặc Google.

chỉnh sửa: Chỉ cần để giúp bạn bắt đầu, bạn có thể xem ở đây:

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

Wow! Có nghĩa là bạn phải học một ngôn ngữ lập trình khác chỉ để gửi hai phím vào bàn phím? Có những cách đơn giản hơn để bạn có thể đạt được điều tương tự. :-)

Tệp lô dưới đây là ví dụ khởi động chương trình khác (cmd.exe trong trường hợp này), gửi lệnh tới nó rồi gửi phím mũi tên lên, để khôi phục lệnh được thực thi cuối cùng . Tệp Batch đủ đơn giản để hiểu không có vấn đề gì, vì vậy bạn có thể sửa đổi nó để phù hợp với nhu cầu của bạn.

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

Đối với một danh sách tên then chốt cho SendKeys, xem: http://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.84).aspx

Ví dụ:

LEFT ARROW {LEFT} 
RIGHT ARROW {RIGHT} 

Đối với một lời giải thích thêm của giải pháp này, xem: GnuWin32 openssl s_client conn to WebSphere MQ server not closing at EOF, hangs

+0

Điều này thật tuyệt! Cảm ơn rất nhiều. Tôi đã sử dụng nó, ví dụ:để chuẩn bị đăng nhập Citrix 2013 (dòng lệnh bắt đầu và kích hoạt url đăng nhập: '@start iexplore https: // /Citrix/StoreFrontWeb' ... – Kawi42

+0

điều này yêu cầu cửa sổ bảng điều khiển phải được lấy nét trong khi các phím được" nhấn " –

+0

sử dụng 'TITLE blablablub' trong phần lô và' WshShell.AppActivate ("blablablub"); WScript.Sleep (100); 'trong phần Jscript sẽ làm giảm vấn đề một chút. –

Các vấn đề liên quan