Горячая клавиша для открытия определенного окна приложения (MS Teams)

Горячая клавиша для открытия определенного окна приложения (MS Teams)

Есть ли способ настроить горячую клавишу в 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

Связанный контент