pindol

Interlink two processes; if 1st is closed also kill the 2nd

8 posts in this topic

Hey there,

I'm curious if there's a possibility to interlink two processes. Is someone kind enough to help me writing this one?

run iexplore.exe

run program2.exe (program2 is already designed to stay hidden in the taskbar just waiting for some keystrokes from iexplore)

if iexplore.exe gets closed also terminate program2.

I'd love to get some help from a pro :)

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

pindol,

Welcome to the AutoIt forums. :)

Using ProcessExists in a loop would seem to be sensible solution to your problem. ;)

M23

Edited by Melba23
Fixed BB tags

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Can you explain this a little more?

"program2 is already designed to stay hidden in the taskbar just waiting for some keystrokes from iexplore"

Here's the scenario. I'm trying to publish two applications in one instance on a Citrix XenApp Farm.

The plan is to publish an .exe to run iexplore.exe and program2. program2 is a 3rd party application which is running in the background hidden in the tray bar).

Program2 is designed to wait for a keystroke like shift+F11 to execute a function wich interacts with adobe acrobat.

Actually I just need to get sure that the program2 process is also getting terminated when the iexplore.exe process is getting killed by the user.

The main problem are my scripting skills, which are almost nonexistant :D

Edited by pindol

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

Like Melba23 said.

Or this will close both apps it either is closed by user.

While ProcessExists("app1.exe") And ProcessExists("App2.exe")
    Sleep(100)
WEnd

ProcessClose("App1.exe")
ProcessClose("App2.exe")
Edited by JohnOne

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites

Run returns the PID of the process that was launched. You could use this PID to make sure you close the correct process.

$iPID1 = Run("iexplore.exe")
$iPID2 = Run("program2.exe")
While ProcessExists($iPID1) And ProcessExists($iPID2)
    Sleep(100)
WEnd
ProcessClose($iPID1)
ProcessClose($iPID2)

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

 

Like Melba23 said.

Or this will close both apps it either is closed by user.

While ProcessExists("app1.exe") And ProcessExists("App2.exe")
    Sleep(100)
WEnd

ProcessClose("App1.exe")
ProcessClose("App2.exe")

Thanks for the help! I'm almost at the finish line :)

Unfortunately the script does not work properly when iexplore is already opened.

It opens iexplore.exe but the second program won't start unless I kill the both iexplore processes and restart the script again.

On the other hand it closes all iexplore instances when the second app is getting closed.

Is there a way to get around this?

Thanks in advance!

 

@water: will move to your PID suggestion since I'm planing to run it on a Terminal Server ;)

Edited by pindol

Share this post


Link to post
Share on other sites

Got it solved. Thanks again guys! You made my day :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now