Wyobraź sobie, że masz w nocy do wykonania długotrwałe zadanie. Jeśli na komputerze nic się dzieje mogą się zdarzyć różne niespodziewane rzeczy: komputer przejdzie w stan czuwania, rozłączy się sesja zostaniesz wylogowany itp. No a oczywiście nie chce ci się siedzieć całą noc, żeby tylko ruszać myszką…
No więc napiszmy program ruszający myszką. Co będzie potrzebne?
- klasa [System.Windows.Forms.Cursor], a dokładniej jej właściwość Position, która to opisuje aktualne położenie kursora myszki w punktach
- klasa System.Drawing.Point, która jak sama nazwa wskazuje pozwala na zapamiętanie współrzędnych punktu
Aby sprawdzić gdzie znajduje się kursor wykonaj polecenie:
[System.Windows.Forms.Cursor]::Position
X i Y to właściwości opisujące aktualne położenie kursora. Jeśli chcesz zmienić jego położenie, to zmień wartość X lub Y, np. tak:
[System.Windows.Forms.Cursor]::Position = `
New-Object -TypeName System.Drawing.Point -ArgumentList 100,1000
New-Object tworzy tutaj obiekt typu System.Drawing.Point i wywołuje dla niego dwuargumentowy konstruktor przekazując nowe współrzędne lokalizacji kursora myszki. Tak utworzony obiekt jest następnie przypisywany do właściwości Position, co powoduje zmianę położenia kursora.
Żeby zrealizować założone na początku zadanie, skrypt ruszający myszką mógłby wyglądać o tak:
while ($true)
{
$point = [System.Windows.Forms.Cursor]::Position
$point.X+=1
[System.Windows.Forms.Cursor]::Position = $point
Start-Sleep -Seconds 60
$point = [System.Windows.Forms.Cursor]::Position
$point.x-=1
[System.Windows.Forms.Cursor]::Position = $point
Start-Sleep -Seconds 60
}
Pozdrowienia dla Chris’a, który miał ten dziwny pomysł i zmobilizował mnie do szukania rozwiązania.
Dokumentacja klas, o których tutaj mowa: https://msdn.microsoft.com/pl-pl/library/system.drawing.point(v=vs.110).aspx
Komentarze:
[…] http://www.mobilo24.eu/powershell-mousemove-czyli-ruszanie-myszka/ […]