Sign in to follow this  
Followers 0
Tinnu

Closing other Auoit Process instances

12 posts in this topic

i was thinking if this is possible to close all other autoit programs when my program is running.

how to do it?


Share this post


Link to post
Share on other sites



So, you want to run only one existence of your program?

or close other autoit programs too?

Share this post


Link to post
Share on other sites

not only those which are associated with current script.

but i want to close all running AutoIt programs.


Share this post


Link to post
Share on other sites

i think you can

WinList("[REGEXPCLASS:.*?AutoIt.*?]")
and then close Windows & processes.

Share this post


Link to post
Share on other sites

i need some more explanation.

because i could not understand your idea.

please help!


Share this post


Link to post
Share on other sites

See, what you have to do is Get a list of AutoIt running programs, then get their process Ids and Kill/Close them.

Share this post


Link to post
Share on other sites

But that way my own script will be closed.


Share this post


Link to post
Share on other sites

Exclude @AutoItPID by comparing with other AutoIt Process IDs.

Share this post


Link to post
Share on other sites

Nice idea with the Winlist ;)...

_AutoIt_Close_Other_Instances()

Func _AutoIt_Close_Other_Instances()
    $aWinlist = WinList("[REGEXPCLASS:.*?AutoIt.*?]")
    Local $s_PID, $s_PIDs
    For $i = 1 To UBound($aWinlist) - 1
        $s_PID = WinGetProcess($aWinlist[$i][1])
        If Not StringInStr($s_PIDs, $s_PID) Then $s_PIDs &= $s_PID & ";"
    Next
    $s_PIDs = StringLeft($s_PIDs, StringLen($s_PIDs) - 1)
    $a_PIDs = StringSplit($s_PIDs, ";")
    For $i = 1 To $a_PIDs[0]
        If ProcessExists($a_PIDs[$i]) Then
            If $a_PIDs[$i] <> @AutoItPID Then ProcessClose($a_PIDs[$i])
        EndIf
    Next
EndFunc   ;==>_AutoIt_Close_Other_Instances

Share this post


Link to post
Share on other sites

#10 ·  Posted (edited)

Thanks to HavikTech for the idea & KaFu for the script.

now i am trying to understand it. ;)

Edited by Tinnu

Share this post


Link to post
Share on other sites

I think this one 'll be easy to understand...

Close_Autoit_Programs()
Func Close_Autoit_Programs()
    Local $My_Process_ID = @AutoItPID
    Local $Get_List = WinList("[REGEXPCLASS:.*?AutoIt.*?]")
    Local $PID = 0
    For $i = 1 To $Get_List[0][0]
        $PID = WinGetProcess($Get_List[$i][1])
        If $PID <> $My_Process_ID Then
            WinKill($Get_List[$i][1])
            ProcessClose($PID)
        EndIf
    Next
    Return
EndFunc

Share this post


Link to post
Share on other sites

Thanks HavikTech for the short version.

but i want to know that which one is fast and better?

Your script or KaFu's?


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
Sign in to follow this  
Followers 0