2013-02-16 3 views
3

Возможно ли получить Windows 7 для обнаружения монитора с помощью autohotkey?Обнаружить монитор в окнах 7?

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

Если мой компьютер некоторое время простаивал, он теряет HDTV. Если я наверху, я просто просматриваю панель управления и снова обнаруживаю. Это решает проблему, однако, я хочу использовать autohotkey, чтобы я мог повторно обнаружить, используя мой пульт в гостиной.

Заранее благодарим за любую помощь.

Jon

+0

Какие шаги вы используете сейчас? (шаг за шагом). –

+0

Просьба представить некоторые отзывы о предлагаемых решениях, и один из них был полезен, а затем, пожалуйста, «Примите» этот ответ. Спасибо! –

ответ

3

Скорее всего, вам нужно что-то вроде этого ...

Run, "C:\Windows\System32\rundll32.exe" shell32`.dll`,Control_RunDLL desk`.cpl 
Sleep, 400 
Send, !c ; Send Alt+c for deteCt 
Sleep, 1000 
Send, {Enter} ; Send Enter to close 
Return 
+0

Спасибо за это, я попробую его позже. – user2078506

+0

Простите, потребовалось некоторое время, у вас была другая проблема. Вышеприведенный код работает отлично. Спасибо за помощь. Джон – user2078506

0

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

0

С помощью autohotkey можно использовать SysGet.

SysGet, monitorCount, MonitorCount 

Есть также куча других параметров, которые можно использовать. Проверьте ссылку выше.

1

Это модифицированный пример из SysGet документации.

SysGet, MouseButtonCount, 43 
SysGet, VirtualScreenWidth, 78 
SysGet, VirtualScreenHeight, 79 

SysGet, MonitorCount, MonitorCount 
SysGet, MonitorPrimary, MonitorPrimary 
Message .= "Monitor Count:`t" MonitorCount "`nPrimary Monitor:`t" MonitorPrimary 
Loop, %MonitorCount% 
{ 
    SysGet, MonitorName, MonitorName, %A_Index% 
    SysGet, Monitor, Monitor, %A_Index% 
    SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index% 
    Message .= "`n`nMonitor:`t#" A_Index "`nName:`t" MonitorName "`nLeft:`t" MonitorLeft "(" MonitorWorkAreaLeft " work)`nTop:`t" MonitorTop " (" MonitorWorkAreaTop " work)`nRight:`t" MonitorRight " (" MonitorWorkAreaRight " work)`nBottom:`t" MonitorBottom "(" MonitorWorkAreaBottom " work)" 
} 

msgbox % Message 

Пример вывода:

enter image description here

1

Роберт, спасибо за ответ (я не могу комментировать свой пост еще напрямую). Я очистил код немного и заставить его работать с другими языками:

HOTKEY:: 
    Run, "C:\Windows\System32\rundll32.exe" shell32`.dll`,Control_RunDLL desk`.cpl 
    WinWaitActive, ahk_class CabinetWClass 
    SendInput, +{Tab 2}{Space}{Enter} ;Select & press "Detect" button, then press "OK" button 
Return 
Смежные вопросы