Is it possible to get the name of all applications? I don’t want the process name, but instead want the title of the open applications.
My use case is that I have a workflow where I am connecting to an existing terminal connection (if it exists). I need to look through the open applications to first check if a specific process is running (pcsws.exe). If it is running, I need to determine the title so I can connect back into it with a Terminal Session activity. The title is necessary as I need to supply the short name (the words/letters after Session in the application title) so in my picture below, I would want to extract “A” from the open application list.
Can you leverage with GetProcessesByName activity?
I’m not sure, could you expand? I don’t see a uipath activity with that name, but do see this from windows documentation: Process.GetProcessesByName Method (System.Diagnostics) | Microsoft Learn
However, the Process.ProcessName property will give me the process name, not the application’s title that is being displayed.
And it looks ilke I just missed one of the process properties. Process.MainWindowTitle is exactly what I’m looking for!
Buddy Once you open the window using any activity like start process…as you mention…
Use activity get attribute with value as title
The output would be your process page title buddy
@Palaniyappan Yes normally I would do that. However, the reason I need to get existing windows is because when uipath throws an error, the out arguments are not passed. Therefore, I need to go about it in a different way
Buddy…if this is done for debugging…there are two possibilities…like
- We can use log message or writeline activity very next to get attribute which would be placed as a first activity… and if any error occurs even after that can be seen from which window with this meesage in output panel or even in orchestrator logs…
- If you feel even getting to a window fails like opening a process itself fails, as we know the process stages after each process, try to mention the title at the end of each of its window activity prior to the next one so that we can know where the activity fails in which window…
not for debugging, it’s part of the process. We are going through a terminal emulator to access an old green screen application. If a business rule exception (BRE) occurs, I want to stop the process at that point by throwing a BRE. However, if you throw an exception in a workflow, out arguments are not populated with values. Therefore, the existing TerminalConnection variable will be null when it goes to the next transaction after a BRE occurs.
Amazing…however you have an option to capture those exceptions and set log message as well, TryCatch block, get that exception (BRE) inside the catch block and set a log message like so and so process got stopped due to some error, with which you can get the process name buddy…
I appreciate the help - it was solved by using the Process.MainWindowTitle name though. I do not wish to surround each area with an overall try-catch block as that will catch things i dont want, and will also invalidate the way the ReFramework is setup to handle errors at the framework level.
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.