0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ロボットの実行中に開始したプロセス”だけ”をKillする

Posted at

Kill Processとかプロセス名を指定していちいち組み込むのが面倒だし、なにより作成者にルールとして守らせるのも酷なので、「そのロボットが実行中に開始したプロセス”だけ”をKillするxamlパーツ」を作成してみた。Userは、何も考えずに、そのワークフローを呼ぶだけでいいようなつくりにする。
#そもそもLibraryかProcessか問題
部分的なパーツとして配布する場合、Libraryとして中身をわからなくしてもいいけど、今回はUserみんなにも中身を知ってほしいので、あくまでinvokeする必要のあるxamlとして配布することにした(invokeも使ってほしいしね。。。あと、PackageのManageとかも面倒そうだし。。。)
#基本的な構造
①AssignでSystem.Diagnostics.Process.GetProcesses()で実行中のすべてのプロセスを取得し
②OpenBrowserでBrowserを開き
③Tryの中で実行中のプロセスの中から、UiPath.Executor.exeをProcessオブジェクトとして取得
④開始時刻(Process.StartTimeオブジェクトで事前に取得済)よりも前(DateTimeの比較演算)のものをKill
(↓はKillするところまで:Write Lineのところ)Main.jpg

#問題とその解決
デバック実行中に(ここ大事)問題が発生。最初の数件のProcessにはアクセスできるけど、権限の関係上アクセス不可能なものがある。Tryで握りつぶして解決(したことにする)。
以下、コミュニティでの私の質問と、根本的な原因を示してくださった方の解答です。なんでも
""
デバッグ実行では、アクティビティ単位で例外の検出をしているので、Try-Catchが補足する前に、例外を補足してしまったためメッセージが出ます。ここで単に続行とすると、外側のTry-Catchで補足してくれて、そのまま処理が進むと思います。
""
とのことでした。なんとも足元をすくわれたような感覚。。。
https://forum.uipath.com/t/uipath-executor-exe-kill/176831/9?u=haguruma

近々社内に配布しよう!してみる。しようっかな。。。きっとする。。。。

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?