Найти активное окно с помощью скрипта VBS

7134
user3133076

Мне нужно автоматически обновлять рабочий стол каждые 10 минут.

Единственный полностью работающий способ, который я нашел, это использование этого кода VBS.

Sh.AppActivate "Program Manager"

Sh.SendKeys("")

Но при этом активное окно становится рабочим столом.

Мне нужно повторно активировать фокус на окне, которое я использую, до запуска скрипта.

0
Я чувствую, что это может быть проблемой XY. Почему вы чувствуете, что вам нужно обновлять рабочий стол каждые 10 минут? EBGreen 9 лет назад 2
Это долго объяснять. Это важная часть процесса отладки для тестирования более сложной пакетной программы. user3133076 9 лет назад 0
«Это долго объяснять» мешает кому-то придумать хороший ответ. EBGreen 9 лет назад 0
Я не могу быть более точным, извини. Мне просто нужно сделать это в целях отладки. user3133076 9 лет назад 0
Вы должны проверить AutoHotkey. Это http://ahkscript.org/. Это делает любой вид автоматизации пользовательского интерфейса простым. Kody Brown 7 лет назад 0

2 ответа на вопрос

1
user3133076

I found a trick to solve the problem:

at the and of the script, add the command line:

Sh.SendKeys("%") 

It re-activates the focus on the window I was using before the script started.

0
Ƭᴇcʜιᴇ007

I need to re-activate the focus on the window I am using before the script starts.

  • Capture the current window (title or PID) using a COM wrapper.

For instructions on that, see StackOverflow: How to find the window Title of Active(foreground) window using Window Script Host

  • Record it to a variable.
  • Activate the desktop.
  • Refresh.
  • Return focus to recorded window using the variable's contents.

Похожие вопросы