MoreBeerMorePower

Power Platform中心だけど、ノーコード/ローコード系を書いてます。

Power Apps と Power Automate Desktop でつくる Stream Deck 風ラウンチャー

リモートワークになってから特によく見るようになった (TLで買っている人が増えた) Stream Deck。結構値が張るんですよね。 それほど効果や利用頻度が高いのかわからない中で買うのは勇気がいります。

Stream Deck のようなラウンチャーはどうも電子工作をすると作れるらしいというのを目にしたのですが (だいたい20ドルくらい)、電子工作できないしなーということで、自分の手持ちのツールでそれっぽいものをつくってみました。

実際の動作は以下のツイートからどうぞ。だいたいコマンドを選択してから5秒くらいでローカルのPCに反映されます。

レシピ

必要なものは以下のとおりです。

  • Windows 10 Pro以上がインストールされたPC
  • Power Automate Per user plan with attended RPA (有償ライセンス)
  • Power Apps が利用できる Microsoft 365 環境
  • iPhone (Androidでもなんでもよい)

(ライセンスさえあれば) 実質0円で作れますね!

Power Automate 側でつくるもの

Power Automate では Power Appsをトリガーにする簡単な親フローと、Power Automate Desktop で実行される Desktop flowを作成します。

例えば、単純にTeamsを起動させたい場合には、以下のような1ステップだけのDesktop flowを作りました。

f:id:mofumofu_dance:20210124222457p:plain

Teamsの起動のためのexeがどこにあるか謎でしたが、ユーザー以下のAppData\Local\Microsoft\Teams\current\Teams.exeにexeがあったのでこれを呼んでいます。

あとは Youtube や Google を一発起動したいので、[DOSコマンドの実行] を挿入して以下のコマンドを実行させるフローも用意しました。

start chrome.exe "%address%"

ここで%address は入力変数で、開きたいサイトのURLを指定します。 (例えばYoutubeなら www.youtube.com)

f:id:mofumofu_dance:20210124222741p:plain

最後に、Teams を使っているときに多用するミュートの切り替えも登録しておきます。

f:id:mofumofu_dance:20210124223048p:plain

Desktop flowとしては大きくこの3つです。

続いてCloud flow側ですが、Power Apps から 2つのパラメータを受け取るようにしています。

1つは実行するDesktop flowの種類を指定するパラメータ、2つ目はURLを開くときの入力変数です。

f:id:mofumofu_dance:20210124223306p:plain

Switch で 実行するフローを切り替えていますが、もう少し利口なやり方があるかもしれません。

Automate側としては以上です。

Power Apps 側でつくるもの

Power Apps ではボタン風の画像を並べて、クリック時にフローを実行しているだけです。

特に強い要件ではないですが、複数個並べるために一度Collectionを作っておいて、ボタンはギャラリーに表示させています。

f:id:mofumofu_dance:20210124223544p:plain

こうしておくとコレクションの追加・削除とローカルへのデータ保存で利用する側が自由にボタンを付けたり消したりできますね。

Collectionの中身は非常に単純です。

f:id:mofumofu_dance:20210124223659p:plain

おわり

お金をかけず、Power Automate Desktopの勉強にもなる非常によいテーマでした。

込み入った自動化はもう少し大変そうですが、簡単なコマンド発行にも使えるPower Automate Desktop、ぜひライセンスをお持ちであればこんな使い方も試してみてはいかがでしょうか。