Sign in to follow this  
Followers 0

Mouse Wrap [02/13/2015]

5 posts in this topic

#1 ·  Posted (edited)

This script is intended to allow the user to move their mouse to the edge of their screen and have the mouse appear to the opposite end. 

When the user drags the mouse to the edge of a monitor there is a 300 millisecond delay before the mouse will wrap.  This will give the user some time to change their mind and give some time for the taskbar to open if the user has it set to autohide. 

When the user drags a window or selection rectangle to the edge of a monitor the user will have 700 milliseconds to take advantage of the Windows 7 Snap feature.  If the user has not moved the mouse from the edge within that time then the window will move to the opposite edge. 

When the user holds down the mouse wheel the wrap effect is disabled.

Tested on Windows 7 x64 with two monitors placed horizontally.


[02/13/2015] Finally got around to fixing this.

[05/25/2013] User may now disable the effect on the left, right, top, and or bottom edges.  User may also change the hover and snap times for each edge.  These options are available through the 'Options' tray menu. - Source works on latest AutoIt beta.  Includes an exe.

downloads: 197

Edited by jaberwacky
1 person likes this

Share this post

Link to post
Share on other sites

But I crave wishy washy! Nice code and pretty awesome I'm credited!

_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

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

  • Similar Content

    • perlabsrat
      By perlabsrat
      Hello, I have a Logitech MX500 mouse, this has 7 buttons plus a wheel.
      I am trying to figure out how to detect clicks on three of the buttons on this mouse but have been unable to do so. I am not running any Logitech software just the standard Windows 7 driver. The buttons are all working fine but when I try to figure out which button was clicked unable to detect three of the buttons.

      Using this code snippet I am able to see all the button presses with the exception of these three marked by '?'.
      Is there some alternate method for detecting button clicks? I have been searching for example but have yet to find anything.
      #include <Misc.au3> Dim $a While 1 For $a = 1 To 100 If _IsPressed($a) Then ConsoleWrite("you pressed " & $a & @CRLF) Next WEnd
    • StMaSi
      By StMaSi
      Two questions...
      When presenting a form containing a richedit control, is there any way to make the displayed text, within said richedit control, non-selectable?
      In addition, is there any way to hide the vertical line cursor, within said richedit control?
    • AndyS01
      By AndyS01
      When I set the busy cursor on the main gui, it returns to a normal cursor when hovering over any of the controls on the gui window.  This behavior happens regardless of whether I set the 'override' parameter to 1 or to 0.
      Here is my test code:
      #AutoIt3Wrapper_UseUpx=n #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #AutoIt3Wrapper_UseX64=N Opt("GUICloseOnESC", 1) ; ESC closes GUI? (0 = no, 1 = yes) Opt("GUIOnEventMode", 1) ; Change to OnEvent mode Opt('MustDeclareVars', 1) OnAutoItExitRegister("Event_GUIClose") #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $hMainWin, $statusID, $cnt = 0 _Main() Func _Main() Local $msg $hMainWin = GUICreate("cursor test", 250, 200, -1, -1) GUICtrlCreateListView("ABCdef", 10, 10, 100, 100) GUICtrlCreateButton("override = 1", 130, 10, 100, 25) GUICtrlSetOnEvent(-1, "handle_SetCur_1_btn") GUICtrlCreateButton("override = 0", 130, 50, 100, 25) GUICtrlSetOnEvent(-1, "handle_SetCur_0_btn") $statusID = GUICtrlCreateLabel("", 10, 120, 200, 20) GUICtrlSetBkColor(-1, 0xFFFF00) GUISetOnEvent($GUI_EVENT_CLOSE, 'Event_GUIClose') GUISetState() ; Make everything visible While (1) $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Exit EndSelect Sleep(125) WEnd EndFunc ;==>_Main Func Event_GUIClose() Exit EndFunc ;==>Event_GUIClose Func handle_SetCur_1_btn() If (Mod($cnt, 2)) Then setIT(15, 1) Else setIT(2, 1) EndIf $cnt += 1 EndFunc ;==>handle_SetCur_1_btn Func handle_SetCur_0_btn() If (Mod($cnt, 2)) Then setIT(15, 0) Else setIT(2, 0) EndIf $cnt += 1 EndFunc ;==>handle_SetCur_0_btn Func setIT($cursorID, $override) Local $str GUISetCursor($cursorID, $override, $hMainWin) $str = "Set " & (($cursorID = 2) ? " normal" : " busy") & " cursor." $str &= " (override = " & $override & ")" ConsoleWrite("+++: " & $str & @CRLF) GUICtrlSetData($statusID, $str) EndFunc ;==>setIT  
    • Marcelos
      By Marcelos
      In my work place they blocked the application movemouse. so y decided to do one by myself , to cheat the system.
      I have used some peaces of code from another scripts I have, and also I have found in this forum
      Hope this helps
      $version="0.2" #include <Misc.au3> If _Singleton(@ScriptName, 1) = 0 Then ; allow only one instance MsgBox(0, "Warning", "An occurence of " & @ScriptName & " is already running") Exit EndIf #region tray icon #NoTrayIcon Opt("TrayIconHide", 0) Opt("TrayMenuMode", 1) TraySetToolTip("Ratoner "& $version) Local $exititem = TrayCreateItem("Exit") TraySetState(1) ; Show the tray menu. #endregion #region variables $BlockScreensaver=1 $flagMouse=1 $MouseNotMovedCounter=0 $posMouseMovedX=0 $posMouseMovedY=0 $Counter= 0 #endregion #region main Local $hTimer = TimerInit() while 1 $Counter=$Counter+1 if $Counter>1000 then CheckifMouseMove() if $MouseNotMovedCounter>2 then moveMouse() $Counter= 0 endif Switch TrayGetMsg() Case $exititem exit EndSwitch sleep(50) wend #endregion #region functions func CheckifMouseMove() ;~ ConsoleWrite("+CheckifMouseMove()" & @crlf) $posMouseMoved = MouseGetPos() if $posMouseMovedX<>$posMouseMoved[0]or $posMouseMovedY <> $posMouseMoved[1] then $posMouseMovedX=$posMouseMoved[0] $posMouseMovedY=$posMouseMoved[1] $MouseNotMovedCounter=0 ;~ ConsoleWrite('>$MouseNotMovedCounter = ' & $MouseNotMovedCounter & @crlf ) Else ;$MouseMoved=0 $MouseNotMovedCounter=$MouseNotMovedCounter+1 ;~ ConsoleWrite('--$MouseNotMovedCounter = ' & $MouseNotMovedCounter & @crlf ) endif EndFunc func moveMouse() ;~ ConsoleWrite("+moveMouse" & @crlf) Local $posMouse = MouseGetPos() $flagMouse=$flagMouse*-1 Local $new_y = $posMouse[1] + $flagMouse ; + (10*$flagMouse) MouseMove($posMouse[0],$new_y) $MouseNotMovedCounter=0 ;~ ConsoleWrite("+mouseMove $MouseNotMovedCounter" & $MouseNotMovedCounter & @crlf) endfunc #endregion  
    • aleeksunder
      By aleeksunder
      I'm a newbie in AutoIt and want to wrap some internal autoit functions like RegWrite() in way function will display MsgBox with of error happens.
      I want to wrap because write error handler becomes really annoying when it comes to code, and I have to write the same code after every RegWrite() call and this becomes really ugly. So I just want this:
      Local $s_key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control' Local $s_value_name = 'value1' Local $s_value_type = 'REG_SZ' Local $value_data = 'data1' RegWrite( $s_key , $s_value_name , $s_value_type, $value_data ) If @error Then MsgBox( $MB_ICONERROR , 'ERROR' , 'Error writing registry:' & @CRLF & 'Key: ' & $s_key & @CRLF & 'Value: ' & $s_value_name & @CRLF & 'Type: ' & $s_value_type & @CRLF & 'Data: ' & $value_data & @CRLF & 'ErrorCode: ' & @error ) EndIf Local $s_key = 'HKEY_CURRENT_USER\Software\MyApp' RegWrite( $s_key ) If @error Then MsgBox( $MB_ICONERROR , 'ERROR' , 'Error writing registry:' & @CRLF & 'Key: ' & $s_key & 'ErrorCode: ' & @error ) EndIf Becomes into this:
      RegistryWrite( 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control' , 'value1' , 'REG_SZ' , 'data1' ) RegistryWrite( 'HKEY_CURRENT_USER\Software\MyApp' ) Func RegistryWrite( $s_key , $s_value_name = NULL , $s_value_type = NULL , $value_data = NULL ) RegWrite( $s_key , $s_value_name , $s_value_type, $value_data ) If @error Then MsgBox( $MB_ICONERROR , 'ERROR' , 'Error writing registry:' & @CRLF & 'Key: ' & $s_key & @CRLF & 'Value: ' & $s_value_name & @CRLF & 'Type: ' & $s_value_type & @CRLF & 'Data: ' & $value_data & @CRLF & 'ErrorCode: ' & @error ) EndIf EndFunc And I'm just confused how to properly pass the optional parameters to target function as documentation says that NULL can be evaluated as 0 in mathematical expressions. Maybe "Default" or something else is more suitable?
      I undersand that I can write separate wrappers for each number of arguments or handle each optional argument value and call target function with exact arguments number, but the goal is to keep code as clean and as simple as possible.
      So i have two questions:
      1. What is the _proper_ and maybe universal way to pass optional parameters to wrapped functions?
      2. Can I achive the same result without wrapping every function? Maybe some AutoIt execution flags to always popup a error that happens and stop execution?