Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1824to1828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Mouse Jiggler?

VBA Mouse Jiggler?
12.04.2021 07:51:51
Klaus
Hallo,
ich habe bereits ein Makro von Nepumuk, mit dem ich Mausclicks ausführen kann. Jetzt möchte ich aber nicht clicken, sondern die Maus nur bewegen. Also wenn WhereAmI ergibt 100,50 möchte ich die Maus 4 Pixel hin- und zurück bewegen lassen (100-104,50 und 104-100,50) ohne zu clicken. Wie geht das?
Hintergrund: Ich habe keinen Zugriff auf die Energiesparkonfiguration meines PC's. Ich arbeite mit zwei PC's gleichzeitig, der zweite lädt passiv alle 5 Minuten Daten aus einer ACCDB und zeigt diese auf einem großem Monitor an - mein Dashboard. Hier möchte ich verhindern, dass ich alle 15 Minuten neu anmelden muss.
Ja, ich könnte die IT fragen. Die ist aber etwas .... schwerfällig :-) Darum frage ich lieber euch.
Andere Kollegen haben sich für ähnliche Zwecke einen USB Mouse Jiggler zugelegt, das möchte ich nicht.
LG,
Klaus
Option Explicit
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr)
Private Declare PtrSafe Sub mouse_event Lib "user32.dll" ( _
ByVal dwFlags As Long, _
ByVal dx As Long, _
ByVal dy As Long, _
ByVal cButtons As Long, _
ByVal dwExtraInfo As LongPtr)
Private Declare PtrSafe Function SetCursorPos Lib "user32.dll" ( _
ByVal x As Long, _
ByVal y As Long) As Long
Private Const MOUSEEVENT_LEFTDOWN As Long = &H2
Private Const MOUSEEVENT_LEFTUP As Long = &H4
Public Sub Test()
Call MouseClick(102, 19)
End Sub
Private Sub MouseClick(ByVal pvlngXPos As Long, ByVal pvlngYPos As Long)
Call SetCursorPos(pvlngXPos, pvlngYPos)
Call mouse_event(MOUSEEVENT_LEFTDOWN, 0&, 0&, 0&, 0)
Call mouse_event(MOUSEEVENT_LEFTUP, 0&, 0&, 0&, 0)
End Sub
Sub WhereAmI()
Dim pTargetPoint As POINTAPI
Dim lRetVal As Long
lRetVal = GetCursorPos(pTargetPoint)
MsgBox "Meine Position:" & vbLf & _
pTargetPoint.x & "," & pTargetPoint.y
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Mouse Jiggler?
12.04.2021 10:29:22
ChrisL
Hi
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare PtrSafe Function SetCursorPos Lib "user32.dll" ( _
ByVal x As Long, _
ByVal y As Long) As Long
Sub MyMove()
Dim pTargetPoint As POINTAPI
Dim lRetVal As Long
lRetVal = GetCursorPos(pTargetPoint)
Call SetCursorPos(pTargetPoint.x, pTargetPoint.y + 4)
Call SetCursorPos(pTargetPoint.x, pTargetPoint.y - 4)
End Sub
cu
Chris
AW: VBA Mouse Jiggler?
12.04.2021 12:03:56
Klaus
Hallo Chris,
vielen Dank - es funktioniert. D.H. getestet habe ich dass er tatsächlich die Maus bewegt, habe daran aber auch nicht gezweifelt.
Hinten noch ein "Application.Ontime now+"00:00:30" dran gebastelt und jetzt lasse ich es erstmal laufen. Wenn mein Screensaver doch angeht melde ich mich nochmal :-) Wenn nicht hat alles geklappt wie vorgestellt!
LG,
Klaus M.
Anzeige
Schade ...
12.04.2021 12:26:23
Klaus
... der Jiggler funktioniert, aber der PC geht trotzdem auf Standby.
Hat noch jemand eine Idee, für die es keine Adminrechte, keine Drittprogramme und keine USB-Tools braucht?
LG,
Klaus M.
AW: Kein Programm, aber eine Ente?
12.04.2021 13:05:54
EtoPHG
Vielleicht ein Schluckspecht über der Tastatur?
;-) Hansueli
AW: Kein Programm, aber eine Ente?
12.04.2021 13:08:13
Klaus
Hansueli,
da gab es doch die eine Simpsons-Folge, in der Homer Home Office macht und seine ganze Arbeit an einen solchen Vogel auslagert? :-)
"Tastatur" ist aber der richtige Hinweis, dies hier funktioniert:
Sub MyMove()
Application.SendKeys ("{DOWN}")
Application.SendKeys ("{UP}")
Application.OnTime Now + TimeValue("00:00:13"), "MyMove"
End Sub
Ist zwar nicht ganz so elegant wie die 4-Pixel Maus hin und her, aber an dem PC läuft NIE etwas anderes als mein Dashboard insofern wird das "runter hoch" auch nie mit anderen Programmen in Konflikt kommen.
LG,
Klaus M.
Anzeige
AW: Kein Programm, aber eine Ente?
12.04.2021 13:28:29
ChrisL
AW: Kein Programm, aber eine Ente?
15.04.2021 09:19:13
MRUTOR
Hallo nochmals Klaus,
da ich auch nach einer solchen Moeglichkeit gesucht habe, bin ich nach laengerer Suche auf einen Beitrag aus 2009 gestossen. Dort wurde ein Code von Nepumuk benutzt fuer die Mausbewegung. Ich habe das mal probiert und bei mir funktioniert es. Der Bildschirmschoner schaltet sich nicht ein. Vielleicht hilft es dir auch, um das laestige SendKeys zu vermeiden. Hier der Code:
Option Explicit
Private Declare PtrSafe Function SetCursorPos Lib "user32.dll" (ByVal x As Long, ByVal y As  _
Long) As Long
Private Declare PtrSafe Function GetCursorPos Lib "user32.dll" (ByRef lpPoint As POINTAPI) As  _
Long
Private Declare PtrSafe Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Long, ByVal dx As  _
Long, ByVal dwdata As Long, ByVal dwExtraInfo As Long)
Private Type POINTAPI
x As Long
y As Long
End Type
Private Const MOUSEEVENT_LEFTDOWN = &H2
Private Const MOUSEEVENT_LEFTUP = &H4
Public gblnStop As Boolean
Public Sub Block_Screensaver()
Dim udtPositon As POINTAPI
If Not gblnStop Then
Call GetCursorPos(udtPositon)
Call SetCursorPos(30&, 10&)
Call mouse_event(MOUSEEVENT_LEFTDOWN, 0&, 0&, 0&)
Call mouse_event(MOUSEEVENT_LEFTUP, 0&, 0&, 0&)
Call SetCursorPos(udtPositon.x, udtPositon.y)
Application.OnTime Time + TimeSerial(0, 10, 0), "Block_Screensaver"
End If
End Sub

Gruss Tor
Anzeige
AW: Kein Programm, aber eine Ente?
15.04.2021 14:10:21
EtoPHG
Hallo Tor,
Das mag auf einfachen privaten PC's funktionieren. Für FirmenPC's gelten oft andere Settings. Meiner z.B. geht automatisch in Energiespar-+Windows-Lock-Modus falls keine Cursorbewegungen innerhalb einer definierten Zeit stattgefunden haben, auch wenn im Hintergrund noch Prozesse (weiter) werkeln.
Darum würde Nepumuks Code bei meinem auch nicht funktionieren.
Gruess Hansueli
AW: Kein Programm, aber eine Ente?
15.04.2021 14:16:26
Klaus
Hallo Tor und Hansueli,
versuch macht klug :-)
Ich probiers aus und melde mich.
LG,
Klaus M.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge