Sign in to follow this  
Followers 0
Morteza

How to define an internal name?

11 posts in this topic

Dears,

I Searched the forum & help file already, but no answer was found.

I want if my script is running previously, when the user executed another copy of my script, the previous executed copy be closed and new copy be ran. I know, I can close the previous copy by ProcessClose() function, but what if the user changed my script name? How can I recognize what is the new script name to close it by ProcessClose()? Can I define an internal name for my script for recognizing it if the name was changed by user?

Best

Share this post


Link to post
Share on other sites



I suppose to create a GUID and set it as AutItWinSetTitle :P Then, before you set it, check if there are other Wins with this title and make WinClose :(

Global Const $AutoItTitle = "MyAPP:6598834c-6cc7-45ea-9cd3-89dd825a2977"
; change the GUID to a Unique one for this app: e.g. use http://www.guidgen.com/
__UniqueThis()

; Prog@ndy
Func __UniqueThis()
    While WinExists($AutoItTitle)
        WinKill($AutoItTitle)
    WEnd
    AutoItWinSetTitle($AutoItTitle)
EndFunc

*GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes

Share this post


Link to post
Share on other sites

I suppose to create a GUID and set it as AutItWinSetTitle :( Then, before you set it, check if there are other Wins with this title and make WinClose :idea:

Global Const $AutoItTitle = "MyAPP:6598834c-6cc7-45ea-9cd3-89dd825a2977"
; change the GUID to a Unique one for this app: e.g. use http://www.guidgen.com/
__UniqueThis()

; Prog@ndy
Func __UniqueThis()
    While WinExists($AutoItTitle)
        WinKill($AutoItTitle)
    WEnd
    AutoItWinSetTitle($AutoItTitle)
EndFunc
Thanks for your very quick answer :P

My script work at background; without any window. Can I use your tip at this situation?

Regards

Share this post


Link to post
Share on other sites

Yes you can. Just make a window, hide it (@SW_HIDE) and then have your script exit when the window is closed.


[left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left]

Share this post


Link to post
Share on other sites

Yes you can. Just make a window, hide it (@SW_HIDE) and then have your script exit when the window is closed.

Thank you very much. I will test it :-)

Share this post


Link to post
Share on other sites

No you don't need to create one. Each AutoIt App (not shure about those compiled as CUI) has an invisible window you can Access with AutoItWinSetTitle / AutoItWinGetTitle :P And those windows are recognized by WinExists :(


*GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes

Share this post


Link to post
Share on other sites

Can't you put something like this in the beginning of your script so to prevent the user from running a script with a different name?

If @ScriptName <> "name you want here" Then Exit

Share this post


Link to post
Share on other sites

That is valid code. You can verify the script name but you might want to give some kind of message saying it's been changing.

Share this post


Link to post
Share on other sites

That is valid code. You can verify the script name but you might want to give some kind of message saying it's been changing.

Share this post


Link to post
Share on other sites

No you don't need to create one. Each AutoIt App (not shure about those compiled as CUI) has an invisible window you can Access with AutoItWinSetTitle / AutoItWinGetTitle :P And those windows are recognized by WinExists :(

That worked great :) Thanks again :idea:

Share this post


Link to post
Share on other sites

Can't you put something like this in the beginning of your script so to prevent the user from running a script with a different name?

If @ScriptName <> "name you want here" Then Exit
Thanks for your reply,

No! the codes such as your code just will work on current script, not previous running script. I want replace current script with previous running script. ProgAndy tip worked excellent.

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