Mute66
| |
|
Столкнувшись с необходимостью запускать многие десятки программ в режиме совместимости из-за непредусмотренного отеческой кампанией увеличения разрешения экрана, слепил скрипт на Autohotkey, позволяющий ускорить это дело. Возможности: - открытие вкладки совместимости запущенной программы по горячей клавише
- открытие по горячей клавише той же вкладки для выделенного в проводнике или файловом менеджере файла
- установка флажков "Выполнять эту программу от имени администратора", или "Отключить масштабирование при высоком разрешении экрана" по горячим клавишам
Подробнее - смотри скрипт. Код #NoEnv #SingleInstance, force Menu, Tray, Icon, shell32.dll, 45
/* ВАЖНО: Скрипт меняет настройки совместимости исполняемого файла, связанного с окном запущенной программы, так что если вы имеете дело, например, с портативной программой, запускающейся через загрузчик, настройки его совместимости останутся неизменными. Первые три клавиши затирают специальные настройки режимов совместимоси ("Windows 7" и пр.), которые используются достаточно редко (старые настройки отображаются во всплывающем сообщении). К их преимуществам можно отнести то, что они позволяют настраивать исполняемые файлы, в свойствах которых вообще нет вкладок совместимости, и доступные только через реестр (оснастка mmc, rundll32.exe). На Windows 8 это может улучшить их отображение, на Windows 10, скореее всего, лишь во втором случае */
^#vk41::RunAsAdmin("~ RUNASADMIN") ; Ctrl+Win+A - установка флажка "Запуск от имени администратора" в настройках совместимости активной программы ^#vk44::RunAsAdmin("~ RUNASADMIN HIGHDPIAWARE") ; Ctrl+Win+D - то же плюс отключение масштабирования на высоких DPI ^#vk30::RunAsAdmin("") ; Ctl+Win+0 - стирание всех настроек совместимости активной программы ^#vk46:: ; Ctrl+Win+F - быстрое открытие настроек совместимости выделенного файла в эксплорере или файловом менеджере ^#vk43:: ; Ctrl+Wn+C - быстрое открытие вкладки настроек совместимости активной программы KeyWait Ctrl, T1 KeyWait LWin, T1 pr:="" If (A_Thishotkey="^#vk46") { Clipboard:="" Send ^{vk43} ClipWait T2 pr:=Clipboard } else WinGet pr, ProcessPath, A If !pr return Run properties %pr% WinWait ahk_class #32770, , 4 WinActivate Sleep 100 CenterWindow() Send ^{Tab} MouseMove 50, 400 return
RunAsAdmin(val) { KeyWait Ctrl, T1 KeyWait LWin, T1 WinGet pr, ProcessPath, A If !pr~=".exe$" return StringReplace pr, pr, ", All RegRead rg, HKEY_CURRENT_USER, Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers, % pr RegWrite REG_SZ, HKEY_CURRENT_USER, Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers, % pr, % val If !Errorlevel MsgBox, 64, , % "Process: " pr "`nOld: " rg "`nNew: " val, 3 return }
CenterWindow(WinTitle="A") { WinGetPos,,, Width, Height, %WinTitle% WinMove, %WinTitle%,, (A_ScreenWidth/2)-(Width/2), (A_ScreenHeight/2)-(Height/2) }
|
|
193884
|