Lenovo Copilot+PC (Snapdragon) を借りたのでいろいろ試してみた(Power Automate for desktop 後編)
みなさんこんにちわ、りなたむです。
今回はこちらの記事の後半になりますので、まだご覧になってない方はぜひご覧ください。
前回の記事では、Lenovo さんの ThinkPad T14s Gen 6 Snapdragon のような、Copilot+PC の中でも ARM版のPCでも、Power Automate for desktop が動作なのかということをお伝えしました。
後編の今回は・・・
デスクトップアプリの操作で気を付けること
Web操作はどんな感じなのか?
この2点についてお話したいと思います。
デスクトップアプリの操作で気を付けること
デスクトップアプリを操作する際は、以下のように、プロセスの開始と終了を挟んで、様々な操作を定義することが多いかと思います。
そうしないと、アプリがずっと開きっぱなしになって、フローが動くたびにアプリが開いたりしてメモリが枯渇したり、まともに動かないというパターンもあるかと思います。
なお、この「プロセスを終了する」アクションは、プロセスIDだけでなく、プロセス名(msedge.exeなど)を指定することもできます。
ただし、プロセス名を指定した場合、同じアプリケーションは全て閉じてしまうため、同じアプリのフローが並行して動いていた場合、片方のフローが終了してしまうと、もう一つのフローのアプリも処理中に閉じてしまうため、フローが止まってしまう可能性があり、なかなか使いづらいところでもあります。
したがって、デスクトップアプリの自動化は、プロセスIDを用いたアプリ終了を原則用いるべきというのは言うまでもないでしょう。
では、そのプロセスIDが x86、x64、ARM64 それぞれのアーキテクチャのアプリで正しく取得できるのか、検証してみました。
x86アーキテクチャのアプリ
Power Automate for desktop の勉強などでよく使われる 請求デモアプリ はx86 アーキテクチャで動作していますので、こちらを用いて検証しました。
上記の画像の通り、請求デモアプリのプロセスIDは、タスクマネージャー側(Windows側の認識)と一致しておりますので、問題なくアプリを終了することができます。
従いまして、x86 アーキテクチャのアプリは問題ないと言って良いでしょう。
x64アーキテクチャのアプリ
ちょっと手元にいい感じのアプリがなかったので、LibreOffice の Math を用いて検証しました。
こちらも、上記の画像通り、Math のプロセスIDはタスクマネージャー側と一致しておりますので、問題なくアプリを終了することができました。
従いまして、x64アーキテクチャのアプリも問題ないと言って良いでしょう。
ARM64アーキテクチャのアプリ
こちらは、標準インストールされている電卓アプリを用いて検証しました。
ARM64アーキテクチャのアプリの場合は、タスクマネージャー側のプロセスIDと、Power Automate for desktop とでプロセスIDが一致していないため、タスク終了を行うことができません。
そのため、本来のフローのような、プロセスIDを用いた終了が使えないため、プロセス名を用いざるを得ないということがわかります。
この違いは何?
前回の記事でもお話しした通り、Power Automate for desktop は x64 アーキテクチャで動作しているため、ARM64 とのやりとりには、Prism が介在していると思われます。
つまり、x64やx86については、Prism内の話で済むのですが、ARM64の場合は Prism を介在した情報が伝えられるため、このようなことが起きるのではと思いまして、以下のような概念図を簡単に書いてみました。
プロセスを終了するアクションは、実際には TaskKillコマンド(System32フォルダの中の taskkill.exe )をコールしていると思われます。
これは、ARM64で動作するため、当然ここでは、ARM64で動作している Windows 11 のプロセスIDを指定する必要があります。
しかしながら、ARM64で動作しているプロセスIDは x64で動作している Power Automate for desktop には Prism が介在しているため、ARM64 プロセスID(9660)とマッピングされたプロセスID(25940)がが伝えられてしまい、このような現象が起きていると思われます。
こちらは、今後のアップデートにより改善される可能性があるとは思いますが、現状はこのような事象が出るものとして理解しておくとよいかと思います。
Web操作はどんな感じか?
これまで、デスクトップアプリケーションの操作ばかりを行っていましたが、それでは Web操作の自動化はできるのかというお話です。
Power Automate for desktop の Web操作は以下の2パターンが挙げられます。
Internet Explorer 互換の専用ブラウザアプリを用いた操作
Microsoft Edge や Google Chrome 、Firefox にインストールしている拡張機能を用いた操作
Internet Explorer 互換の専用ブラウザアプリを用いた操作
もちろん、x64での動作になりますが、以下の動画の通り、問題なく動作しています。
Microsoft Edge や Google Chrome 、Firefox にインストールしている拡張機能を用いた操作
既存ブラウザ(ARM64)を用いた自動操作は下の動画をご覧ください。
Google Chrome での検証ですが、特に違和感なく動作し、問題なく動作しているようです。もちろん、Microsoft Edge や Firefox でも問題なく動作することができました。
従いまして、Web操作については、使用しているアーキテクチャに関係なく、問題なく操作できるようですので、現行のフローを変えないといけないということはなさそうに思えます。
まとめ
前後編で、ARM64アーキテクチャを用いた自動化が問題なく行えるのかを検証してきましたが、アーキテクチャの違いはあれど、一部気を付けなければならない部分はあれど、フローそのままでも、おおむね問題なく動作することにびっくりしております。
これも Prismエミュレーション が非常に素晴らしいからこそなせる業なのではないかと感じました。
これまで、Microsoft は 幾度として ARMアーキテクチャに挑戦してきましたが、商業的に成功した事例は殆どなかったように思います。
※私も Surface 2 を買った身でしたが、仕事ではほとんど使えず専らリモートデスクトップ端末と化していた。
しかしながら、その失敗が、今回の Prism エミュレーション に活かされているということを、検証しながら感じまして、目頭が熱くなることを感じました。
今後のアプリケーションは、Mac の Mx シリーズのごとく、x64版(Intel/AMD)とARM版という形で提供されていき、件の Power Automate もほかのアプリと同じように ARM版の提供が開始されていくことになるでしょうが、それぞれの良しあしを考えて、最適な製品選択を行っていければいいのかなと思います。