Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
[решено] Закрывать список процессов каждых 2 минуты

Старожил


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

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


Добрый день
Задача
Установить скрипт как службу. В последствие данная служба будет установлена на офисные компьютеры.
Служба должна проверять по заранее заданному списку процессы и в случае их наличия убивать их. Период проверки 1 минута или 2.

Как установить скрипт.exe как службу я нашел. Есть программа AnyServ
Как убить процесс я тоже нашел
Код: Выделить весь код
If Not ProcessExists ("notepad.exe") Then Exit
ProcessClose ("notepad.exe")
Как сделать так, чтобы проверка выполнялась каждых сколько-то минут, секунд
Как сделать так, чтобы проверялось больше одного процесса

Dim $Array [2]
$Array [0]="notepad.exe"
$Array [1]="calc.exe"
For $temp in $Array
If ProcessExists($temp) Then ProcessClose ($temp)
Next
exit

Вот так убивает два процесса заранее опознанных, как сделать так чтобы задача повторялась периодически

Вот так зациклен процесс и выполняется каждых 30 секунд
Dim $Array [2]
$Array [0]="notepad.exe"
$Array [1]="calc.exe"
For $i=1 to 3
For $temp in $Array
If ProcessExists($temp) Then ProcessClose ($temp)
Next
Sleep (30000)
$i=1
Next
exit

Есть ли, что-то более верное?
Более правильное?

Отправлено: 14:09, 07-09-2010

 

Аватара для madmasles

Ветеран


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

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


tarasov.evgeny,
Можно так попробовать:
Код: Выделить весь код
#NoTrayIcon
#include <Timers.au3>

;список убиваемых процессов в массиве:
Dim $aProcesses[6] = [5, 'process1.exe', 'process2.exe', 'process3.exe', 'process4.exe', 'process5.exe']
;пауза между проверками в секундах
Global $iPouse = 30
Global $sRegRun = 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'

;проверка записи себя в автозагрузку
If RegRead($sRegRun, @ScriptName) = '' Or RegRead($sRegRun, @ScriptName) <> @ScriptFullPath Then
    RegWrite($sRegRun, @ScriptName, "REG_SZ", @ScriptFullPath)
EndIf

While 1
    For $i = 1 To $aProcesses[0]
        If ProcessExists($aProcesses[$i]) Then
            _ToolTipEx('Нельзя запускать ' & $aProcesses[$i], 1, 1, 'Злой админ', 3, 5, 3000)
            ProcessClose($aProcesses[$i])
        EndIf
    Next
    Sleep($iPouse * 1000)
WEnd

Func _ToolTipEx($sText, $iX = Default, $iY = Default, $sTitle = Default, $iIcon = Default, $iOptions = Default, $iTimeOut = 0)
    ToolTip($sText, $iX, $iY, $sTitle, $iIcon, $iOptions)

    If $iTimeOut Then
        _Timer_SetTimer(0, $iTimeOut, "_ToolTipEx_Callback")
    EndIf
EndFunc   ;==>_ToolTipEx

Func _ToolTipEx_Callback($hWnd, $Msg, $iIDTimer, $dwTime)
    _Timer_KillTimer($hWnd, $iIDTimer)
    ToolTip("")
EndFunc   ;==>_ToolTipEx_Callback
Можно для надежности еще заблокировать Реестр и Диспетчер задач.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:39, 07-09-2010 | #2



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

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


Старожил


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

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


madmasles
спасибо. Круто
Остался при своем решение. У вас мне пока очень многое не понятно. Дело не в том, что я не доверяю. Просто хочу пользоваться тем, что смогу изменить. А ваш скрипт мне не понятен
Я вижу в нем, что вы создаете массив, задаете две переменные, затем если записи в реестре нет вы его прописываете в автозагрузку компьютера
$iPause - я так понял, просто для более короткой записи, вместо 30000?
Func _ToolTipEx - это просто для сообщения - Злой админ?
Func _ToolTipEx_Callback зачем?

P.S Возникла проблема с установкой службы. Служба устанавливается, но не запускается
Error 1053.

Отправлено: 16:43, 08-09-2010 | #3


Аватара для madmasles

Ветеран


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

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


Цитата tarasov.evgeny:
Просто хочу пользоваться тем, что смогу изменить. »
Это Ваше дело (и право) пользоваться тем, чем хотите, только зачем тогда было тему начинать?
Цитата tarasov.evgeny:
Func _ToolTipEx - это просто для сообщения - Злой админ?
Func _ToolTipEx_Callback зачем? »
В этой теме посмотрите, особенно этот пост.

Отправлено: 17:05, 08-09-2010 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как выгрузить список процессов в файл: Bugs Microsoft Windows NT/2000/2003 3 08-03-2008 19:53
Firewall - как открывать и закрывать порты admin666 Хочу все знать 1 29-10-2007 16:34
как открывать и закрывать порты ? scorpio47 Сетевые технологии 3 12-07-2005 08:47
Удаленно получить список процессов Dronec Сетевые технологии 1 25-09-2004 12:49
Удаленно получить список процессов Dronec Защита компьютерных систем 4 24-09-2004 14:41




 
Переход