/
RomashkaHH
/
ahkScripts
Обзор
Документация
Войти
/
RomashkaHH
/
ahkScripts
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
panic button.ahk
114 строк
4 KB
RomashkaHH
upload files
07 окт 2025, 14:18
07 окт 2025, 14:18
e64dc52
Код
Авторство
О чём код?
#Requires AutoHotkey v2.1-alpha.1 ; Глобальные переменные состояния isHide := false hidedWindows := Map() ; Списки исключений systemFolders := [ "C:\Windows", "C:\Program Files\WindowsApps", "C:\Windows\WinSxS", "C:\Users\Sromc\AppData\Local\Programs\Microsoft VS Code", "C:\Program Files\Sublime Text", "C:\Program Files\ShareX", "C:\Program Files\Obsidian" ] excludeClasses := [ "Shell_TrayWnd", ; Панель задач "Shell_SecondaryTrayWnd", ; Вторичная панель задач "Progman", ; Рабочий стол "WorkerW", ; Контейнер рабочего стола "Windows.UI.Core.CoreWindow", ; UWP окна "ApplicationFrameWindow" ; Окна UWP приложений ] ; Функция проверки наличия значения в массиве isInArray(array_, value) { for item in array_ { if item == value { return true } } return false } ; Функция проверки принадлежности к системному окну isSystemWindow(hwnd) { global systemFolders, excludeClasses ; Проверка по классу окна winClass := WinGetClass(hwnd) if isInArray(excludeClasses, winClass) return true ; Проверка по пути процесса try { processPath := WinGetProcessPath(hwnd) for folder in systemFolders { if InStr(processPath, folder) == 1 { return true } } } ; Дополнительная проверка невидимых окон try if !(WinGetStyle(hwnd) & 0x10000000) return true return false } #D:: { global isHide, hidedWindows ; Отключаем анимации окон RegWrite "0", "REG_DWORD", "HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "MinAnimate" DllCall("SystemParametersInfo", "UInt", 0x0052, "UInt", 0, "Ptr", 0, "UInt", 2) isHide := !isHide if isHide { ; Режим скрытия окон DetectHiddenWindows(0) HWNDs := WinGetList() hidedWindows := Map() for hwnd in HWNDs { if WinExist(hwnd) and isSystemWindow(hwnd) continue try { hidedWindows[hwnd] := WinGetAlwaysOnTop(hwnd) WinSetAlwaysOnTop(0, hwnd) WinHide(hwnd) } } ; ToolTip("Окна скрыты", 10, 10) ; SetTimer () => ToolTip(), -500 } else { ; Режим восстановления окон DetectHiddenWindows(1) for hwnd, isAlwaysOnTop in hidedWindows { if WinExist(hwnd) { try { WinSetAlwaysOnTop(isAlwaysOnTop, hwnd) WinShow(hwnd) } } } hidedWindows := Map() ; ToolTip("Окна восстановлены", 10, 10) ; SetTimer () => ToolTip(), -500 } ; Включаем анимации обратно через 1 секунду SetTimer RestoreAnimations, -1000 } ; Функция восстановления анимаций RestoreAnimations() { RegWrite "1", "REG_DWORD", "HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "MinAnimate" DllCall("SystemParametersInfo", "UInt", 0x0052, "UInt", 1, "Ptr", 0, "UInt", 2) }