Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Pajaha 01. 10. 2020, 10:28:57

Název: Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: Pajaha 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)
Název: Re:python mouse mover W10
Přispěvatel: maga 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
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: 8B3CE273 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š
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: tecka 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ší.
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: czAtlantis 03. 10. 2020, 12:02:36
Nebo použít hardwarové řešení: Položit myš senzorem na ručičkové hodinky, ventilátor...  ;)
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: Wrána diskuze 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 (https://stackoverflow.com/questions/3720938/win32-moving-mouse-with-setcursorpos-vs-mouse-event)  :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 ;) ;)
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: Corbie 03. 10. 2020, 21:30:37
A tohle nestačí?

(https://i.imgur.com/J9DbRds.png)
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: okalousek 04. 10. 2020, 00:00:36
Zkuste toto
https://stackoverflow.com/questions/57647034/prevent-sleep-mode-python-wakelock-on-python (https://stackoverflow.com/questions/57647034/prevent-sleep-mode-python-wakelock-on-python)

Ale nezkoušel jsem, nemohu zaručit.
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: Pajaha 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
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: Molex1 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 :)
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: Pajaha 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)
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: Bugsa 05. 10. 2020, 11:22:26
Já na automatizaci používám https://pypi.org/project/PyAutoGUI/
Výhodou je nezávislost na platformě.
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: Corbie 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. :)
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: tecka 05. 10. 2020, 17:29:13
Zkuste toto
https://stackoverflow.com/questions/57647034/prevent-sleep-mode-python-wakelock-on-python (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.
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: qelurg 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ě.
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: borekz 06. 10. 2020, 06:20:26
Musí to být Python ? Pro volání Win32, navíc bez složité aplikační logiky a s požadavkem binární portable verze se nejvíc hodí C.
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: crown 06. 10. 2020, 11:01:22
Pro pocitace, kde je zamykani vynucene pres policy jde pouzit jednoduche hardwarove reseni.

Kup si Arduino Micro ATmega32U4 - original v Cechach asi 300 Kc, cinska kopie o dost levnejsi. ( Alternativne by melo jit i s Digispark USB ATtiny85 za asi 80 Kc i kdyz trochu sloziteji.) Pozor musi to byt opravdu "micro" s chipem ATmega32U4. Treba s "nano" to nepujde.

Do arduina micro nahraj sketch, ktery kazdych 5 minut zmackne a pusti treba Ctrl
Priklady zde https://www.sparkfun.com/tutorials/337 (https://www.sparkfun.com/tutorials/337)

Zapichni do pocitace a uz se ti neuspi.
Název: Re:Pohyb myší pomocí Pythonu ve Windows 10
Přispěvatel: Pajaha 07. 10. 2020, 05:43:12
Pro pocitace, kde je zamykani vynucene pres policy jde pouzit jednoduche hardwarove reseni.

Kup si Arduino Micro ATmega32U4 - original v Cechach asi 300 Kc, cinska kopie o dost levnejsi. ( Alternativne by melo jit i s Digispark USB ATtiny85 za asi 80 Kc i kdyz trochu sloziteji.) Pozor musi to byt opravdu "micro" s chipem ATmega32U4. Treba s "nano" to nepujde.

Do arduina micro nahraj sketch, ktery kazdych 5 minut zmackne a pusti treba Ctrl
Priklady zde https://www.sparkfun.com/tutorials/337 (https://www.sparkfun.com/tutorials/337)

Zapichni do pocitace a uz se ti neuspi.

Sice jsem to vyřešil tim upraveným skriptem, ale tohle je very najs bjutifl. Dík.