Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA: Mausbeweger Mausjiggler

Forumthread: VBA: Mausbeweger Mausjiggler

VBA: Mausbeweger Mausjiggler
21.01.2026 16:58:39
JolRi
Hallo zusammen,
auf der Suche nach obigem bin ich auf zwei Threads hier im Forum gestoßen.

https://www.herber.de/forum/archiv/1824to1828/1825394_VBA_Mouse_Jiggler.html
https://www.herber.de/forum/archiv/296to300/299946_Maus_bewegen.html

Funktioniert bei mir leider nicht. Erhalte die Meldung:
"Fehler beim Kompilieren: Der Code in diesem Projekt mussfür die Verwendung auf 64-bit-Systemen aktualisiert werden.
Überarbeiten und aktualisieren Sie Declare-Anweisungen und markieren Sie sie mit dem PtrSafe-Attribut."

https://www.herber.de/bbs/user/180065.png

Da ich absoluter VBA-Neuling bin komme ich an dieser Stelle nicht weiter. Kann mir bitte jemand behilflich sein?
Vielen Dank vorab.

Viele Grüße JolRi
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Mausbeweger Mausjiggler
21.01.2026 17:04:10
Onur
Schau dir mal die Deklarition darunter GENAU an, da ist es richtig ...
PTRSAFE Function statt nur Function
AW: VBA: Mausbeweger Mausjiggler
22.01.2026 12:32:25
schauan
Hallöchen,

set WshShell = CreateObject("WScript.Shell")

do
WshShell.SendKeys "{SCROLLLOCK}"
WScript.Sleep 8
WshShell.SendKeys "{SCROLLLOCK}"
WScript.Sleep 80000
loop


Code in einem Editor eingeben, als vbs speichern und ausführen.

Statt SCROLLLOCK kannst Du auch eine anderen Taste nehmen, je nachdem, was nicht stört. Diese wäre für Excel eventuell etwas kontraproduktiv ;-)
Ggf. reicht dann 1x Sendkeys.
Man kann / sollte ggf. den Status der Taste abfragen und danach entscheiden, ob man es nochmal sendet ;-)

Hinweise:
Als VBS
- läuft's unabhängig von Excel
- läuft's dann bis zum Runterfahren ...
- "lange" Sleep-Zeit in Abhängigkeit von den Einstellungen zur Bildschirmsperre möglichst groß wählen
Anzeige
AW: VBA: Mausbeweger Mausjiggler
21.01.2026 17:56:18
volti
Hallo JolRi,

wenn nur die Maus einmal hin und her bewegt werden soll reicht dann diese Version für 32/64-Bit VB7.

Private Declare PtrSafe 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 MausMove()
Dim PT As POINTAPI

GetCursorPos PT
SetCursorPos PT.x, PT.y + 4
SetCursorPos PT.x, PT.y - 4
End Sub


Gruß KH
Anzeige
AW: VBA: Mausbeweger Mausjiggler
21.01.2026 18:05:42
volti
Ein Update...

Private Declare PtrSafe 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 MouseJiggler()
Dim PT As POINTAPI

GetCursorPos PT
SetCursorPos PT.x, PT.y + 4
SetCursorPos PT.x, PT.y - 4
Application.OnTime Now + TimeValue("00:00:30"), "MouseJiggler" ' Alle 30 Sekunden wiederholen
End Sub


Gruß KH
Anzeige
AW: VBA: Mausbeweger Mausjiggler
21.01.2026 22:07:52
JolRi
Danke schön. Habe ich auch getestet, funktioniert. Leider sperrt sich der Bildschirm trotzdem.
AW: VBA: Mausbeweger Mausjiggler
21.01.2026 18:05:26
JolRi
Hallo Onur,
so einfach? Oh man, vielen Dank. Makro läuft und funktioniert. Leider sperrt sich der Bildschirm trotzdem. Muss ich noch weiter schauen.
VG
AW: VBA: Mausbeweger Mausjiggler
21.01.2026 18:16:53
volti
Hallo,

bei mir hatte das früher so funktioniert.

Vielleicht muss bei Dir etwas Zeit zwischen den Mausbewegungen sein, das kannst Du mit dem Sleep-Funktion erreichen.
Oder ggf. auch mal DoEvents verwenden..

Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Declare PtrSafe 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 MouseJiggler()
Dim PT As POINTAPI

GetCursorPos PT
SetCursorPos PT.x + 10, PT.y + 10: Sleep 100 ' 100 ms warten
' DoEvents
SetCursorPos PT.x - 10, PT.y - 10
Application.OnTime Now + TimeValue("00:00:30"), "MouseJiggler" ' Alle 30 Sekunden wiederholen
End Sub


Gruß KH

Anzeige
AW: VBA: Mausbeweger Mausjiggler
22.01.2026 10:55:25
JolRi
Guten Morgen KH,

danke schön. Makro hat einwandfrei funktioniert. Leider sperrt sich mein Bildschirm trotzdem.

VG JolRi
AW: VBA: Mausbeweger Mausjiggler
22.01.2026 11:03:22
Volti
Schade, kann aus der Ferne dann nicht mehr weiterhelfen.
Vielleicht klappt es ja mit Onurs Vorschlag.
Gruß Karl-Heinz
AW: VBA: Mausbeweger Mausjiggler
22.01.2026 12:54:54
Onur
Ich habe dir doch auch eine Lösung gepostet !
Anzeige
gerne !
21.01.2026 20:55:48
Onur
AW: VBA: Mausbeweger Mausjiggler
22.01.2026 00:11:40
Onur
Nimm DAS hier:
https://www.herber.de/bbs/user/180069.xlsm

Erklärung:
Alle 60 s (kannst du ändern) wird ein "Break" per SendKeys gesendet, was die Sperrung verhindert, und zwar solange, bis die Datei geschlossen oder minimiert wird.
Bei jedem Zell- oder Blattwechsel wird der Timer neu gestartet.
Bitte ändere nix daran (ausser vielleicht die Prozedurnamen), weil OnTimer-Programmierung sehr kritisch ist.
Anzeige

Forumthreads zu verwandten Themen

Anzeige