Sol ok ve sağ ok tuşlarına otomatik olarak n sayıda basabilen ve aralarında bir miktar duraklama olan bir toplu iş dosyası geliştirmeye çalışıyorum. Lütfen biri bana bu konuda yardımcı olabilir mi?
Not: Otomatik klavye yazılımını yüklemeyi denedim ama işte olduğum için yükleyemedim. Ofis bilgisayarımda çalışmak için bu programa ihtiyacım var.
Vay canına! Bu, klavyeye iki tuş göndermek için farklı bir programlama dili öğrenmeniz gerektiği anlamına mı geliyor? Aynı şeyi başarmanın daha basit yolları var. :-)
Aşağıdaki Toplu İş dosyası, başka bir programı (bu durumda cmd.exe) başlatan, ona bir komut gönderen ve ardından son çalıştırılan komutu kurtarmaya neden olan bir Yukarı Ok tuşu gönderen bir örnektir. Toplu iş dosyası sorunsuz bir şekilde anlaşılabilecek kadar basittir, bu nedenle ihtiyaçlarınıza uyacak şekilde değiştirebilirsiniz.
@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));
SendKeys için anahtar adlarının bir listesi için bkz: http://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.84).aspx
Örneğin:
LEFT ARROW {LEFT}
RIGHT ARROW {RIGHT}
Bu çözümle ilgili daha fazla açıklama için bkz: https://stackoverflow.com/questions/16823068/gnuwin32-openssl-s-client-conn-to-websphere-mq-server-not-closing-at-eof-hangs/16868982#16868982
Açık olmak gerekirse, bir toplu iş dosyasından bir program başlatmak ve ardından toplu iş dosyasının başlatılan program içindeki tuşlara (örneğinizde ok tuşları) basmasını mı istiyorsunuz?
Eğer durum buysa, bunu sadece bir ".bat" dosyası ile yapamazsınız çünkü başlatılan dosya toplu iş dosyasının sonlandırılana kadar devam etmesini durduracaktır--.
İlk tavsiyem, mümkünse AutoHotkey veya AutoIt gibi bir şey kullanmanız olacaktır, çünkü her ikisinin de uygulamaları başlatan ve tuşlara basan sayısız insan örneği bulabileceğiniz aktif forumları vardır ve yapmak istediğiniz şeyi basitçe "kaydetmek" için araçlardan bahsetmezler. Ancak bunun bir iş bilgisayarı olduğunu ve 3. parti bir program yükleyemeyebileceğinizi söylediniz... ama seçeneksiz değilsiniz.
Bir programı başlatmak ve bu işleme anahtarlar göndermek için .vbs dosyası gibi bir şeyden Windows Scripting Host'u kullanabilirsiniz. PowerShell 2.0 içeren bir Windows sürümü çalıştırıyorsanız (Service Pack 3 ile Windows XP, Service Pack 1 ile Windows Vista, Windows 7, vb.), Windows Scripting Host'u PS betiğinizden bir COM nesnesi olarak kullanabilir veya VB'nin Intereact sınıfını kullanabilirsiniz.
Bunun nasıl yapılacağına ilişkin ayrıntılar bu yanıtın kapsamı dışındadır, ancak SO veya Google'da arama yaparak az önce açıkladığım yöntemleri kullanan çok sayıda örnek bulabilirsiniz.
düzenleme: Başlamanıza yardımcı olması için buraya bakabilirsiniz: