Что нового

[Мышь, клавиатура] Движение курсора мыши на 1 пиксель через 3 минуты

kossvir

Новичок
Сообщения
21
Репутация
0
Всем привет))
Может кто то уже делал что то подобное..
На работе имеется ПК, если не нажимать на клаву или не пользоваться мышью, то он выбрасывает через 5 минут на ввод пароля пользователя(убрать эту функцию с ПК нельзя просто так)
Нужен скрипт, или хотя бы пример похожего чего-то, чтобы работал примерно так: Через 3 минуты бездействия мышью или клавиатуры, курсор мыши начал перемещаться на 1 пиксель вверх, и на один пиксель в низ, но как только мы начнем пользоваться мышью или клавой, скрипт должен перестать работать, и ждать следующие 3 минуты бездействия, и так далее..

Помогите кто чем можете)))
Спасибо!
 

joiner

Модератор
Локальный модератор
Сообщения
3,426
Репутация
597
http://autoit-script.ru/index.php?topic=2602.5
http://autoit-script.ru/autoit3_docs/libfunctions/_winapi_setwindowshookex.htm
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
kossvir,
Вы можете получать время бездействия функцией _WinAPI_GetIdleTime(), а дальше - или _WinAPI_SetThreadExecutionState(), или MouseMove().
 
Автор
K

kossvir

Новичок
Сообщения
21
Репутация
0
Вы можете получать время бездействия функцией _WinAPI_GetIdleTime(), а дальше - или _WinAPI_SetThreadExecutionState(), или MouseMove().

Поправьте пожалуйста, что у меня не правильно. Идет отсчет времени бездействия системы, но посте 21 секунды курсор мыши не двигается на указанные позиции
Код:
#include <WinAPIEx.au3>

While 1
	  ToolTip('Idle time (ms): ' &_WinAPI_GetIDleTime())
	  Sleep(1000)
	  if ToolTip > 21000 Then MouseMove (100,100 [, speed=10])

   WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
kossvir,
Код:
#include <WinAPIEx.au3>

HotKeySet('{Esc}', '_Exit')
AdlibRegister('_MyFunc', 60000)

While Sleep(1000)
WEnd

Func _MyFunc()
	If _WinAPI_GetIDleTime() > 180000 Then; 3 min
		Local $a_Mpos = MouseGetPos()
		If @error Then Return
		MouseMove($a_Mpos[0] + 1, $a_Mpos[1] + 1, 0)
		MouseMove($a_Mpos[0], $a_Mpos[1], 0)
	EndIf
EndFunc   ;==>_MyFunc

Func _Exit()
	Exit
EndFunc   ;==>_Exit
Или так, без всяких проверок.
Код:
HotKeySet('{Esc}', '_Exit')
AdlibRegister('_MyFunc', 180000)

While Sleep(1000)
WEnd

Func _MyFunc()
	Local $a_Mpos = MouseGetPos()
	If @error Then Return
	MouseMove($a_Mpos[0] + 1, $a_Mpos[1] + 1, 0)
	MouseMove($a_Mpos[0], $a_Mpos[1], 0)
EndFunc   ;==>_MyFunc

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
K

kossvir

Новичок
Сообщения
21
Репутация
0
kossvir,
(нажмите для показа/скрытия)
Или так, без всяких проверок.
(нажмите для показа/скрытия)
« Последнее редактирование: Сегодня в 08:39:13 от madmasles »
Сообщить модератору Записан
[Прибавить Репутацию (+1) / Полезный ответ] [Отнять Репутацию (-1) / Бесполезный ответ]

Ок, спасибо! Все работает.
Только вот что то скомпилированный файл не запускается..
Ошибка: Unable to open the script file.
 
Верх