Pull to refresh

Comments 19

Странно, но у меня программный шароварный KillSaver нормально справляется с этой задачей
может, от платформы тоже как то зависит? Современные ноутбуки и ОС помешаны на энергосбережении… Мой HP EliteBook я смог разбудить только аппаратными штуками
Это прекрасно, я джва года хотел именно такой туториал. Побежал заказывать эту штуку. Спасибо!
пользуйтесь на здоровье :) Осторожно, Pi Zero бывает в двух версиях — с вайфаем и без. Лучше сразу взять с оригинальным корпусом. Он удобный.
Два рубля плюс доставка, круто за PiZero. Orange за такие деньги будет самолёт.
можно на любой Ардуине с ATmega32U4. Там есть поддержка USB. Но зачем использовать Ардуину, если за те же деньги есть Raspberry Pi Zero (W)? Pi0 можно превратить в USB клавиатуру, мышь и сетевую карту одновременно

300 и 1600 рублей те же деньги??
Те же деньги что и ардуина будет STM32F103C8T6 + ST-Link V2.
питона не будет. А с деньгами да, явная несвязуха
А почему не использовать VBA?

Excel VBA + SendKeys "(NUMLOCK)" каждые 15 секунд. — работает без проблем.
Была старая идея сделать на основе такой штуки ботовода для какой-нибудь гамы (те же танчики). Не ради серебра, а ради фана + программизма.

Надо будет попробовать.
Здесь пахнет старым, добрым Badusb ) Raspberry все-таки дороговата для таких затей, можно к ардуино с серво к мышке прицепить. Печатать не получится, но двигать туда-сюда, сколько угодно. nano+sg90 обойдутся не более 300 р. или около того.

Для этих целей несколько строк на питоне. Была проблема что в сон уходил, как у автора, но потом как-то решил, уже не помню что сделал. Уже пару лет стабильно юзаю свой скрипт. Если нужно, скину в коммент.

Может, попробовать поработать?


Ну или сменить работу — подальше от настолько эффективных менеджеров.

Простой скрипт на питоне. Шевелит мышкой, если за 50 секунд небыло активности.
У меня на ноуте и у жены на компе прекрасно работает:

from ctypes import Structure, windll, c_uint, sizeof, byref
import time

TIMEOUT_S = 50
move_dxdy = 1

mouse_event = windll.user32.mouse_event


class LASTINPUTINFO(Structure):
    _fields_ = [
        ('cbSize', c_uint),
        ('dwTime', c_uint),
    ]

def get_idle_duration():
    lastInputInfo = LASTINPUTINFO()
    lastInputInfo.cbSize = sizeof(lastInputInfo)
    windll.user32.GetLastInputInfo(byref(lastInputInfo))
    millis = windll.kernel32.GetTickCount() - lastInputInfo.dwTime
    return millis / 1000.0

def move_mouse_pointer():
	global move_dxdy
	move_dxdy = move_dxdy * -1
	mouse_event(1, move_dxdy, move_dxdy, 0, 0)
	pass

windll.kernel32.SetConsoleTitleW("Idle mouse mover.")

while True:
	duration = TIMEOUT_S - get_idle_duration();
	print(f"[{time.strftime('%H:%M:%S')}] duration: {duration}, idle:{TIMEOUT_S - duration}");
	if duration > 0:
		time.sleep(duration)
	else:
		move_mouse_pointer()
Sign up to leave a comment.

Articles