kalixe Posted July 15, 2010 Share Posted July 15, 2010 hello, I would like duplicate the pointing device in two windowss (the same application) running on the same system. I mean duplicate the mouse movements and clicks into client parent on another window, to have bypass devices (two mouse cursors) even more, each dedicated to one window. This is very technical and very complicated to implement for my part, but may be some of the tracks. The question "very difficult to do" is : How to simulate multiple pointing devices through a single mouse, even the same movements and clicks, only the coordinates of each change, by offering windows. For example, I have 2 notepad application, when I put my mouse on one, a mouse cursor appears on the second and do the same things than the one. Anybody knows ? Link to comment Share on other sites More sharing options...
Altometer Posted July 15, 2010 Share Posted July 15, 2010 hello,I would like duplicate the pointing device in two windowss (the same application) running on the same system.I mean duplicate the mouse movements and clicks into client parent on another window, to have bypass devices (two mouse cursors) even more, each dedicated to one window. This is very technical and very complicated to implement for my part, but may be some of the tracks.The question "very difficult to do" is : How to simulate multiple pointing devices through a single mouse, even the same movements and clicks, only the coordinates of each change, by offering windows.For example, I have 2 notepad application, when I put my mouse on one, a mouse cursor appears on the second and do the same things than the one.Anybody knows ?If it is not multitouch then it can have the illusion of being simultanious.Simply set up a program to capture mouse input within one window, and use mouseclick(x,y,0) to set a zero delay click. Then set something to return the mouse to it's original position. This will create the illusion of the program working like you want it to.If you must you can even set up a graphic to follow the mouse on the duplicated window. Link to comment Share on other sites More sharing options...
kalixe Posted July 15, 2010 Author Share Posted July 15, 2010 If it is not multitouch then it can have the illusion of being simultanious.Simply set up a program to capture mouse input within one window, and use mouseclick(x,y,0) to set a zero delay click. Then set something to return the mouse to it's original position. This will create the illusion of the program working like you want it to.If you must you can even set up a graphic to follow the mouse on the duplicated window.I tried yet and despite the zero delay, the result is awful ! It's not What I want. Link to comment Share on other sites More sharing options...
TheLaughingMan Posted July 15, 2010 Share Posted July 15, 2010 expandcollapse popupHotKeySet("{ESC}", "_exit") HotKeySet("{F10}", "_secondMouse") $mouse = MouseGetPos() $dll = DllOpen("user32.dll") $toggle = 0 #include <Misc.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <EditConstants.au3> #include <StaticConstants.au3> $MiceX2 = GUICreate("MiceX2", 184, 92, 192, 124) $xDistanceInput = GUICtrlCreateInput("200", 128, 0, 49, 21) $xInfoLabel = GUICtrlCreateLabel("X Distance from Mouse", 8, 4, 114, 17) $yInfoLabel = GUICtrlCreateLabel("Y Distance from Mouse", 8, 28, 114, 17) $yDistanceInput = GUICtrlCreateInput("0", 128, 24, 49, 21) $hotkeyInfo1 = GUICtrlCreateLabel("Start = F10", 16, 48, 83, 17) $hotkeyInfo1 = GUICtrlCreateLabel("Stop = F9", 16, 64, 83, 17) $hotkeyInfo2 = GUICtrlCreateLabel("Exit = ESC", 16, 78, 54, 17) GUISetState(@SW_SHOW) Opt("GUIOnEventMode", 1) ; Change to OnEvent mode GUISetOnEvent($GUI_EVENT_CLOSE, "_exit") _load() While 1 Sleep(100) WEnd Func _secondMouse() While 1 Sleep(25) $mouse = MouseGetPos() ToolTip("^", $mouse[0] + GUICtrlRead($xDistanceInput) - 10, $mouse[1] + GUICtrlRead($yDistanceInput)) If _IsPressed("01", $dll) Then _mouseClick() If _IsPressed("1B", $dll) Then _save() Exit EndIf If _IsPressed("78", $dll) Then ToolTip("") ExitLoop EndIf WEnd EndFunc ;==>_secondMouse Func _mouseClick() ToolTip("") MouseUp("left") MouseMove($mouse[0] + GUICtrlRead($xDistanceInput), $mouse[1] + GUICtrlRead($yDistanceInput), 0) MouseDown("left") Sleep(50) MouseUp("left") MouseMove($mouse[0], $mouse[1], 0) ToolTip("^", $mouse[0] + GUICtrlRead($xDistanceInput), $mouse[1] + GUICtrlRead($yDistanceInput)) EndFunc ;==>_mouseClick Func _exit() DllClose($dll) _save() Exit EndFunc ;==>_exit Func _save() IniWrite(@ScriptDir & "\MouseX2.ini", "Distance", "X", GUICtrlRead($xDistanceInput, 1)) IniWrite(@ScriptDir & "\MouseX2.ini", "Distance", "Y", GUICtrlRead($yDistanceInput, 1)) EndFunc ;==>_save Func _load() GUICtrlSetData($xDistanceInput, IniRead(@ScriptDir & "\MouseX2.ini", "Distance", "X", "200")) GUICtrlSetData($yDistanceInput, IniRead(@ScriptDir & "\MouseX2.ini", "Distance", "Y", "0")) EndFunc ;==>_load Tested it on two windows of Paint, and it works well xdelage and mesale0077 2 Link to comment Share on other sites More sharing options...
kalixe Posted July 16, 2010 Author Share Posted July 16, 2010 (edited) good work ! But it's not a true mouse, just a tootip and a move mouse when I click. Look this video and look at the different windows each with their own mouse, even the passage of various mouse over objects they can move highlight or change the icon of mouse cursor. I think that each mouse are part of a window and I think the software must use DirectX to simulate the mouse in different windows, I do not know anything about DirectX anyone knows how to use it to simulate several mouse cursor ? I found something interesting about DirectX with AutoIt: http://www.autoitscript.com/forum/index.php?showtopic=109185 Someone has already use? Edited July 16, 2010 by kalixe Link to comment Share on other sites More sharing options...
xdelage Posted November 5, 2015 Share Posted November 5, 2015 (edited) expandcollapse popupHotKeySet("{ESC}", "_exit") HotKeySet("{F10}", "_secondMouse") $mouse = MouseGetPos() $dll = DllOpen("user32.dll") $toggle = 0 #include <Misc.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <EditConstants.au3> #include <StaticConstants.au3> $MiceX2 = GUICreate("MiceX2", 184, 92, 192, 124) $xDistanceInput = GUICtrlCreateInput("200", 128, 0, 49, 21) $xInfoLabel = GUICtrlCreateLabel("X Distance from Mouse", 8, 4, 114, 17) $yInfoLabel = GUICtrlCreateLabel("Y Distance from Mouse", 8, 28, 114, 17) $yDistanceInput = GUICtrlCreateInput("0", 128, 24, 49, 21) $hotkeyInfo1 = GUICtrlCreateLabel("Start = F10", 16, 48, 83, 17) $hotkeyInfo1 = GUICtrlCreateLabel("Stop = F9", 16, 64, 83, 17) $hotkeyInfo2 = GUICtrlCreateLabel("Exit = ESC", 16, 78, 54, 17) GUISetState(@SW_SHOW) Opt("GUIOnEventMode", 1) ; Change to OnEvent mode GUISetOnEvent($GUI_EVENT_CLOSE, "_exit") _load() While 1 Sleep(100) WEnd Func _secondMouse() While 1 Sleep(25) $mouse = MouseGetPos() ToolTip("^", $mouse[0] + GUICtrlRead($xDistanceInput) - 10, $mouse[1] + GUICtrlRead($yDistanceInput)) If _IsPressed("01", $dll) Then _mouseClick() If _IsPressed("1B", $dll) Then _save() Exit EndIf If _IsPressed("78", $dll) Then ToolTip("") ExitLoop EndIf WEnd EndFunc ;==>_secondMouse Func _mouseClick() ToolTip("") MouseUp("left") MouseMove($mouse[0] + GUICtrlRead($xDistanceInput), $mouse[1] + GUICtrlRead($yDistanceInput), 0) MouseDown("left") Sleep(50) MouseUp("left") MouseMove($mouse[0], $mouse[1], 0) ToolTip("^", $mouse[0] + GUICtrlRead($xDistanceInput), $mouse[1] + GUICtrlRead($yDistanceInput)) EndFunc ;==>_mouseClick Func _exit() DllClose($dll) _save() Exit EndFunc ;==>_exit Func _save() IniWrite(@ScriptDir & "\MouseX2.ini", "Distance", "X", GUICtrlRead($xDistanceInput, 1)) IniWrite(@ScriptDir & "\MouseX2.ini", "Distance", "Y", GUICtrlRead($yDistanceInput, 1)) EndFunc ;==>_save Func _load() GUICtrlSetData($xDistanceInput, IniRead(@ScriptDir & "\MouseX2.ini", "Distance", "X", "200")) GUICtrlSetData($yDistanceInput, IniRead(@ScriptDir & "\MouseX2.ini", "Distance", "Y", "0")) EndFunc ;==>_load Tested it on two windows of Paint, and it works wellHello guys, new here, and unfamiliar with AutoIt I tried to modify that script to make it a triple cursor / clicks instead of double.I managed to have triple clicks somewhat however the 3 mouse markers are now blinking and cannot be seen (they disappear) most of the time so I guess there is something wrong. Would one of you experts give it a quick look and adapt this code to make it triple cursor / clicks ? I'd be really really grateful, thank you Edited November 5, 2015 by xdelage Link to comment Share on other sites More sharing options...
xdelage Posted November 5, 2015 Share Posted November 5, 2015 Added lines 43 and 60 but like I said the cursors are blinking, especially the middle one which cannot be seen almost always, although it is thereexpandcollapse popup#cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.2 Author: myName Script Function: Template AutoIt script. #ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here HotKeySet("{ESC}", "_exit") HotKeySet("{F10}", "_secondMouse") $mouse = MouseGetPos() $dll = DllOpen("user32.dll") $toggle = 0 #include <Misc.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <EditConstants.au3> #include <StaticConstants.au3> $MiceX2 = GUICreate("MiceX2", 184, 92, 192, 124) $xDistanceInput = GUICtrlCreateInput("200", 128, 0, 49, 21) $xInfoLabel = GUICtrlCreateLabel("X Distance from Mouse", 8, 4, 114, 17) $yInfoLabel = GUICtrlCreateLabel("Y Distance from Mouse", 8, 28, 114, 17) $yDistanceInput = GUICtrlCreateInput("0", 128, 24, 49, 21) $hotkeyInfo1 = GUICtrlCreateLabel("Start = F10", 16, 48, 83, 17) $hotkeyInfo1 = GUICtrlCreateLabel("Stop = F9", 16, 64, 83, 17) $hotkeyInfo2 = GUICtrlCreateLabel("Exit = ESC", 16, 78, 54, 17) GUISetState(@SW_SHOW) Opt("GUIOnEventMode", 1) ; Change to OnEvent mode GUISetOnEvent($GUI_EVENT_CLOSE, "_exit") _load() While 1 Sleep(100) WEnd Func _secondMouse() While 1 Sleep(25) $mouse = MouseGetPos() ToolTip("^", $mouse[0] + GUICtrlRead($xDistanceInput) - 10, $mouse[1] + GUICtrlRead($yDistanceInput)) ToolTip("^", $mouse[0] + GUICtrlRead($xDistanceInput) + GUICtrlRead($xDistanceInput) - 10, $mouse[1] + GUICtrlRead($yDistanceInput) + GUICtrlRead($xDistanceInput) + GUICtrlRead($yDistanceInput)) If _IsPressed("01", $dll) Then _mouseClick() If _IsPressed("1B", $dll) Then _save() Exit EndIf If _IsPressed("78", $dll) Then ToolTip("") ExitLoop EndIf WEnd EndFunc ;==>_secondMouse Func _mouseClick() ToolTip("") MouseUp("left") MouseMove($mouse[0] + GUICtrlRead($xDistanceInput), $mouse[1] + GUICtrlRead($yDistanceInput), 0) MouseMove($mouse[0] + GUICtrlRead($xDistanceInput) + GUICtrlRead($xDistanceInput), $mouse[1] + GUICtrlRead($yDistanceInput) + GUICtrlRead($xDistanceInput) , 0) MouseDown("left") Sleep(50) MouseUp("left") MouseMove($mouse[0], $mouse[1], 0) ToolTip("^", $mouse[0] + GUICtrlRead($xDistanceInput), $mouse[1] + GUICtrlRead($yDistanceInput)) EndFunc ;==>_mouseClick Func _exit() DllClose($dll) _save() Exit EndFunc ;==>_exit Func _save() IniWrite(@ScriptDir & "\MouseX2.ini", "Distance", "X", GUICtrlRead($xDistanceInput, 1)) IniWrite(@ScriptDir & "\MouseX2.ini", "Distance", "Y", GUICtrlRead($yDistanceInput, 1)) EndFunc ;==>_save Func _load() GUICtrlSetData($xDistanceInput, IniRead(@ScriptDir & "\MouseX2.ini", "Distance", "X", "200")) GUICtrlSetData($yDistanceInput, IniRead(@ScriptDir & "\MouseX2.ini", "Distance", "Y", "0")) EndFunc ;==>_load Link to comment Share on other sites More sharing options...
Lacorte Posted July 12, 2019 Share Posted July 12, 2019 There is any way to make the second cursor drag and drop and click and hold. Also, there is any way to make the second cursor looks like the main cursor? Thanks in advance! Link to comment Share on other sites More sharing options...
Developers Jos Posted July 12, 2019 Developers Share Posted July 12, 2019 Welcome to the AutoIt forum. Unfortunately you appear to have missed the Forum rules on your way in. Please read them now - particularly the bit about not discussing game automation - and then you will understand why you will get no help and this thread will now be locked. See you soon with a legitimate question I hope. The Moderation team SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Recommended Posts