Kann ich den Mauszeiger durch ein Skript bewegen?
Ich will die Maus flüssig bewegen nach links und rechts
Egal ob cmd, Powershell, was weiß ich, sogar wenn das mit Javascript gehen würde.
Ich will kein Extraprogramm installieren wenns geht.
Viele Grüße
5 Stimmen
2 Antworten
Mausanimation hatte ich doch schon mal: https://www.gutefrage.net/frage/kann-ich-mit-einer-batch-datei-meine-maus-bewegen#answer-343025709
...und natürlich mache ich das (wie immer bei mir) nur mit systemeigenen Resourcen.
Da der Aufruf von Powershellscripten sich gewöhnlich per Rechtsklick recht Sperrig gestaltet verwende ich HybridBatch. Dies bedeutet die trickreiche Verwendung von Batch und Powershell in einer Batchdatei.
hier nochmal das Grundscript:
MouseMove1.cmd
<# : batch portion Diese Zeile nicht entfernen,maskiert die Batch
@echo off
rem ab hier darfst Du die Batch verändern
rem Maus bewegen
call :MoveMouse 0 0 1000
call :MoveMouse 1024 768 7000
call :MoveMouse 200 26 1000
pause
rem bis hier darfst Du die Batch verändern
exit /b
::::::::::::::::: Subroutines :::::::::::::::::::::::::
:MoveMouse %1=ZielX %2=ZielY %3=Zeit in Millisekunden
echo Gehe zu Punkt: %~1 , %~2 in %~3 Millisekunden
powershell -noprofile "$DestPosX=%~1;$DestPosY=%~2;$MoveTime=%~3; iex (${%~f0} | out-string)"
exit /b
: end batch / begin powershell Diese Zeile nicht entfernen,maskiert die Batch #>
Add-Type -AssemblyName System.Windows.Forms
# aktuelle Mauspoition
$x = [double]([System.Windows.Forms.Cursor]::Position).x
$y = [double]([System.Windows.Forms.Cursor]::Position).y
$FPS=60
#Anzahl der Schritte um de Bewegungszeit zum Ziel zu kommen
$Steps=([math]::Round($MoveTime /1000 * $FPS))
#Schrittweite pro Frame
$StepWidthX=($DestPosX - $X) /$Steps
$StepWidthY=($DestPosY - $Y) /$Steps
#um am Ende Rundungsfehler bei der Addition abzufangen einen Schritt weniger
for ($i=1;$i -lt $Steps ;$i++) {
$x += $StepWidthX
$y += $StepWidthY
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(([math]::Round($x)), ([math]::Round($y)))
#Schritte anzeigen ,zum abschalten # vor die nächste Zeile setzen
'Step Nr: {0,4} ; x = {1,4} ; y = {2,4}' -f $i,$([math]::Round($x)),$([math]::Round($y))
Start-Sleep -Milliseconds ($MoveTime/$steps)
}
#letzter gezielter Schritt zur Endposition
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($DestPosX, $DestPosY)
die erweiterte Version poste ich an dieser Stelle nicht nochmals.
Mit nem Powershell Script geht das zwar, ich würde einfach Autohotkey nehmen. Das muss man im Zweifel auch nicht installieren.
Autohotkey nutz herzlich wenig, wenn man das Script auch auf einem anderen Rechner als dem eigenen ausführen möchte.
In dieser Hinsicht, wäre es eine Zumutung von einen Nutzer die Installation einer entsprechenden Software zu erwarten.
Dies trifft im Übrigen auch auf Python und andere Runtimeumgebungen zu. (Mit Vorbehalt sogar auf Java. Wobei diese inzwischen schon als Quasistandard gilt. )
Ein Doppelklick auf ein Setup ist eine Zumutung? Huiuiui,
Hier geht es nicht um die Fähigkeit etwas zu installieren oder einem System zuzuführen, sondern die Berechtigung/ den Willen dies zu tun.
Ich warte turnusmäßig den Prozesssteuerungsrechner einer Industrieanlage. An das Ding kommt kein Normalsterblicher ran und die welche rankommen , durfen keine Datenträger anschließen... alles wird live eingegeben...
Oma Meier ist auch klug, die installiert nichts, was sie nicht kennt oder der Computerfritze in der Nachbarschaft (ich) sagt ihr, das die Sache in Ordnung ist. Die Frau ist klüger als alle Noobs zusammen hier im Forum. (Die hatte noch nie Viren oder Bluescreens und andere seltsame Sachen)
...und natürlich sollte man sich 10 mal überlegen ob man eine EXE-Datei unbekannter Herkunft ausführt.
Da lobe ich mir doch ein gesundes Script (auf Systemresourcen basiert) . Selbst ein Laie kann den Code einsehen und wenn er nichts davon versteht , jemanden Fragen was der Code tut.
Würdest Du eine EXE-Datei welche ich Dir zukommen lasse, einfach so auf Deinem Rechner ausführen? Mut oder Leichtsinn? Würdest Du mir wirklich über den Weg trauen... keine Sorge der Virenscanner wird keinen Verdacht schöpfen... den kannst du anlassen...🤣🤡😱
Powershell-Scripts sind
Man kann vieles umschiffen .
Siehe mein obiges Script ist resistent gegen ziemlich alle Restriktionen.
Einfach eine Batch welche sich selbst in einem Scriptblock lädt und magisch zum Powershellcode mutet... "eval" ausgeführt... als würde der Code live in die Powershellconsole eingegeben....
Keinerlei Gegenwehr. .
was ist das
Ich will auch festlegen zu welchen pixeln die maus läuft
Geht damit. Wie gesagt, du kannst schon ne Powershell auch nehmen, aber das wird fummeliger als Autohotkey.
Ich benutze auch Autohotkey und finde das lohnt sich auch herunterzuladen, obwohl du das ja nicht willst. Ich finde es sehr nützlich!
AutoHotkey