sendkeys "{TAB}" ігнорується


0

Я створив файл .VBS з кодом, показаним нижче.

Це добре працює, якщо я використовую його для заповнення будь-якої форми у браузері, а також працює з Excel та Notepad.

Однак він дає помилку при використанні в додатку, встановленому в моїй системі. Весь текст вводиться в одну клітинку. sendkey "{TAB}"не працює в цій програмі.

Крім того, якщо я натискаю Tabпісля використання цього, він переміщується до попередньої комірки замість наступної комірки. Ключ Shift застрягає там через текст CAPITAL, який я думаю.

Також під час використання цієї кнопки іноді відключається NUM LOCK.

Чи може хтось допомогти у цьому?

set wshshell = wscript.CreateObject("wScript.Shell")
wscript.sleep 700
wshshell.sendkeys "TYPE TEXT 1"
wscript.sleep 400
wshshell.sendkeys "{TAB}"
wscript.sleep 400
wshshell.sendkeys "TYPE TEXT 2"
wscript.sleep 400
wshshell.sendkeys "{TAB}"
wscript.sleep 400
wshshell.sendkeys "TYPE TEXT 3"
wscript.sleep 400
wshshell.sendkeys "{TAB}"
wscript.sleep 400
wshshell.sendkeys "TYPE TEXT 4"
wscript.sleep 400
wshshell.sendkeys "{TAB}"
wscript.sleep 400

Спробуйтеwshshell.sendkeys vbTab
Білл Хілеман

Як експеримент, будь ласка, спробуйте вставити DoEventsкоманду перед та після кожної wshshell.sendkeys "{TAB}"команди
студент Гері

@BillHileman wshshell.sendkeys vbTab - не працювало
Sahil Manuja

@ Gary'sStudent Спробував з DoEvents, він не працює, він також не вводить увесь текст, він набрав лише ТИП ТЕКСТУ 1. після цього нічого не відбувається
Sahil Manuja

1
@PimpJuiceIT Я вже намагався з "wshshell.sendkeys" {TAB} ", правда" це також не спрацювало
Sahil Manuja

Відповіді:


0

SendKeys, очевидно, не працює з Citrix .

Альтернативним рішенням для використання VBScript є використання AutoHotkey . Цей сценарій ах працював для мене в Citrix:

Sleep 700
SendInput TYPE TEXT 1
Sleep 400
SendInput {TAB}
Sleep 400
SendInput TYPE TEXT 2
Sleep 400
SendInput {TAB}
Sleep 400
SendInput TYPE TEXT 3
Sleep 400
SendInput {TAB}
Sleep 400
SendInput TYPE TEXT 4
Sleep 400
SendInput {TAB}
Sleep 400

Дякую за пропозицію, я використовував сценарії AHK, але мені заборонено використовувати зовнішнє програмне забезпечення. Я протестував з ahk, він працює абсолютно добре, але не з wscripts. Я не в змозі відстежити, чому SendInput не працює і sendkeys ні.
Сахіл Мануджа

@SahilManuja Як щодо AutoIT? Я запитую лише тому, що НЕ вимагає, щоб він був встановлений для запуску виконуваного файлу, який може зробити те саме? З того, що я пам'ятаю з AHK, ви повинні встановити програму, щоб використовувати її сценарії; однак за допомогою AutoIT ви можете скласти exe, а потім поставити його на USB-накопичувач, а потім запустити його звідти, і він може скористатися деякими тими ж функціями емуляції клавіатури. Ось приклад відповіді, який я написав, якщо ви хочете побачити: superuser.com/questions/1220290/…
Pimp Juice IT

AutoHotkey має таку ж здатність. Вона може бути запущена з портативної установки або її можна скласти до EXE.
davidmneedham

Так, це працювало, але він створює файл 1mb, який занадто великий, і я повинен створювати файли в 1000-х. Також немає опції для масового перетворення з ahk - exe. Будь-який інший варіант?
Сахіл Мануя

ahk2exe можна використовувати в командному рядку оптом. Але можна було б створити файл AHK для читання команд, необхідних для надсилання, щоб уникнути створення тисяч окремих EXE.
davidmneedham
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.