操作しているウィンドウを、引数で別のプロセスに渡したい。

プロセスAによって、プロセスBを呼び出して実行します。
Aで操作したFirefoxのウィンドウを、Bでも操作したいと考えています。

このとき、Aで操作しているウィンドウはUiElement型変数で保持しているため、Bに引数として渡せばよいと考えていましたが、うまくいきませんでした。
調べたところ、UiElement型はシリアル化できない型であり、ワークフロー間で渡すことができないと理解しました。

どうにかしてウィンドウの情報を渡す方法はありますでしょうか。知恵をお貸しください。

<追記>
引数で渡そうとするとエラーが出ます。
Error getting value from ‘Selector’ on ‘UiPath.Core.UiElement’.

When using the “Use Application/Browser” activity in Process B, you can set the “Open” property to “If Not Open”. This configuration ensures that the activity will not open a new window. Instead, it will start working with the existing window that has the specified URL, as long as that window is already open. This allows Process B to interact with the already open browser session without launching a new window.
image

コメントありがとうございます。
いただいた内容のことは存じ上げております。

質問をまとめると、
プロセスAの“Use Application/Browser”で操作しているウィンドウを、
そのあとに別のプロセスBを呼びだし、プロセスBの中で再度操作したいのです。
方法はありますでしょうか。

エラーが出ている部分の状況を追記します。↑

こんにちは

対象はデスクトップアプリでしょうか?
そうであればWindow Handleを渡せばよいかと思います。

アプリケーションブラウザを使用アクティビティのUIElement出力をuieとすると
これを一旦UiPath.Core.Windowでうけて

wnd = uie

渡すものはIntPtrの wnd.handleを渡します。

受け取った側は
アプリケーションブラウザを使用アクティビティのUIElement入力で

New UiPath.Core.Window(in_Handle)

とすれば良いかと思います。

対象は、Firefoxです。
プロセスAでFirefoxを開いて操作し、そのあと呼び出すプロセスBでも同じFirefoxを操作したいと考えていました。

教えていただいた方法でやりたいことが実現できました。
プロセスA


プロセスB

連休を挟みお礼が遅くなり申し訳ございません。いつも本当にありがとうございます。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.