![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Закрывать список процессов каждых 2 минуты |
|
[решено] Закрывать список процессов каждых 2 минуты
|
Старожил Сообщения: 173 |
Добрый день
Задача Установить скрипт как службу. В последствие данная служба будет установлена на офисные компьютеры. Служба должна проверять по заранее заданному списку процессы и в случае их наличия убивать их. Период проверки 1 минута или 2. Как установить скрипт.exe как службу я нашел. Есть программа AnyServ Как убить процесс я тоже нашел Как сделать так, чтобы проверка выполнялась каждых сколько-то минут, секунд Как сделать так, чтобы проверялось больше одного процесса 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 |
Ветеран Сообщения: 812
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать madmasles
спасибо. Круто ![]() Остался при своем решение. У вас мне пока очень многое не понятно. Дело не в том, что я не доверяю. Просто хочу пользоваться тем, что смогу изменить. А ваш скрипт мне не понятен Я вижу в нем, что вы создаете массив, задаете две переменные, затем если записи в реестре нет вы его прописываете в автозагрузку компьютера $iPause - я так понял, просто для более короткой записи, вместо 30000? Func _ToolTipEx - это просто для сообщения - Злой админ? Func _ToolTipEx_Callback зачем? P.S Возникла проблема с установкой службы. Служба устанавливается, но не запускается ![]() Error 1053. |
Отправлено: 16:43, 08-09-2010 | #3 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Цитата tarasov.evgeny:
Цитата tarasov.evgeny:
|
||
Отправлено: 17:05, 08-09-2010 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как выгрузить список процессов в файл: | 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 |
|