Pohyb myší pomocí Pythonu ve Windows 10

Karmelos

  • *****
  • 1 044
    • Zobrazit profil
    • E-mail
Pohyb myší pomocí Pythonu ve Windows 10
« kdy: 01. 10. 2020, 10:28:57 »
Doporučili byste mi prosím bezpečný open source hýbač myší, nejlépe v portable verzi?
Případně poradili byste co opravit - uprasil jsem si podle příkladů z netu tenhle kus kódu, ale není spolehlivý...Několikrát jsem ho zkoušel, skript padá a komp se zamyká.

Kód: [Vybrat]
  File "<ipython-input-1-af86fbd70ca6>", line 1, in <module>
    runfile('C:/Python/mousemover.py', wdir='C:/Python')

  File "c:\users\xxx\appdata\local\programs\python\python37\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "c:\users\xxx\appdata\local\programs\python\python37\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Python/mousemover.py", line 39, in <module>
    moveit()

  File "C:/Python/mousemover.py", line 34, in moveit
    win32api.SetCursorPos((int(cx)+dx,int(cy)+dy))

error: (0, 'SetCursorPos', 'No error message is available')

Kód: [Vybrat]
import sys
import win32api
import math
import time

print("Start mouse move")
tx = input("Please enter number of seconds:\n")
tx =int(tx)

current = win32api.GetCursorPos()
cx = current[0]
cy = current[1]

print ("Moving every ", tx, " seconds")
print ("Press 'q' to quit")

def moveit():
        current = win32api.GetCursorPos()
        cx = current[0]
        cy = current[1]
       
        for i in range(360):
            dx=int(math.sin(i)*10)
            dy=int(math.cos(i)*10)
            win32api.SetCursorPos((int(cx)+dx,int(cy)+dy))

while True:
  moveit()
  if win32api.GetAsyncKeyState(ord('Q')):
      print ("Moving ended")
      sys.exit()
  time.sleep(tx)
« Poslední změna: 01. 10. 2020, 12:17:09 od Petr Krčmář »
Gréta je nejlepší.


Re:python mouse mover W10
« Odpověď #1 kdy: 01. 10. 2020, 11:47:03 »
Pokud ti staci poweshell tak:

param($minutes = 240)

$myShell = New-Object -com "Wscript.Shell"

for ($i = 0; $i -lt $minutes; $i++) {
  Start-Sleep -Seconds 240
  $myShell.sendkeys(" ")
}

posila mezeru kozdych 240 sekund, bezi 240 minut

Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #2 kdy: 01. 10. 2020, 12:46:11 »
zkus tohle

Kód: [Vybrat]
SetTimer, MoveMouse, 60000 ; Run MoveMouse every 1 minute

MoveMouse:
    MouseMove, 1, 0, 1, R  ;Move the mouse one pixel to the right
    MouseMove, -1, 0, 1, R ;Move the mouse back one pixel
return

potřebuješ na to ahk ve kterém to buď spustíš, nebo zkompiluješ

tecka

  • ***
  • 152
    • Zobrazit profil
    • E-mail
Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #3 kdy: 03. 10. 2020, 05:54:46 »
Windows mají funkci, kterou si program může říct, že potřebuje display i když se nic neděje. Hledat se mi to nechce, ale používají ji video přehrávače. Tak na pozadí v nekonečné smyčce spusť nějaké video. To je pořád dementní, ale ne tolik jako hýbaní myší.

Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #4 kdy: 03. 10. 2020, 12:02:36 »
Nebo použít hardwarové řešení: Položit myš senzorem na ručičkové hodinky, ventilátor...  ;)


Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #5 kdy: 03. 10. 2020, 14:11:04 »
proč to uspávání jako nejde přenastavit nějak v systému a musí se to řešit takle legračně hejbáním myšičkou??????????  ;D ;D ;D ;D :o :o :o :o

................................
k tomu tvýmu zdrojáčku
zaprvý SetCursorPos prej jenom hejbne kurzorem po obrazovce ale nevygeneruje hejbací event v systému :o ;)
nóó takže zkus jakoby nahradit tamtu win32api.setCursorPos funkcí win32api.mouse_event hele  :D ;)

ale přesto je takový divný žeti to spadlo takže to asi eště vobal try catchem a udělej aby ti to při vyjímce vypsalo/zalogovalo hodnotu argumentů jestli jako třeba neni problém když myšička vyleze z obrazovky nebo něco takovýho   :) ;D ;) ;)
lidi postižený environmentálním žalem hele choděj za ekopsycholožkama hele 🤡 💆 🤡 💆

Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #6 kdy: 03. 10. 2020, 21:30:37 »
A tohle nestačí?


Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #7 kdy: 04. 10. 2020, 00:00:36 »

Karmelos

  • *****
  • 1 044
    • Zobrazit profil
    • E-mail
Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #8 kdy: 04. 10. 2020, 20:20:53 »
Pro info, je to pomucka na pocitaci co neni pod moji spravou a pravidla zamykani urcuje nekdo jiny.
Diky vsem zejmena Wrane. Vyzkousim.
MMCHDM, pada to s nejvetsi pravdepodobnosti kvuli vylezeni z obrazovky - ten muj "pohyb" driftuje. Jo a nemam problem s usinanim, ale ze zamykanim pocitace.
dik
Gréta je nejlepší.

Molex1

  • ***
  • 217
    • Zobrazit profil
    • E-mail
Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #9 kdy: 05. 10. 2020, 07:51:47 »
Já když např. potřebuji dát stahovat něco přes noc na kompu kde nemohu moc měnit nastavení, tak pustím nějaké video s opakováním ve full screenu :)

Karmelos

  • *****
  • 1 044
    • Zobrazit profil
    • E-mail
Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #10 kdy: 05. 10. 2020, 08:57:49 »
Pro zajemce, tohle funguje, skript bezi, nepada, mys nedriftuje, pocitac se nezamyka a lze ho normalne pouzivat i pri behu skriptu.
Kód: [Vybrat]
import sys
import win32api
import time
import win32con

print("Start mouse move")
tx = input("Please enter number of seconds:\n")
tx =int(tx)
print ("Moving every ", tx, " seconds")
print ("Press 'q' to quit")

def moveit():
        win32api.mouse_event(win32con.MOUSEEVENTF_MOVE, int(2), int(2), 0, 0)
        win32api.mouse_event(win32con.MOUSEEVENTF_MOVE, int(-2), int(-2), 0, 0)
while True:
  moveit()
  if win32api.GetAsyncKeyState(ord('Q')):
      print ("Moving ended")
      sys.exit()
  time.sleep(tx)
Gréta je nejlepší.

Bugsa

  • ***
  • 126
    • Zobrazit profil
    • E-mail
Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #11 kdy: 05. 10. 2020, 11:22:26 »
Já na automatizaci používám https://pypi.org/project/PyAutoGUI/
Výhodou je nezávislost na platformě.

Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #12 kdy: 05. 10. 2020, 15:13:33 »
Pro info, je to pomucka na pocitaci co neni pod moji spravou a pravidla zamykani urcuje nekdo jiny.
Diky vsem zejmena Wrane. Vyzkousim.
MMCHDM, pada to s nejvetsi pravdepodobnosti kvuli vylezeni z obrazovky - ten muj "pohyb" driftuje. Jo a nemam problem s usinanim, ale ze zamykanim pocitace.
dik

Předpokládám, že je to tedy doménový počítač pod správou nějakého IT. To vás vůbec pustí spustit ten skript bez admin oprávnění? To admini asi nebudou úplně nejbystřejší.

Jen dodávám, že tahle politika ve firmách bývá z nějakého důvodu. Např. aby si vzájemně nenakukovali do počítačů, když jeden z kolegů např. odejde na oběd, apod. :)
« Poslední změna: 05. 10. 2020, 15:15:50 od Corbie »

tecka

  • ***
  • 152
    • Zobrazit profil
    • E-mail
Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #13 kdy: 05. 10. 2020, 17:29:13 »
Zkuste toto
https://stackoverflow.com/questions/57647034/prevent-sleep-mode-python-wakelock-on-python

Ale nezkoušel jsem, nemohu zaručit.
JJ, to je ta funkce, kterou jsem měl na mysli - SetThreadExecutionState. A pro zabránění jen zamykání bude ES_DISPLAY_REQUIRED (0x00000002) místo toho ES_SYSTEM_REQUIRED (které tam používají na zabránění uspávání). Používal jsem to na W7 v podobné situaci a předpokládám, že to pořád funguje.

qelurg

  • ****
  • 379
    • Zobrazit profil
    • E-mail
Re:Pohyb myší pomocí Pythonu ve Windows 10
« Odpověď #14 kdy: 05. 10. 2020, 18:00:10 »
Pro info, je to pomucka na pocitaci co neni pod moji spravou a pravidla zamykani urcuje nekdo jiny.
Diky vsem zejmena Wrane. Vyzkousim.
MMCHDM, pada to s nejvetsi pravdepodobnosti kvuli vylezeni z obrazovky - ten muj "pohyb" driftuje. Jo a nemam problem s usinanim, ale ze zamykanim pocitace.
dik

Předpokládám, že je to tedy doménový počítač pod správou nějakého IT. To vás vůbec pustí spustit ten skript bez admin oprávnění? To admini asi nebudou úplně nejbystřejší.

Jen dodávám, že tahle politika ve firmách bývá z nějakého důvodu. Např. aby si vzájemně nenakukovali do počítačů, když jeden z kolegů např. odejde na oběd, apod. :)

On ten python je součástí řady aplikací, třeba gimpu nebo open office a lze ho spouštět skrz ně.