4

Существует ли приложение, которое заставит компьютер переключаться (фокусироваться) между двумя разными приложениями по таймеру? Это для Windows 7.

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

5 ответов5

9

Да, это называется AutoIt.

Вы бы использовали что-то вроде этого:

While 1 ;loop indefinitely
    WinActivate("notepad","") ;give focus to notepad
    Sleep(30000) ;sleep 30 seconds
    WinActivate("wordpad","") ;give focus to wordpad
    Sleep(30000) ;sleep 30 seconds
WEnd

WinActivate() фокусируется на окне с точным или ближайшим совпадающим заголовком, в случаях, когда есть два подходящих заголовка, фокусируется на последнем активированном. Sleep() в миллисекундах, поэтому 30000 - это 30 секунд.

2

Зачем устанавливать программу (например, AutoIt), если Windows может сделать это из коробки?

Сохраните следующее в файл с именем auto_switch.vbs:

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
    WScript.Sleep 30000
    WshShell.SendKeys("%{TAB}")
Loop

Измените 30000 на количество миллисекунд (например, 30000 = 30 секунд) между нажатиями Alt+Tab. Дважды щелкните по нему, чтобы запустить его.

Если вы хотите остановить это, то вам нужно убить процесс под названием "wscript".

Если вы хотите переключаться между программами с явным именем, этот код будет переключаться между «Входящие - Microsoft Outlook» и "Firefox" каждые 30 секунд:

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
    WScript.Sleep 30000
    WshShell.AppActivate("Inbox - Microsoft Outlook")
    ' WshShell.SendKeys "% r"
    WScript.Sleep 30000
    WshShell.AppActivate("Firefox")
    ' WshShell.SendKeys "% r"
Loop

Стоит отметить, что если приложения в приведенном выше примере свернуты, то они останутся свернутыми даже после их активации.

Чтобы также восстановить окно, удалите ' перед WshShell.SendKeys . Это сделает скрипт активным в окне, а затем немедленно отправит комбинацию клавиш восстановления Alt+SpaceBar, r . Если вы используете неанглийскую версию Windows, вам может потребоваться изменить этот ярлык.

2

Если между клиентами и экранами / приложениями не будет никакого взаимодействия, вам просто нужно сделать снимок экрана программ, а затем создать простое слайд-шоу с 30-секундным таймером и бесконечным повторением.

Как правило, компании, которые используют мониторы, ориентированные на клиента, которые отображают программы в рекламных целях, не используют "живые" программы. Вы хотите управлять интерфейсом, и вероятность появления какой-либо ошибки не то, что вам нужно. Они будут записывать видео с экрана работающих программ или просто делать снимки экрана для статического отображения.

В противном случае существуют специальные панели мониторинга, которые отображают конкретную информацию, и они обычно не переключаются между ними. Или они переключаются с помощью аудио / видео оборудования, так что каждая программа работает на своем компьютере, чтобы еще раз минимизировать вероятность сбоя.

-1

Следующее позволяет переключаться между 6 программами, не называя их. В основном, введите на 1 меньше {TAB} чем количество окон, между которыми вы хотите переключиться, и не имейте никаких посторонних открытых окон.

Работает до 6 окон, насколько я знаю, возможно, больше.

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
  WScript.Sleep 1000
  WshShell.SendKeys("%({TAB}{TAB}{TAB}{TAB}{TAB})")
Loop

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .