Sign in to follow this  
Followers 0
DragonBall

restrict _ispressed to some controls only, not all window

4 posts in this topic

I want to use autoit to control a latex editor "WinEdt 6". The Window has class: TMainForm, but it has several controls which have class: TMDIChild, TPanel, TToolBar. I would like _isPressed("1") (left mouse click) is used for TMDIChild only. Is this possible?

Share this post


Link to post
Share on other sites



This might give you a better idea >>


_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

#3 ·  Posted (edited)

Try this example while running your "WinEdt 6".

#include <Misc.au3>
#include <WinAPI.au3>

HotKeySet("{ESC}", "Terminate")

While 1

    If _IsPressed("01") Then
        $hCtrl = ControlGetHandle("", "", "") ; Gets handle of active control.
        While _IsPressed("01") ; This loop exists so that only ONE mouse key press is recorded.
            Sleep(10)
        WEnd

        ;If _WinAPI_GetClassName($hCtrl) == "TMDIChild" Then ; "==" For strings case sensitive comparison.
        ; or
        If _WinAPI_IsClassName($hCtrl, "TMDIChild") Then ; Appears to be case insensitive
            ;
            MsgBox(0, "", "Class is TMDIChild", 3)
            ;
        Else
            MsgBox(16, "", "Class is NOT TMDIChild", 3)
        EndIf
    EndIf

    Sleep(10)
WEnd


Func Terminate()
    Exit 0
EndFunc   ;==>Terminate

Edit: Added _WinAPI_IsClassName line.

Edited by Malkey

Share this post


Link to post
Share on other sites

@Malkey,

Thank you, but it doesn't work well. If I clike where has class "TMDIChild", then when I click most part of WinEdt 6, it shows that it has class "TMDIChild" ( which is not true). But if I click somewhere outside the WinEdt 6 window, and click almost anywhere in WinEdt 6, it shows that the class is not "TMDIChild", unless I click where it has class "TMDIChild" ( which is expected). But then the situation become the first one, and so the script give the wrong result again....

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