Есть ли способ настроить горячую клавишу в Windows 10 для разворачивания определенного окна приложения? Приложение, которое я хочу это сделать (MS Teams), уже работает в фоновом режиме.
Я назначил ему горячую клавишу
но по какой-то причине он работает очень медленно — возвращение окна в исходное состояние занимает около 10 секунд, тогда как если я нажимаю на значок на панели задач, это происходит мгновенно — так что это не может быть «медленной задержкой ПК».
решение1
Чтобы развернуть окна определенного приложения, вы можете воспользоваться бесплатной программой AutoHotkey.
В следующем примере скрипта используется F12клавиша для разворачивания окон
notepad.exe
:
F12::WinActivate, ahk_exe notepad.exe
AutoHotKey очень универсален, и возможны многочисленные адаптации вышеуказанной команды.
После установки AutoHotKey поместите указанный выше текст в .ahk
файл и дважды щелкните по нему для проверки. Вы можете остановить скрипт, щелкнув правой кнопкой мыши по зеленому значку H в трее и выбрав Exit. Чтобы он запускался при входе в систему, поместите его в группу Startup в
C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
.
Полезная документация по AutoHotkey:
решение2
Если вы хотите активировать главное окно Microsoft Teams, вы также можете взглянуть наТимси. Он также предлагается в скомпилированном виде, поэтому вы можете запустить его без установки AutoHotkey.
Основной код, выполняющий это, выглядит так:
Teams_GetMainWindow(){
; See implementation explanations here: https://tdalon.blogspot.com/get-teams-window-ahk
; Syntax: hWnd := Teams_GetMainWindow()
WinGet, WinCount, Count, ahk_exe Teams.exe
If (WinCount = 0)
GoTo, StartTeams
If (WinCount = 1) {
TeamsMainWinId := WinExist("ahk_exe Teams.exe")
return TeamsMainWinId
}
; Get main window via Acc Window Object Name
WinGet, id, List,ahk_exe Teams.exe
Loop, %id%
{
hWnd := id%A_Index%
oAcc := Acc_Get("Object","4",0,"ahk_id " hWnd)
sName := oAcc.accName(0)
If RegExMatch(sName,".* \| Microsoft Teams, Main Window$") {
return hWnd
}
}
; Fallback solution with minimize all window and run exe
If WinActive("ahk_exe Teams.exe") {
GroupAdd, TeamsGroup, ahk_exe Teams.exe
WinMinimize, ahk_group TeamsGroup
}
StartTeams:
fTeamsExe = C:\Users\%A_UserName%\AppData\Local\Microsoft\Teams\current\Teams.exe
If !FileExist(fTeamsExe) {
return
}
Run, %fTeamsExe%
WinWaitActive, ahk_exe Teams.exe
TeamsMainWinId := WinExist("A")
PowerTools_RegWrite("TeamsMainWinId",TeamsMainWinId)
return TeamsMainWinId
} ; eofun
Суть:https://gist.github.com/tdalon/84d9caea0368ab0420b81363c2048705
Чтобы сделать то, что вы хотите, просто позвоните
WinId := Teams_GetMainWindow()
WinActivate, ahk_id %WinId%
и вы можете привязать его к любой горячей клавише, например к F12
F12::
WinId := Teams_GetMainWindow()
WinActivate, ahk_id %WinId%
return