AutoHotKey: MonitorCount как триггер? - PullRequest
0 голосов
/ 17 февраля 2019

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

SysGet, MonitorCount, MonitorCount
if (MonitorCount<>lastMonitorCount)
   {
      MsgBox, Monitor Count:`t%MonitorCount%
   }
SysGet, lastMonitorCount, MonitorCount

Как сделать так, чтобы MsgBox автоматически отображалось при изменении количества активных мониторов

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Похоже, я нашел ответ:

while 2>1
{
  SysGet, MonitorCount, MonitorCount
  if (MonitorCount<>lastMonitorCount)
     {
        MsgBox, Monitor Count:`t%MonitorCount%
     }
  SysGet, lastMonitorCount, MonitorCount
}
0 голосов
/ 17 февраля 2019

Установите таймер, который будет отображать окно сообщения при каждом изменении количества подключенных мониторов:

#Persistent                          ; prevents the script from exiting when it reaches the 'Return'
SetTimer, DetectMonitorCount, 500    ; check every 500 milliseconds

    DetectMonitorCount:              ; this is a label
SysGet, MonitorCount, MonitorCount
if (MonitorCount <> lastMonitorCount)
    MsgBox, Monitor Count:`t%MonitorCount%
SysGet, lastMonitorCount, MonitorCount
Return                               ; ends the subroutine

https://autohotkey.com/docs/commands/SetTimer.htm

...