2024.6.3 : 新しいTeamsに対応しました!
真面目に仕事しているのに、なぜかTeamsが退席中表示になっていることってありませんか?Teamsのご機嫌が悪い日は、Teamsアプリを時々クリックしないと退席中表示になることも過去にありました。(たぶんバグ)
この記事ではWindowsの操作を自動化するUWSCというツール(無料版)を使って、「連絡可能(オンライン)」状態をキープする方法を共有します。
※UWSCの導入方法から書いているので、インストール済みの方はここから読み進めてください。
UWSCの導入手順
UWSCは、スクリプトファイル(拡張子「.uws」のファイル)を読み込むことで、スクリプトで決めた自動化処理を実行することができる、Windows用の処理自動化ツールです。
早速導入してみましょう!
- UWSCのダウンロードサイト(Vector)へアクセスしてください。
- 「このソフトを今すぐダウンロード」をクリックすると、uwsc5302.zipがダウンロードされます。(ファイル名の”5302″部分はバージョン5.3.0.2を意味するので、今後バージョンアップにより変わるかもしれません。)
- ダウンロードしたuwsc5302.zipを展開してください。
- 展開すると「uwsc5302」という名前のフォルダができるので、
「C:¥Program Files (x86)」の中に「UWSC」フォルダを新規作成してその中にコピペします。
※「C:¥Program Files (x86)¥UWSC¥uwsc5302」のフォルダ構成になればOKです。
※「C:¥Program Files (x86)」にフォルダを作れない環境の場合は、別の場所に保存しても大丈夫です。 - UWSCを起動しやすくするため、uwsc5302フォルダ内のUWSC.exeのショートカットをデスクトップやタスクバー等に配置してください。
- 配置したuwsc.exeのショートカットをダブルクリックして、UWSCを起動してください。
ここまでで「分からないよ!」という方は、「UWSC インストール方法」などで検索をしてください。
ここから先は、私が作ったUWSファイルの紹介と、読み込み方法を説明します。
Teamsの退席中表示を回避するUWSCスクリプト
私が作成した .uwsファイルはこちら。自己責任でお使いください。
[ダウンロード] KeepTeamsStatusActive.zip ※zipを展開してください
心配な方は下のスクリプトをメモ帳にコピペして、拡張子「.txt」を「.uws」に変えると同じものができます。
マウスやキーボードを操作している間は作動せず、無操作状態になったときには1分間隔でTeamsを少し触ることで退席中表示を回避する仕組みになっていますので、UWSCに読み込んで開始しておくだけで大丈夫です。
ついでに、常に操作している状態になるので、ちょっと放置したスキに勝手にWindows Updateされてデータが消えてしまう悲劇も回避できます。(実際これが一番嬉しいかもしれない😄)
// 初期化
WAIT_TIME = 59 // 待機時間(繰り返し間隔)
ACTIVATED_TIME = GETTIME()
LAST_MOUSE_X = G_MOUSE_X
LAST_MOUSE_Y = G_MOUSE_Y
DIM KEY[] = VK_BACK,VK_ENTER,VK_RETURN,VK_CTRL,VK_CONTROL,VK_SHIFT,VK_TAB,VK_ESC,VK_ESCAPE,VK_LEFT,VK_UP,VK_RIGHT,VK_DOWN,VK_SPACE,VK_0,VK_1,VK_2,VK_3,VK_4,VK_5,VK_6,VK_7,VK_8,VK_9,VK_A,VK_B,VK_C,VK_D,VK_E,VK_F,VK_G,VK_H,VK_I,VK_J,VK_K,VK_L,VK_M,VK_N,VK_O,VK_P,VK_Q,VK_R,VK_S,VK_T,VK_U,VK_V,VK_W,VK_X,VK_Y,VK_Z,VK_NUMPAD0,VK_NUMPAD1,VK_NUMPAD2,VK_NUMPAD3,VK_NUMPAD4,VK_NUMPAD5,VK_NUMPAD6,VK_NUMPAD7,VK_NUMPAD8,VK_NUMPAD9 // 入力検知するキー
// ずっと繰り返す
WHILE TRUE
// 現在時刻を取得
CURRENT_TIME = GETTIME()
// マウスカーソルの座標を取得
CURRENT_MOUSE_X = G_MOUSE_X
CURRENT_MOUSE_Y = G_MOUSE_Y
// 現在アクティブなウィンドウを取得
CURRENT_WIN = GETID(GET_ACTIVE_WIN)
// 何かキー入力があった場合:
FOR i=0 TO LENGTH(KEY)-1
IFB GETKEYSTATE(KEY[i]) THEN
// 最終操作時刻を更新
ACTIVATED_TIME = GETTIME()
BREAK
ENDIF
NEXT
// 待機時間が経過したとき
IFB (CURRENT_TIME-ACTIVATED_TIME)>WAIT_TIME THEN
// マウスカーソルの移動がない場合
IFB ((CURRENT_MOUSE_X=LAST_MOUSE_X) AND (CURRENT_MOUSE_Y=LAST_MOUSE_Y)) THEN
// マウス左ボタンを開放
BTN(LEFT,UP)
// TEAMSのウィンドウ情報を取得
// TEAMS_WIN = GETID(" | Microsoft Teams","Chrome_WidgetWin_1") // 古いTeams
TEAMS_WIN = GETID(" | Microsoft Teams","TeamsWebView") // 新しいTeams
TEAMS_ST_X = STATUS(TEAMS_WIN, ST_X)
TEAMS_ST_Y = STATUS(TEAMS_WIN, ST_Y)
// TEAMSをアクティブにしてクリックする。
ACW(TEAMS_WIN)
BTN(LEFT,CLICK,TEAMS_ST_X+1,TEAMS_ST_Y+1,1)
// 元のアクティブウィンドウ、マウスカーソル座標へ戻す
MMV(CURRENT_MOUSE_X,CURRENT_MOUSE_Y,1)
ACW(CURRENT_WIN)
ENDIF
// 最後のマウスカーソル位置を記憶
LAST_MOUSE_X = G_MOUSE_X
LAST_MOUSE_Y = G_MOUSE_Y
// 最終操作時刻を更新
ACTIVATED_TIME = GETTIME()
ENDIF
WEND
コメント
新しいteamsでも動くように改良版を作って頂きたいです!
大変お手数ではございますが、宜しくお願い致します。
GTさん、コメントありがとうございます!
新しいTeamsに対応しました。よろしければお使いください。