Sign in to follow this  
Followers 0
copyleft

Focus Command

13 posts in this topic

After launching a truecrypt password prompt window, I am trying to shift focus to the "edit1" field, so that truecrypt is ready to receive user input, with this command:

ControlFocus("CLASS:32770", "", "Edit1")

This command places the cursor where I want it, but I don't have focus, I still have to click the mouse inside the EDIT1 field before typing. Is there a fix for this or am I using the wrong command?

Share this post


Link to post
Share on other sites



ControlClick?


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

What's the return value of ControlFocus?


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

#4 ·  Posted (edited)

ControlClick doesn't work either, at least after rebooting. I'm using this application immediately after logon.

@water, how do I get the return value?

Edited by copyleft

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

ControlFocus("CLASS:32770", "", "Edit1")

Your class statement is incorrectly formatted: [CLASS:#32770]

It's better to use verified window/control handles instead of searching every time you read or send to a control

Is there an issue with using the command line?

http://www.truecrypt.org/docs/?s=command-line-usage

$hPassWin = WinGetHandle("[REGEXPTITLE:Enter password for; CLASS:#32770]") ;to exclude any other #32770 class windows that may be open
If Not IsHWnd($hPassWin) Then Exit
$hEdit1 = ControlGetHandle($hPassWin,"","[CLASS:Edit; INSTANCE:1]")
If Not IsHWnd($hEdit1) Then Exit
ControlFocus($hPassWin, "", $hEdit1)
Edited by rover

I see fascists...

Share this post


Link to post
Share on other sites

Send("{TAB n}") maybe


[font='Comic Sans MS']Eagles may soar high but weasels dont get sucked into jet engines[/font]

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

@unmutual. Thanks for the suggestions. Other apps seem to be stealing focus from truecrypt. Maybe I need to put the other apps in the autoit script behind truecrypt or use "run" instead of "runwait". In any event, here's the code I tried that failed:

runwait("TrueCrypt.exe /q /auto favorites") ;truecrypt.exe is in path
$hPassWin = WinGetHandle("[REGEXPTITLE:Enter password for; CLASS:#32770]") ;to exclude any other #32770 class windows that may be open
If Not IsHWnd($hPassWin) Then Exit
$hEdit1 = ControlGetHandle($hPassWin,"","[CLASS:Edit; INSTANCE:1]")
If Not IsHWnd($hEdit1) Then Exit
ControlFocus($hPassWin, "", $hEdit1)
run("label.exe F: BACKUP")
run("AUTOBACK.exe F:BackupEruntWIN7#Date# /noconfirmdelete /noprogresswindow /days:10")
Exit
Edited by copyleft

Share this post


Link to post
Share on other sites

You can't use RunWait and then expect the script to continue after that to interoperate with the window. RunWait stops execution of the script until what you ran shuts down, so it's no wonder that your script isn't working.

1 person likes this

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

I tried it both ways, run and runwait, neither worked. I think I'm just going to add all the run items to the autoscript file because the truecrypt window gets focus initially but then something steals it away after a second or so.

Share this post


Link to post
Share on other sites

Truecrypt has command line parameters that you can use rather than trying to send characters to its GUI, which is MUCH more reliable than Send.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

#11 ·  Posted (edited)

@BrewManNH. you still have to enter a password at some point if you want to maintain some semblance of security for an encrypted volume. In any event, changing the sequence of the startup app that was interferring with the focus finally fixed the issue. This is what finally worked for me:

run("TrueCrypt.exe /q /auto favorites")
winwait("Enter password", "Mount Opti&ons")
controlfocus("Enter password", "Class:#327701", "Edit1")
winwaitnotactive("Enter password", "Mount Opti&ons")
run("Other executables.exe")
Exit

Works like a charm now. Thanks for everyone's help.

Edited by copyleft

Share this post


Link to post
Share on other sites

#12 ·  Posted (edited)

@water, how do I get the return value?

Sorry, I just noticed you added a question to your post.

Use

Global $iresult = ControlFocus("CLASS:32770", "", "Edit1")
$iResult will be 1 on success or 0 on error.

Please check the help file for this.

Edited by water

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

@BrewManNH. you still have to enter a password at some point if you want to maintain some semblance of security for an encrypted volume. In any event, changing the sequence of the startup app that was interferring with the focus finally fixed the issue. This is what finally worked for me:

You can get the password using an InputBox and taking the returned input and putting it into a variable to send to the run command ($sPassword = InputBox("Password", "Please enter the password", "*M")), that would be the easiest way to do it. Just a thought for the future seeing as how you've gotten it to work the way you wanted.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

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