Jump to content

Recommended Posts

It requires Beta.

Well, actualy those introduced in 3.2.10.0 :).

 

Spoiler

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

Spoiler

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

Hi first of all i want to say that u`ve made a good think doing this udf...and second i wanned to ask if there`s a way to integrate this udf with the hover udf to create the 3rd state of a button (pressed) thta would be very userfull

Share this post


Link to post
Share on other sites

N!ce.

Any way of getting it to detect the scrollwheel, scrolled up or down?

__________

Test12

Yes:

#include <MouseSetOnEvent_UDF.au3>

_MouseSetOnEvent($MOUSE_WHELLSCROLL_EVENT, "Scroll_Event")

Sleep(3000)

_MouseSetOnEvent($MOUSE_WHELLSCROLL_EVENT) ;Unset


Func Scroll_Event()
    ConsoleWrite("Scroll Event Fired" & @LF)
EndFunc

 

Spoiler

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

Spoiler

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

No sorry, like in :

#include <MouseSetOnEvent_UDF.au3>
$hGUI = WinGetHandle("Blaaaa")

_MouseSetOnEvent($MOUSE_WHELLSCROLL_EVENT_UP, "MOUSE_WHELLSCROLL_UP", "", "", $hGUI)
_MouseSetOnEvent($MOUSE_WHELLSCROLL_EVENT_DOWN, "MOUSE_WHELLSCROLL_DOWN", "", "", $hGUI)

While 1
    Sleep(100)
WEnd

Exit

Func MOUSE_WHELLSCROLL_UP()
    ConsoleWrite("UP" & @CR)
EndFunc

Func MOUSE_WHELLSCROLL_DOWN()
    ConsoleWrite("DOWN" & @CR)
EndFunc

_____________________

Test12

Edited by test12

Share this post


Link to post
Share on other sites

$MOUSE_WHELLSCROLL_EVENT_UP

No, there is no event that can handle scroll down/up, but perhaps there is need to check some param, but i don't know what exactly to check...

 

Spoiler

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

Spoiler

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

@MrCreator

About the mouse wheel, I found some C# code with google codesearch: MouseHookProc

Line 651

MouseLLHookStruct mouseHookStruct = (MouseLLHookStruct)Marshal.PtrToStructure(lParam, typeof(MouseLLHookStruct));

                //detect button clicked
                MouseButtons button = MouseButtons.None;
                short mouseDelta = 0;
                switch (wParam)
                {
                    case WM_LBUTTONDOWN:
                        //case WM_LBUTTONUP:
                        //case WM_LBUTTONDBLCLK:
                        button = MouseButtons.Left;
                        break;
                    case WM_RBUTTONDOWN:
                        //case WM_RBUTTONUP:
                        //case WM_RBUTTONDBLCLK:
                        button = MouseButtons.Right;
                        break;
                    case WM_MOUSEWHEEL:
                        //If the message is WM_MOUSEWHEEL, the high-order word of mouseData member is the wheel delta.
                        //One wheel click is defined as WHEEL_DELTA, which is 120.
                        //(value >> 16) & 0xffff; retrieves the high-order word from the given 32-bit value
                        mouseDelta = (short)((mouseHookStruct.mouseData >> 16) & 0xffff);
                        //TODO: X BUTTONS (I havent them so was unable to test)
                        //If the message is WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLK, WM_NCXBUTTONDOWN, WM_NCXBUTTONUP,
                        //or WM_NCXBUTTONDBLCLK, the high-order word specifies which X button was pressed or released,
                        //and the low-order word is reserved. This value can be one or more of the following values.
                        //Otherwise, mouseData is not used.
                        break;
                }

What ever I try I can't seem to translate this to AutoIt, probably due to my limited knolledge.

Would you be willing to enlighten me?

__________

Test12

Share this post


Link to post
Share on other sites

Would you be willing to enlighten me?

Well, my knowledge is very limited as well in C# :)

I supose we need to call somehow the GET_WHEEL_DELTA_WPARAM macro, but how, it's a really question for me... i read info about it on MSDN, but can't figure it out...


 

Spoiler

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

Spoiler

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

Awesome job:-), MrCreatoR!

Is it possible to implement Larry's hook.dll in AutoIt script? Such as adding a _KeySetOnEvent() function to your UDFs. I heard that HotKeySet() has some limitations on both the keys and the number of keys.

I'm really expecting that! :)

Share this post


Link to post
Share on other sites

is it possible to detect clicks / cords while mouse input is being blocked? (ie what button and where would have been clicked even though it didn't)

something like.... but this isn't working

#include <Misc.au3>
#include <MouseSetOnEvent_UDF.au3>

$dll = DllOpen("user32.dll")


While 1
    Select
    Case _IsPressed("C0", $dll) ; ` (tilde) Key
        While _IsPressed("C0", $dll)
            _MouseSetOnEvent($MOUSE_PRIMARYUP_EVENT, "__Dummy")
            _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "__Dummy")
            _MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT, "__Dummy")
            _MouseSetOnEvent($MOUSE_SECONDARYDOWN_EVENT, "__Dummy")
            Sleep(10)
            ; Display Clicks
            If _IsPressed("01", $dll) Then 
                While _IsPressed("01", $dll)
                    ; do nothing 
                WEnd
                $pos = MouseGetPos()
                MsgBox(0, "Had this click not been blocked... Mouse x,y:", $pos[0] & "," & $pos[1])
            EndIf 
        WEnd
        _MouseSetOnEvent($MOUSE_PRIMARYUP_EVENT)
        _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT)
        _MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT)
        _MouseSetOnEvent($MOUSE_SECONDARYDOWN_EVENT)
    Case Else
        sleep (10)
    EndSelect

WEndoÝ÷ Ø@ÈMg¥Øb²H§u¬(®K ¶[[ºÖÛh£¥Z%~Z(vËazÇ+yéðØfº[b¦W¦²èÇlr¥vÇ­j»§¢w~V nëm«lyé¬i¸­­¶®¶­sb6æ6ÇVFRfÇC´Ö62æS2fwC°¢6æ6ÇVFRfÇC´Ö÷W6U6WDöäWfVçEõTDbæS2fwC° ¢b33c¶FÆÂÒFÆÄ÷VâgV÷C·W6W#3"æFÆÂgV÷C²  ¥vÆR 6VÆV7@ 66Rô5&W76VBgV÷C´3gV÷C²Âb33c¶FƲb3c²FÆFR¶W vÆRô5&W76VBgV÷C´3gV÷C²Âb33c¶FÆ ôÖ÷W6U6WDöäWfVçBb33c´ÔõU4Uõ$Ô%DõtåôUdTåBÂgV÷Cµ&V6÷&BgV÷C² ²ôÖ÷W6U6WDöäWfVçBb33c´ÔõU4Uõ4T4ôäD%UôUdTåBÂgV÷Cµ&V6÷&BgV÷C² ²ôÖ÷W6U6WDöäWfVçBb33c´ÔõU4Uõ4T4ôäD%DõtåôUdTåBÂgV÷Cµ&V6÷&BgV÷C² 6ÆVW tVæ@¢ôÖ÷W6U6WDöäWfVçBb33c´ÔõU4Uõ$Ô%DõtåôUdTåB 66RVÇ6P 6ÆVW VæE6VÆV7@ ¥tVæ@ ¤gVæ2&V6÷&B b33c·÷2ÒÖ÷W6TvWE÷2 ×6t&÷ÂgV÷C´BF26Æ6²æ÷B&VVâ&Æö6¶VBâââÖ÷W6RÇ¢gV÷C²Âb33c·÷5³ÒfײgV÷C²ÂgV÷C²fײb33c·÷5³Ò¤VæDgVæ0
Edited by zhenyalix

Don't let that status fool you, I am no advanced memeber!

Share this post


Link to post
Share on other sites

getting somewhat closer...

this seemingly works but i get a error in the UDF and it crashes... note the udf doesn't bug if i just disable mouse clickse with a __Dummy >.<

error is:

C:\Program Files\AutoIt3\Include\MouseSetOnEvent_UDF.au3 (82) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:

If $aMouse_Events[$i][0] = $iEvent Then

If ^ ERROR

->06:53:07 AutoIT3.exe ended.rc:1

#include <Misc.au3>
#include <MouseSetOnEvent_UDF.au3>

$dll = DllOpen("user32.dll")

While 1
    Select
        Case _IsPressed("C0", $dll) ; ` (tilde) Key
            ToolTip('MouseClicks is disabled tilde down....')
        While _IsPressed("C0", $dll)
            ; _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "__Dummy")
            _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "MousePrimaryDown_Event")
            ; _MouseSetOnEvent($MOUSE_SECONDARYDOWN_EVENT, "MouseSecondaryDown_Event")
            Sleep(10)
        WEnd
        ToolTip('MouseClicks is ENABLED tilde up....')
        _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT)
        ; _MouseSetOnEvent($MOUSE_SECONDARYDOWN_EVENT)
    Case Else
        sleep (10)
    EndSelect

WEnd

Func MouseSecondaryDown_Event()
        Local $pos  
        $pos = MouseGetPos()
        ToolTip("Had This RIGHT click not been blocked... Mouse x,y:" & $pos[0] & "," & $pos[1])
EndFunc

Func MousePrimaryDown_Event()
        Local $pos
        $pos = MouseGetPos()
        ToolTip("Had this LEFT click not been blocked... Mouse x,y:" & $pos[0] & "," & $pos[1])
EndFunc

Don't let that status fool you, I am no advanced memeber!

Share this post


Link to post
Share on other sites

i get a error in the UDF and it crashes

That's strange, i got no errors with this example...

 

Spoiler

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

Spoiler

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

Detect clicks / cords while mouse input is being blocked:

Here is a solution I came up with. I am still new to AutoIT, so it may be a little crude.

Using the UDF from this post and the UDF from LxP's post of "_ControlGetHandleByPos" here.

#include <_ControlGetHandleByPos.au3>
#include <MouseSetOnEvent_UDF.au3>
AutoItSetOption("TrayIconDebug", 1)

HotKeySet("{PAUSE}", "Terminate")
$winSiS = "LabCorp SIS"
_MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "LeftMouseDown");Set LeftMouseClick Event
Dim $pos[2]
$pos[0] = 0
$pos[1] = 0
$intMC = 0
$ctrlInfo = "Not found or Exit before found."

While 1
    Sleep(100)
    If $intMC = 1 Then
        $intMC = 0
        _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "LeftMouseDown");Re-enable LeftMouseClick Event
    EndIf
WEnd

Func LeftMouseDown()
    _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT);Enable mouse button back.
    MouseClick("left");Left Click were mouse is at to get data
    $pos = MouseGetPos()
    $ctrlHndl = _ControlGetHandleByPos($winSiS, "", $pos[0], $pos[1])
    $curData = ControlGetText($winSiS, "", $ctrlHndl)
    If StringLen($curData) > 12 Then $curData = StringLeft($curData, 12)
    $handle = ControlGetHandle($winSiS, "", $ctrlHndl)
    $intMC = 1
    $ctrlInfo = "Control Handle: " & $handle & " Data: " & $curData
    ToolTip($ctrlInfo)
EndFunc

Func Terminate()
    MsgBox(0, "Control Info", $ctrlInfo)
;ClipPut('MouseClick("left",' & $pos[0] & ',' & $pos[1] & ',1,1); wrt Client')
    Exit
EndFunc ;==>Terminate

Share this post


Link to post
Share on other sites

Example for a custom context menu using this UDF -

http://www.autoitscript.com/forum/index.ph...st&p=556093

My Error is this...

C:\Program Files\AutoIt3\Include\MouseSetOnEvent_UDF.au3 (3) : ==> Can not redeclare a constant.:

Global Const $WH_MOUSE_LL = 14

Global Const ^ ERROR

Help?

it works with

#include <MouseSetOnEvent_UDF.au3>
_MouseSetOnEvent($MOUSE_EXTRABUTTONDOWN_EVENT, "cont")
$wait = True
HotKeySet("{HOME}", "cont")
While $wait = True
    Sleep(100)
WEnd
MsgBox(0, "IT WORKS", "...")
ExitƒoÝŠ÷ Ø[§qÊ'·MúÁ¨­

I took out everything but what was making the error...

and that is #include <ScreenCature.au3>

your going to have to make it compatible :)

Edit:

NVM, i did it my self,

if anyone else has the problem then do a replace all with

$WH_MOUSE_LL

to $WH_MOUSE_LL_EVENT

works great >_< Thanks MrCreatoR

Edited by APPLEEATER

Share this post


Link to post
Share on other sites

I need to cause a set of instructions (not a Function) to be executed after a mouse click.

The reason why I can't call up a separate Function is the fact that the instructions include variables from the first Function.

Share this post


Link to post
Share on other sites

The reason why I can't call up a separate Function is the fact that the instructions include variables from the first Function.

Declare them globally.

Share this post


Link to post
Share on other sites

So I am trying to code when the mouse wheel is clicked, it launches itunes play/pause command. I got it to work by hotkey, but not by mouse. It seems not to be able to find itunes app when the mouse hotkey tries to use it, but the keyboard works fine.

iTunesUDF.au3 (68) : ==> The requested action with this object has failed.:

$iTunesApp.PlayPause

$iTunesApp.PlayPause^ ERROR

CODE
#include <MouseSetOnEvent_UDF.au3>

#include <iTunesUDF.au3>

_iTunes_Start()

HotKeySet("{Esc}", "quit")

HotKeySet("{MEDIA_PLAY_PAUSE}", "PausePlay")

HotKeySet("{MEDIA_NEXT}","trackNext")

_MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT , "PausePlay")

while 1

sleep (1000)

WEnd

Func PausePlay()

_iTunes_Play_Pause()

EndFunc

Func trackNext()

_iTunes_Next()

EndFunc

Func quit()

_iTunes_Quit()

_MouseSetOnEvent($MOUSE_WHELLDOWN_EVENT)

Exit(0)

EndFunc

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

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By CarlD
      Update: Download the latest version here.
      As my first stab at GUI scripting, I'm trying to write a simple graphical interface for Grep for Windows. I have a basic GUI, but I'm stuck on one point and nothing I've tried so far works. The sticking point is that while the Tab key works to move focus from one input control to the next, clicking the mouse on any but the first input does nothing. This seems like a basic feature of GUI functionality that should work out of the box (like Tab), but clearly I'm missing something. I tried (among many other things) Melba23's technique in the post below, but this doesn't do what I'm after -- getting the left click to set the insertion point for user input. Would greatly appreciate a pointer or two. 😉
      Here's my code so far:
      ; Grep for Windows -- GUI [CLD] #include <AutoItConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> Opt("WinTitleMatchMode", -2) #cs FileInstall("X:\nix\search1.ico", @TempDir & "\search1.ico") FileInstall("X:\nix\grep.exe", @TempDir & "\grep.exe") FileInstall("X:\nix\sed.exe", @TempDir & "\sed.exe") FileInstall("X:\nix\libiconv2.dll", @TempDir & "\libiconv2.dll") FileInstall("X:\nix\libintl3.dll", @TempDir & "\libintl3.dll") FileInstall("X:\nix\pcre3.dll", @TempDir & "\pcre3.dll") FileInstall("X:\nix\regex2.dll", @TempDir & "\regex2.dll") #ce ; $sDefFs = @ScriptDir & "\.txt" $sOut = "" $iX = 20 $iY = 20 $hgGGrep = GUICreate("Grep for Windows: Simple TeXT search", 600, 600) GUISetState(@SW_SHOW, $hgGGrep) ; Obtain value of control: GUICtrlRead() ; left, top, width, height ; $iX, $iY, $iX + n, $iY + m ; $hgIco = GUICtrlCreateIcon(@ScriptDir & "\search1.ico", $iX, $iY, 10) $hgGL0 = GUICtrlCreateLabel("Enter a string or regular expression" & @CRLF & "(space between words means ""OR"")", $iX + 50, $iY, 250, 30) $hgSch = GUICtrlCreateInput("", $iX + 50, $iY + 40, 325, 20, $GUI_SS_DEFAULT_INPUT, -1) $hgXyZ = GUICtrlCreateCheckbox("cAsE-sEnSiTiVe", $iX + 50, $iY + 65, -1, -1) $hgExe = GUICtrlCreateButton("Search", 400, $iY + 40, -1, -1) $hgFL1 = GUICtrlCreateLabel("Filespec", $iX + 50, $iY + 100, 250, 20) $hgFs1 = GUICtrlCreateInput("d:\path\*.txt", $iX + 110, $iY + 100, 250, 20, $GUI_SS_DEFAULT_INPUT, -1) $hgFL2 = GUICtrlCreateLabel("Filespec", $iX + 50, $iY + 120, 250, 20) $hgFs2 = GUICtrlCreateInput("", $iX + 110, $iY + 120, 250, 20, $GUI_SS_DEFAULT_INPUT, -1) $hgFL3 = GUICtrlCreateLabel("Filespec", $iX + 50, $iY + 140, 250, 20) $hgFs3 = GUICtrlCreateInput("", $iX + 110, $iY + 140, 250, 20, $GUI_SS_DEFAULT_INPUT,-1) $hgOut = GUICtrlCreateEdit($sOut, 25, 190, 550, 400, $ES_LEFT, -1) GUICtrlSetState($hgSch, $GUI_FOCUS) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd ; #cs _WinAPI_SetFocus(ControlGetHandle("Grep for Windows", "", $hgSch)) _WinAPI_SetFocus(ControlGetHandle("Grep for Windows", "", $hgFs1)) _WinAPI_SetFocus(ControlGetHandle("Grep for Windows", "", $hgFs2)) _WinAPI_SetFocus(ControlGetHandle("Grep for Windows", "", $hgFs3)) #ce Thanks in advance.
    • By Chimp
      If I run a process using the run() statement and setting the proper  STDIO redirection flags, I can access and manage the I/O streams of that process.
      Is there a way to hook to the same streams of a process that is already running?
      Thanks for any tip
    • By WoodGrain
      Hi guys,
       
      I've written a script that will move my mouse to a location on the screen whenever my remote access software becomes active, the problem I have is that as soon as the remote access software becomes active it appears to capture the mouse and keyboard so nothing happens when I use MouseMove().
       
      Is there any way around this?
       
      Thanks!
    • By badcoder123
      Hey, all.  
      I've been looking for a way to change cursor colour but not the cursor itself. I've been looking for a couple hours now and can't find anything.  I also don't even know where to start, if anyone has any tips or examples please comment them.
      Thanks
    • By Bilgus
      Recently a user asked given two keyboards how to determine which keyboard was pressed this is the start of such functionality
      I was already given permission to post this example by a moderator before I bothered
      ;Bilgus 2018 ;Determine which keyboard was pressed #include <Array.au3> #include <WinAPISys.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global Const $HWND_MESSAGE = (-3) ;create a message-only window when set as Parent ;RAWINPUTDEVICE Constants Global Const $HID_USAGE_PAGE_GENERIC = 0x1 Global Const $HID_USAGE_GENERIC_KEYBOARD = 0x6 Global $ghSelectedDevice Global $gaKeyboards = EnumRawKeyboards("\HID") If IsArray($gaKeyboards) And $gaKeyboards[0][0] >= 1 Then $ghSelectedDevice = $gaKeyboards[1][0] ; hard coded change to suit _ArrayDisplay($gaKeyboards, '_WinAPI_EnumRawInputDevices', "", 0, Default, "Handle|Type|VID|Keys") ;Not Needed... Global $hTarget = GUICreate("main", 10, 10, Default, Default, Default, Default, $HWND_MESSAGE) ;Dummy window to recieve messages Register_RawInput($HID_USAGE_PAGE_GENERIC, $HID_USAGE_GENERIC_KEYBOARD, $RIDEV_INPUTSINK, $hTarget) ;$RIDEV_INPUTSINK recieves input when not foreground ; Register WM_INPUT message GUIRegisterMsg($WM_INPUT, 'WM_INPUT') HotKeySet("{ESC}", _Exit) While 1 Sleep(1000) WEnd Func Device_Pressed() ConsoleWrite("Device Pressed" & @CRLF) EndFunc ;==>Device_Pressed Func _Exit() Exit EndFunc ;==>_Exit Func Register_RawInput($iUsagePage, $iUsage, $iFlags, $hTargetHwnd) Local $tRID = DllStructCreate($tagRAWINPUTDEVICE) DllStructSetData($tRID, 'UsagePage', $iUsagePage) DllStructSetData($tRID, 'Usage', $iUsage) DllStructSetData($tRID, 'Flags', $iFlags) DllStructSetData($tRID, 'hTarget', $hTargetHwnd) ; Register HID input to obtain info from devices _WinAPI_RegisterRawInputDevices($tRID) EndFunc ;==>Register_RawInput Func WM_INPUT($hWnd, $iMsg, $wParam, $lParam) ;Callback from RawInput #forceref $iMsg, $wParam ;'struct;dword Type;dword Size;handle hDevice;wparam wParam;endstruct' Local $tRIH = DllStructCreate($tagRAWINPUTHEADER) If _WinAPI_GetRawInputData($lParam, $tRIH, DllStructGetSize($tRIH), $RID_HEADER) And DllStructGetData($tRIH, "Type") = $RIM_TYPEKEYBOARD Then ConsoleWrite("0x" & Hex(DllStructGetData($tRIH, "hDevice")) & @CRLF) If $ghSelectedDevice = DllStructGetData($tRIH, "hDevice") Then Device_Pressed() Else ;Different Device ConsoleWrite("Different Device Pressed" & @CRLF) EndIf EndIf Return $GUI_RUNDEFMSG ;Pass on to default winproc EndFunc ;==>WM_INPUT Func EnumRawKeyboards($sDeviceNameMatch = "") ;Returns array of keyboard device IDs Local $tInfo, $aData = _WinAPI_EnumRawInputDevices() If IsArray($aData) Then Local $aKeyboards[$aData[0][0] + 1][4] ;'dword Size;dword Type;';'struct;dword KbType;dword KbSubType;dword KeyboardMode;dword NumberOfFunctionKeys;dword NumberOfIndicators;dword NumberOfKeysTotal;endstruc' Local $_tagRID_INFO_KEYBOARD = $tagRID_INFO_KEYBOARD If StringRight($_tagRID_INFO_KEYBOARD, 1) <> "t" Then $_tagRID_INFO_KEYBOARD &= "t" ; t is missing from endstruct Local $iCt = 0, $iSz Local $tInfo, $tDeviceName, $sDeviceName For $i = 1 To $aData[0][0] $tInfo = DllStructCreate($_tagRID_INFO_KEYBOARD) If _WinAPI_GetRawInputDeviceInfo($aData[$i][0], $tInfo, DllStructGetSize($tInfo), $RIDI_DEVICEINFO) And $aData[$i][1] = $RIM_TYPEKEYBOARD Then $iSz = _WinAPI_GetRawInputDeviceInfo($aData[$i][0], 0, 0, $RIDI_DEVICENAME) ;Get bytes needed $tDeviceName = DllStructCreate('wchar[' & $iSz + 1 & ']') ;Holds device name string If _WinAPI_GetRawInputDeviceInfo($aData[$i][0], $tDeviceName, DllStructGetSize($tDeviceName), $RIDI_DEVICENAME) Then $sDeviceName = DllStructGetData($tDeviceName, 1) If $sDeviceNameMatch <> "" And Not StringInStr($sDeviceName, $sDeviceNameMatch) Then ContinueLoop $iCt += 1 $aKeyboards[$iCt][0] = $aData[$i][0] ;Handle $aKeyboards[$iCt][1] = $aData[$i][1] ;Type $aKeyboards[$iCt][2] = $sDeviceName $aKeyboards[$iCt][3] = DllStructGetData($tInfo, "NumberOfKeysTotal") EndIf EndIf Next $aKeyboards[0][0] = $iCt ; Write count of keyboard devices to array ReDim $aKeyboards[$iCt + 1][4] ;Resize array EndIf Return $aKeyboards EndFunc ;==>EnumRawKeyboards  
×
×
  • Create New...