以前「TeamsのマイクオンオフをPAUSEキーで行う方法(修正あり)」という記事を書いた。Pauseキーを使ってTeamsとZoomのマイクオン・オフをトグルできるように、AutoHotKeyのスクリプトを書くという記事。
現在でも便利に使っている。ただしウィンドウ属性(WindowClassやTitleなど)で、Teamsの会議ウィンドウとメインウィンドウの区別がつかないという問題があって、Pauseキーを押したときに、メインウィンドウの方が会議ウィンドウより前面に来ている(Zオーダーが小さい)と、メインウィンドウにキーメッセージを投げてしまう。
ただし、Teamsの仕様で、SHIFT+CTRL+Mのマイクオンオフショートカットキーをメインウィンドウに投げてもマイクのオン・オフが効くことになっていて、これに関しては問題はなかった。
ところが、最近のマイクロソフト製品は平気で仕様を変えてしまうので、いつの間にかこの仕様も変更され(バグか?)、メインウィンドウにSHIFT+CTRL+Mを投げても、マイクオン・オフが効かなくなってしまった。これは非常に困るので、対応策を考えたが、どうしても対処療法になってしまう。それでもないよりましなので、修正スクリプトを以下に貼っておく。
修正は、メインウィンドウのタイトルが、「アクティビティ/チームとチャネル/チャット/カレンダー」であることがほとんであることに注目して、最初の文字が「ア・チ・カ」であるウィンドウタイトルを持たないTeamsのウィンドウを会議ウィンドウであると認識する方法を採用した。
ということで、残念ながら、会議のタイトルが「ア・チ・カ」で始まる場合は、マイクオン・オフがPauseキーで切り替えられなくなるという仕様制約が発生することになる。それでもよければ、どうぞ。
(2024/05/28追記)
正規表現勉強しまして、「アクティビティ/チームとチャネル/チャット/カレンダー」で始まるウィンドウをよけることができましたので、スクリプト修正しておきました。
ついでにSHIFT+PAUSEでTeams会議を終了できるキーも追加しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
Pause:: ToggleMuteTeams() ToggleMuteZoom() Return +Pause:: QuitTeamsMeating() Return ToggleMuteTeams() { SetTitleMatchMode,Regex ; アクティビティ/チームとチャネル/チャット/カレンダーから始まるウィンドウは除外 IfWinNotExist, ^(?!アクティビティ \||チャット \||チームとチャネル \||カレンダー \|).*Teams$ ahk_exe ms-teams.exe return WinGet, active_id, ID, A ; アクティビティ/チームとチャネル/チャット/カレンダーから始まるウィンドウは除外 WinActivate, ^(?!アクティビティ \||チャット \||チームとチャネル \||カレンダー \|).*Teams$ ahk_exe ms-teams.exe Send, ^+m Sleep, 100 WinActivate, ahk_id %active_id% } ToggleMuteZoom() { IfWinNotExist, ahk_exe Zoom.exe return WinGet, active_id, ID, A WinActivate, ahk_exe Zoom.exe Send, !a Sleep, 100 WinActivate, ahk_id %active_id% } QuitTeamsMeating() { SetTitleMatchMode,Regex ; アクティビティ/チームとチャネル/チャット/カレンダーから始まるウィンドウは除外 IfWinNotExist, ^(?!アクティビティ \||チャット \||チームとチャネル \||カレンダー \|).*Teams$ ahk_exe ms-teams.exe return WinGet, active_id, ID, A ; アクティビティ/チームとチャネル/チャット/カレンダーから始まるウィンドウは除外 WinActivate, ^(?!アクティビティ \||チャット \||チームとチャネル \||カレンダー \|).*Teams$ ahk_exe ms-teams.exe Send, ^+h Sleep, 100 WinActivate, ahk_id %active_id% } |
コメント