Teamsのステータスを自動で変更する


困っていたこと

集中力のゴールデンタイムは誰にも邪魔されたくないのに、チャットで「ちょっといいですか?」とメンションが入ると集中できない。

Teamsのステータスを応答不可にすれば通知に気づかなくて済むのですが、
こまめにステータスを切り替えることを忘れがち

朝のこの時間帯だけはなんとしても守りたい。

というわけで毎日同じ時間になれば、Teamsのステータスを変えるスクリプトを作ってみた。

環境

Windows10
Teams
Python3.10

まずは手作業でやってみる

1 Teamsを起動する

Windowsキーを押してから、「teams」と打てばこんな感じになる。

この後Enterキー叩けば起動される。(起動済みの場合は最前面にくる)

2 Teamsの検索に移動

Teamsのショートカット(Ctrl + e)で検索窓にフォーカスを充てられる。

3 応答不可にするコマンド実行

Teamsのコマンド(/dnd)で応答不可にする

自動化してみる

Python準備する

pyautoguiをインストールする

コマンドライン
python -m pip install pyautogui
changestatus.py
import pyautogui
import time

## 1 Teamsを起動する
pyautogui.press('win')
# 次の入力処理までに1秒ぐらい待っておく。
time.sleep(1)
# 「teams」と打ってEnterキー叩いて起動する
pyautogui.write('teams', interval=0.25)
pyautogui.press('enter')
# 起動して次のことするまでとりあえず5秒ぐらい待ってみる。
time.sleep(5)
## 2 Teamsの検索に移動
pyautogui.keyDown('ctrl')
pyautogui.press('e')
pyautogui.keyUp('ctrl')
### 3 応答不可にするコマンド実行
# 次の入力処理までに1秒ぐらい待っておく。 
time.sleep(1)
# 「/dnd」と打ってEnterキー叩いてコマンド実行する
pyautogui.write('/dnd', interval=0.25)
pyautogui.press('enter')

実行してみる

コマンドライン
python changestatus.py

自動実行

先ほどのコマンドラインをbatファイルにして
Windowsなんでタスクスケジューラに登録。
自分のゴールデンタイムに合わせてトリガーを登録すればOK。

注意点

PC操作中に起動するといきなり誤動作し始めたのかとちょっとびっくりする。
ちょっと手をとめてオートメーションを眺めているとよいです。

IMEがONの状態だと、コマンドが「・dんd」になってしまう。
解決にはここが参考になる

参考