Что нового

Запуск приложения при простое компьютера.

junson

Новичок
Сообщения
4
Репутация
1
Версия AutoIt: 3.

Описание:
Добрый день. Нужен скрипт который запускал бы файл (допустим дефрагментатор) с определёнными параметрами командной строки при простое компьютера, и выключал бы его когда пользователь пошевелит мышкой.
Примечания:
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
а каково значение времени между движениями\манипуляциями и простоем?
 
Автор
J

junson

Новичок
Сообщения
4
Репутация
1
а каково значение времени между движениями\манипуляциями и простоем?
Заставка будет включатся через 5 минут, соответственно это и будет считаться простоем. Допустим пользователь отошёл от компьютера на время более 5 минут, включилась заставка, и соответственно скрипт, пользователь пришёл обратно - увидел заставку, пошевелил мышкой - отключилась заставка и убился дефрагментатор.
Пс. Желательно что-бы окно программы было скрытым, дабы не возникало лишних вопросов " ой а что это за окошки" :smile:
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
http://forum.ru-board.com/topic.cgi?forum=5&topic=33902&start=1680#18
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Код:
#include<WinAPI.au3>
#include<StructureConstants.au3>
#include<WindowsConstants.au3>
OnAutoItExitRegister("__Exit")
Global $trTime
$hStub=DllCallbackRegister("__Event","long","int;wparam;lparam")
$hModule=_WinAPI_GetModuleHandle(0)
$hHookM=_WinAPI_SetWindowsHookEx($wh_mouse_ll,DllCallbackGetPtr($hStub),$hModule)
While 1
	Sleep(200)
	$trTime+=200
	If $trTime=(5*60*1000) Then
		$trTime=0
		ProcessWaitClose(Run("defrag.exe D:",'',@SW_HIDE))
	EndIf
WEnd
Func __Event($nCode,$wPar,$lPar)
	If $nCode<0 Then Return _WinAPI_CallNextHookEx($hHookM,$nCode,$wPar,$lPar)
	Local $tKEY=BitAND($wPar,0xFFFF)
	If $tKEY=$wm_mousemove Then
		$trTime=0
		ProcessClose("defrag.exe")
	EndIf
EndFunc
Func __Exit()
	_WinAPI_UnhookWindowsHookEx($hHookM)
	DllCallbackFree($hStub)
EndFunc

Вроде бы работает, по ProcessHacker следил, вроде запускается(defrag), но у меня win8 и из-за скрытия окна, я понять не могу то ли дефрагментатор работает то ли нет.
+ еще проблема, если запускать системный(как в моем коде) дефрагментатор. То он требует права администратора(Это я уж через cmd.exe узнал).
 
Автор
J

junson

Новичок
Сообщения
4
Репутация
1
Огромное спасибо, то что нужно! Всё работает, проверил!
А для запуска от имени администратора я его скомпилировал, и в свойствах .exe файла установил "запуск от имени администратора".
Еще вопрос, можно ли как то скрыть значёк в трее? #NoTrayIcon

offtop
как изменить репутацию на форуме? Не нашёл функции такой
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
junson сказал(а):
Еще вопрос, можно ли как то скрыть значёк в трее?
Можно добавить директиву:
Код:
#NoTrayicon

В начале скрипта, тогда иконки в трее не будет, но если потребуется остановить программу либо добавлять HotKey либо убивать из процесс менеджера=)
junson сказал(а):
как изменить репутацию на форуме? Не нашёл функции такой
под ником стоят кнопки: "+1" и "-1"(у каждого пользователя кроме вашего, по причине того что вы не можете сами себе изменить репутацию) они означают добавить или снизить репутацию
 
Автор
J

junson

Новичок
Сообщения
4
Репутация
1
под ником стоят кнопки: "+1" и "-1"
Видимо новички не могут изменять репутацию, прочёл правила форума, нигде ничего не написано, пробовал разные броузеры, отключал adblock, заходил с другого компьютера. Так же я не могу отправлять личные сообщения, пишет "папка недоступна для вас". Спасибо в любом случае.
mEpAcw9ZEK1cRn3yODLGg.jpg
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
junson
Видимо новички не могут изменять репутацию, прочёл правила форума, нигде ничего не написано, пробовал разные броузеры, отключал adblock, заходил с другого компьютера. Так же я не могу отправлять личные сообщения, пишет "папка недоступна для вас". Спасибо в любом случае.
У меня и плюсы и минусы можно ставить и сообщения отправлять - всё нормально. Не знаю что у вас.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
junson
Попробуй в разных браузерах.
 

Maximodul

Новичок
Сообщения
1
Репутация
0
Re: Запуск приложения при простое компьютера

Привет. Можно попросить подкорректить код.... Хочу повесить на контроль простоя компьютера.. только не запускать
defrag, а сохранять данные в тектовый файл.... т.е. при возникновении простоя "Начало простоя %username% %date% %time%" и при завершении простоя "Завершение простоя %username% %date% %time%". заранее благодарен. Спасибо.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Re: Запуск приложения при простое компьютера

Maximodul
Код:
#include <Timers.au3>
#include <Date.au3>

$Idle = 60 ; время бездействия в секундах

While 1
  Sleep(1000)
  If _Timer_GetIdleTime() > $Idle * 1000 Then
    FileWriteLine("log.txt", "Начало простоя: " & @UserName & " " & _DateAdd("s", -1 * $Idle, _NowCalc()))
    Do
      Sleep(1000)
    Until _Timer_GetIdleTime() < $Idle * 1000
    FileWriteLine("log.txt", "Завершение простоя: " & @UserName & " " & _NowCalc())
  EndIf
WEnd
 

alexnew

Новичок
Сообщения
1
Репутация
0
Код:
#include<WinAPI.au3>
#include<StructureConstants.au3>
#include<WindowsConstants.au3>
OnAutoItExitRegister("__Exit")
Global $trTime
$hStub=DllCallbackRegister("__Event","long","int;wparam;lparam")
$hModule=_WinAPI_GetModuleHandle(0)
$hHookM=_WinAPI_SetWindowsHookEx($wh_mouse_ll,DllCallbackGetPtr($hStub),$hModule)
While 1
    Sleep(200)
    $trTime+=200
    If $trTime=(5*60*1000) Then
        $trTime=0
        ProcessWaitClose(Run("defrag.exe D:",'',@SW_HIDE))
    EndIf
WEnd
Func __Event($nCode,$wPar,$lPar)
    If $nCode<0 Then Return _WinAPI_CallNextHookEx($hHookM,$nCode,$wPar,$lPar)
    Local $tKEY=BitAND($wPar,0xFFFF)
    If $tKEY=$wm_mousemove Then
        $trTime=0
        ProcessClose("defrag.exe")
    EndIf
EndFunc
Func __Exit()
    _WinAPI_UnhookWindowsHookEx($hHookM)
    DllCallbackFree($hStub)
EndFunc

Вроде бы работает, по ProcessHacker следил, вроде запускается(defrag), но у меня win8 и из-за скрытия окна, я понять не могу то ли дефрагментатор работает то ли нет.
+ еще проблема, если запускать системный(как в моем коде) дефрагментатор. То он требует права администратора(Это я уж через cmd.exe узнал).
Апну тему. А как здесь сделать несколько условий срабатывания? Движение мыши, нажатие на кнопки и скролл колесика, набор на клавиатуре. При открытом окне, например диспетчере задач, запрет запуска. Или чтоб срабатывало только при открытом окне и движении мыши. Спасибо заранее
 

Lamand

Новичок
Сообщения
6
Репутация
0
Возможно ли привязать активность не только к мыши с клавиатурой, но и к тачпаду?
 
Верх