Sign in to follow this  
Followers 0
comeonyoureds

WinActivate by handle

6 posts in this topic

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!

Share this post


Link to post
Share on other sites



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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

#4 ·  Posted (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 by comeonyoureds

Share this post


Link to post
Share on other sites

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).


Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1

AutoIt_Rus_Community.png AutoIt Russian Community

My Work...

AutoIt_Icon_small.pngProjects: 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 Program

AutoIt_Icon_small.pngUDFs: 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
 
AutoIt_Icon_small.pngExamples: 
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 AutoIt_Rating.gif)

* === My topics === *

==================================================
My_Userbar.gif
==================================================

AutoIt is simple, subtle, elegant. © AutoIt Team

Share this post


Link to post
Share on other sites

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!

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