Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Скрытая работа приложения в режиме простоя системы

Ответить
Настройки темы
[решено] Скрытая работа приложения в режиме простоя системы

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день! Имеется необходимость скрытого запуска консольного приложения, если пользователь не работает за компьютером и автоматического прекращения его работы при любой активности пользователя.

Условия неактивности пользователя, если более 5 минут:
- не нажимаются никакие кнопки на клавиатуре или мыши;
- не крутится колесо мыши;
- не перемещается курсор на расстояние более 10 пикселей;
- не запущен диспетчер задач Windows.

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

Как сделать скрытый запуск приложения (без появления консольного окна), я разобрался: достаточно создать файл run.vbs следующего содержания:
Код: Выделить весь код
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run"C:\Windows\System32\svсhost.exe", 0, true
тут svсhost.exe - переименованный файл программы (с одной русской буквой).

Соответственно сделать скрытую остановку программы можно скриптом run2.vbs:
Код: Выделить весь код
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run"C:\Windows\System32\TASKKILL /F /IM C:\Windows\System32\svсhost.exe /T", 0, true
Хотелось все это организовать в скомпилированный exe-файл скрипта AutoIt, который бы контролировал процесс старта и остановки приложения, и запускать его через один из ключей автозапуска в реестре:

Код: Выделить весь код
@reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "что то для прикрытия" /t REG_SZ /d "Имя и путь к скомпилированному файлу скрипта" /f
Вот наткнулся на такой скрипт, но кажется, мне он не совсем подходит:
Код: Выделить весь код
:: Auto.it Запуск приложения при простое компьютера.
#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
Пожалуйста, помогите подправить.

Отправлено: 19:39, 22-04-2017

 

Аватара для Creat0R

Must AutoIt


Moderator


Сообщения: 3030
Благодарности: 996

Профиль | Сайт | Отправить PM | Цитировать


Цитата xseed:
Имеется необходимость скрытого запуска консольного приложения »
Предоставьте вразумительную и оправданную причину такого действия, иначе тема будет удалена.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 21:06, 22-04-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Предоставьте вразумительную и оправданную причину такого действия, иначе тема будет удалена. »
Причина обычная: пользователь уходит с рабочего места, а мне нужно запустить программу, которая бы использовала мощности компьютера во время простоя. Так как программа использует ресурсы, некомфортно работать при запущенном приложении. А скрытно нужно запускать, чтобы пользователь не знал об этом.

Можете помочь?

Отправлено: 22:14, 22-04-2017 | #3


Ветеран


Contributor


Сообщения: 24055
Благодарности: 6985

Профиль | Отправить PM | Цитировать


xseed, Ваша задача решается двумя вполне легальными способами: первый — использование Планировщика, второй — свой скринсейвер. Ни то, ни другое не требуют никакого «скрытого запуска». Но, поскольку:
Цитата xseed:
А скрытно нужно запускать, чтобы пользователь не знал об этом. »
явным образом подпадает под ОПК 3.18, обсуждения не будет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:49, 23-04-2017 | #4


Пользователь


Сообщения: 59
Благодарности: 1

Профиль | Отправить PM | Цитировать


Планировщик работает не верно.
Бездействием считается неактивность управления.
Задача запускается при просмотре фильма

Отправлено: 22:34, 30-12-2017 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Скрытая работа приложения в режиме простоя системы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ноутбук, температура в режиме простоя колеблется в районе 49-54 градусов imyafamiliya Ноутбуки 4 29-01-2017 23:05
Debian/Ubuntu - Работа в графическом режиме, работа в консоли alfatapok Общий по Linux 0 30-11-2016 17:43
Система и сжатая память (System) сильно грузят процессор в режиме простоя lumiq@vk Процесcоры 14 13-01-2016 17:51
[решено] Сколько трафика должно уходить в режиме простоя систеы? Vlad132 Хочу все знать 6 15-11-2012 21:09
Службы - [решено] Обращение к диску во время простоя системы Simlion Microsoft Windows Vista 19 20-10-2007 16:59




 
Переход