comeonyoureds Posted December 9, 2008 Posted December 9, 2008 Hello! WinActivate() by handle seems to work only if you get the handle with the WinGetHandle() function in the currently running script.If you pass the handle to it manually by value, or read it even from a file in which you saved the handle you got previously by WinGetHandle(), it fails to work. Any tips on how to fix this behavior? Thanks!
DW1 Posted December 9, 2008 Posted December 9, 2008 A handle is a dynamic ID for a window and will most likely not be the same each time you start the application. What is wrong with calling WinGetHandle() each time? AutoIt3 Online Help
comeonyoureds Posted December 9, 2008 Author Posted December 9, 2008 A handle is a dynamic ID for a window and will most likely not be the same each time you start the application. What is wrong with calling WinGetHandle() each time?Hello! I'm keeping the application open, I know it will change everytime I run the application.The problem is that I am having several instances of the same application running and one script interfacing with each of them, some non preemptive scheduling and so on.Sometimes the scripts need to be stopped if something goes wrong and restarted from a saved state.And WinGetHandle is also not very reliable, because if there are several instances of the same application, it sorts windows by the last activated one.
comeonyoureds Posted December 9, 2008 Author Posted December 9, 2008 (edited) Hello! I'm keeping the application open, I know it will change everytime I run the application.The problem is that I am having several instances of the same application running and one script interfacing with each of them, some non preemptive scheduling and so on.Sometimes the scripts need to be stopped if something goes wrong and restarted from a saved state.And WinGetHandle is also not very reliable, because if there are several instances of the same application, it sorts windows by the last activated one.Alright, I found a way around it.I iterate through the window list and compare the handles to the values saved in the file.It works, but this does not mean the bug isn't still there.WinActivate() does not process well the parameters given if they are not obtained in the current instance of the running script.At least that's what it looks to me like. Edited December 9, 2008 by comeonyoureds
MrCreatoR Posted December 9, 2008 Posted December 9, 2008 If i understand it correctly, you just need to use Hwnd($sHandle) when you get the handle string from file or other source that is not returning Handle variable type. I am pretty sure that if you check it witch VarGetType(), you will get “String” (or “Int32” depending on the source). Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team
comeonyoureds Posted December 9, 2008 Author Posted December 9, 2008 If i understand it correctly, you just need to use Hwnd($sHandle) when you get the handle string from file or other source that is not returning Handle variable type. I am pretty sure that if you check it witch VarGetType(), you will get String (or Int32 depending on the source).You're absolutely right.Shame on me for not knowing about it.I think it would be best to have it added somewhere at 'Window Titles and Text (Advanced)' in the help.Thanks!
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now