Power Automate for desktop

[Power Automate Desktop]カメラ撮影して写真をOneDriveにアップするフロー

1年半ほど前、まだPower AutomateのRPA機能がUI flowsだった頃、Power Appsからフローを実行してローカル端末で写真撮影、撮った写真をメール送信する、なんてことをやっていました。

Power Automate Desktop(PAD)が無償で利用できるようになってからしばらく経ち、ふと思い立ったので同じような事をPADでやってみることにしました。

事前準備

Power Automate Desktopフロー

処理内容は単純で、Windows 10のカメラアプリで写真撮影を行い、撮った写真をマッピングしたフォルダ(Z:)にコピーするだけです。

1. アプリケーションの実行

アプリケーション パスを「microsoft.windows.camera:」とし、URIスキームでアプリを起動します。

2. Wait

カメラの準備ができるまで数秒待ちます。

3. ウィンドウの UI 要素をクリックする

事前に「UI要素の追加」でカメラアプリのウィンドウと「写真の撮影」ボタンを追加しておき、「写真の撮影」ボタンをクリックします。

4. ファイルの作成待ち

カメラロールフォルダに写真ファイルが作成されるまで適当に待ちます。

5. ファイルのコピー

カメラロールフォルダに作成された写真ファイルをZドライブにコピーします。

6. ウィンドウを閉じる

ウィンドウを閉じてカメラアプリを終了します。

7. ファイルの移動

コピーが終わったファイルを「コピー済み」フォルダに移動します。

以上でフローは終了です。

コード

System.RunApplication ApplicationPath: $'''microsoft.windows.camera:''' WindowStyle: System.ProcessWindowStyle.Normal ProcessId=> AppProcessId
WAIT 2 
UIAutomation.Click Element: appmask['Window \'カメラ\'']['Button \'写真 の撮影\''] ClickType: UIAutomation.ClickType.LeftClick MousePositionRelativeToElement: UIAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0
LOOP WHILE (Files.Count) < (1)
    WAIT 1 
    Folder.GetFiles Folder: $'''C:\\Users\\***\\Pictures\\Camera Roll''' FileFilter: $'''*.jpg''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.LastModified SortDescending1: True SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> Files
END
File.Copy Files: Files[0] Destination: $'''Z:\\''' IfFileExists: File.IfExists.Overwrite CopiedFiles=> CopiedFiles
UIAutomation.Windows.Close Window: appmask['Window \'カメラ\'']
File.Move Files: Files[0] Destination: $'''C:\\Users\\***\\Pictures\\Camera Roll\\コピー済み''' IfFileExists: File.IfExists.Overwrite MovedFiles=> MovedFiles

実行画面

下図がフローの実行画面です。
カメラアプリによって写真撮影が行われ、撮った写真がOneDriveのフォルダにアップロードされていることが確認できます。

OneDriveへのアップロードができれば、クラウドフローで写真をTeamsに投稿することもできますし(下図参照)、アイデア次第で色々と活用できるのではないかと思います。

上の動画では、下図フローのようにTeamsへの投稿を「ファイルが作成されたとき」トリガー(OneDrive for Businessコネクタ)による処理として分けていますが、デスクトップフローが使える環境であれば一つのフロー内で処理を完結できるでしょう。

Office スクリプトとPower Automateで作る見積書発行ワークフロー前のページ

[Power Automate Desktop]名前を指定してフローを実行するPowerShellスクリプト次のページ

関連記事

  1. Power Automate

    [Power Automate]短縮化したTeams会議URLを通知するフロー

    先日のツイート↓Teams会議に参加するためのURL、これは長すぎ…

  2. Power Automate for desktop

    Power Automate for desktop(Power Automate Desktop)…

    前回の記事でも触れていますが、Windows 11ではPower Au…

  3. Office Scripts

    Office ScriptsとPower Automateで簡単なメールアーカイブを作る方法

    下記記事でも書いている通り、Office Scriptsのスクリプトは…

  4. Office Scripts

    [Office Scripts]Power Automateのフローでパラメーターの受け渡しを行う方…

    下記記事でも書いていますが、Power Automateのフローでパラ…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP