Сбой VBScript при отправке щелчка левой кнопкой мыши

#vbscript #wsh

#vbscript #wsh

Вопрос:

Я пытаюсь разработать скрипт для открытия приложения thinkorswim (программное обеспечение для торговли акциями / опционами), чтобы я мог использовать этот скрипт в своем приложении W10Pro pc Task Scheduler для автоматического открытия этого приложения в указанное время каждый день. При открытии приложения с помощью ярлыка на рабочем столе приложение отображает окно входа в систему, требующее имя пользователя и пароль. В этом окне входа щелкните левой кнопкой мыши на поле имени пользователя, чтобы активировать его и ввести информацию, перейдите в поле пароля, чтобы активировать его и ввести информацию, затем перейдите на вкладку, перейдите на кнопку «войти» и нажмите enter.

Сценарий, который я использую, приведен ниже. Он продолжает сбой в строке 6 при попытке отправить щелчок левой кнопкой мыши.

У меня есть другие сценарии (например, открытие определенного файла Excel, открытие блокнота, выполнение многочисленных макросов на регулярной основе Каждый день и т. Д.), Которые Успешно работают в планировщике задач, поэтому это особенно расстраивает.

Основной вопрос — запрашивает любые входные данные или предложения относительно скрипта.

Я считаю, что мои координаты экрана для щелчка мыши «sendkeys» верны, но они были определены без использования программного обеспечения для определения координат. Вторичный вопрос — Может ли кто-нибудь порекомендовать какую-нибудь хорошую «бесплатную программу», чтобы я мог дважды проверить точность моих координат?

Спасибо.

 Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000 
WshShell.Run Chr(34)   "C:UsersTom HenryAppDataLocalthinkorswimthinkorswim.exe"   Chr(34)
WScript.Sleep 15000 
WshShell.AppActivate "thinkorswim"
WshShell.SendKeys "{CLICK LEFT,644,221}"
WScript.Sleep 1000 
WshShell.SendKeys "myusername"
WScript.Sleep 1000 
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "mypassword"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"
Set WshShell = Nothing
 

Комментарии:

1. В (далеком) прошлом я бы использовал AutoIt для такого рода вещей.

2. Вы не можете щелкнуть мышью с помощью клавиш отправки. Вы нашли код из программы, а не из Windows.

Ответ №1:

Вот оно:

 Option Explicit
Dim Excel, x, y
Set Excel = WScript.CreateObject("Excel.Application")
x = "644"
y = "221"
Excel.ExecuteExcel4Macro ( _
    "CALL(""user32"",""SetCursorPos"",""JJJ""," amp; x amp; "," amp; y amp; ")")
' Left Click
    Excel.ExecuteExcel4Macro("CALL(""User32"",""mouse_event"",""JJJJJJ""," amp; "2" amp; ")")
    Excel.ExecuteExcel4Macro("CALL(""User32"",""mouse_event"",""JJJJJJ""," amp; "4" amp; ")")
 

И в браузере (если вам нужны конкретные координаты, но вы не хотите загружать какие-либо схематичные программы) переместите курсор мыши туда, где вы хотите, чтобы ваши координаты были. Нажмите ctrl shift J, затем вставьте этот код в:

 onmousemove = function(e){console.log("mouse location:", e.clientX, e.clientY)}
 

И нажмите enter. Затем слегка переместите мышь. Затем вы получите оценочные координаты!

Примечание: это может быть неточно. Поэтому, если он выключен, отрегулируйте x и y в коде VBScript.

Наслаждайтесь! <3