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. Office アドイン

    Build 2020で個人的に気になったOfficeやPower Automateの発表

    Microsoftの開発者向けイベント「Build 2020」がオンラ…

  2. Power Automate for desktop

    Power Automate for desktopのアクション一覧

    Power Automate for desktopのアクションペイン…

  3. Office アドイン

    Office Scriptsの使いどころ

    これまで当ブログでOffice Scriptsについて色々と記事を書い…

  4. Office Scripts

    [Office Scripts]Power AutomateでOneDriveにファイルがアップされ…

    下記記事でも書いている通り、Power AutomateにはOffic…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP