Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Karmelos 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á.
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')
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)
-
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
-
zkus tohle
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š
-
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ší.
-
Nebo použít hardwarové řešení: Položit myš senzorem na ručičkové hodinky, ventilátor... ;)
-
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 ;) ;)
-
A tohle nestačí?
(https://i.imgur.com/J9DbRds.png)
-
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.
-
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
-
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 :)
-
Pro zajemce, tohle funguje, skript bezi, nepada, mys nedriftuje, pocitac se nezamyka a lze ho normalne pouzivat i pri behu skriptu.
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)
-
Já na automatizaci používám https://pypi.org/project/PyAutoGUI/
Výhodou je nezávislost na platformě.
-
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. :)
-
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.
-
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ě.
-
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.
-
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.
-
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.