Обсуждение программ nnCron и nnCron LITE
by ascerdfg1 » Fri, 14 Sep 2012, 07:36
Автовоспроизведение Winamp при его загрузке и выгрузка при окончании воспроизведения списка воспроизведения: - Code: Select all
#( On_Amplifier_Winamp_&_close VARIABLE lpt VARIABLE wp1 \ в момент перехода с песни на песню винамп имеет статус "стоп" VARIABLE wp2 \ и в этот момент винамп может опросится этим скриптом, что не верно закроет его. \ Для исправления этого введен двойной опрос состояния винамп. SingleInstance Action: BEGIN 1000 PAUSE WIN-EXIST: "Winamp v1.x" IF 0 wp1 ! 0 wp2 ! INTERVAL: 8:00-22:00 IF 60 MIXER-VOLUME! ELSE 20 MIXER-VOLUME! THEN SWHide START-APP: "mixer.exe s "YAMAHA":Звук:Громкость:65535" \ START-APP: "mixer.exe s "Realtek HD Audio output":Звук:Громкость:65535" 0x37A DlPortReadPortUchar CASE 208 OF 0xD2 0x37A DlPortWritePortUchar DROP ENDOF \ включение усилка при включённой лампе (16 нога LPT-разъёма) 204 OF 0xCE 0x37A DlPortWritePortUchar DROP ENDOF \ включение усилка при выключённой лампе ENDCASE PAUSE: 1000 WIN-EXIST: "Winamp v1.x" IF 104 0 1024 WIN-HWND SendMessageA \ узнаём статус Winamp DUP 0 = IF WINAMP-PLAY THEN DROP \ сбрасываем стек THEN PAUSE: 1000 BEGIN \ закрытие "Winamp v1.x" если воспроизведение закончилось PAUSE: 2000 WIN-EXIST: "Winamp v1.x" IF 104 0 1024 WIN-HWND SendMessageA DUP 0 = IF -1 wp1 ! THEN DROP THEN PAUSE: 2000 WIN-EXIST: "Winamp v1.x" IF 104 0 1024 WIN-HWND SendMessageA DUP 0 = IF 1 wp2 ! THEN DROP THEN wp1 @ wp2 @ * IF WIN-CLOSE: "Winamp v1.x" THEN WIN-EXIST: "Winamp v1.x" NOT UNTIL THEN AGAIN )#
nncron.exe v 1.93b10 Build 1141 tm.exe v 1.93b10 Build 569 Windows XP (5.1.2600) SP3 Комп без nnCron - груда металла!
-

ascerdfg1
-
- Posts: 541
- Joined: Thu, 29 Nov 2007, 02:45
- Location: г. Алексин
-
by ascerdfg1 » Fri, 14 Sep 2012, 08:05
Плавное уменьшение громкости при проигрывании Winamp при отсутствии движений пользователя (ушёл гулять или заснул) и выгрузка Winamp при достижении громкости равной нулю. - Code: Select all
#( IDLE_Winamp_Close VARIABLE zz \ для выхода из цикла понижения громкости если громкость = 0 или я шевелнулся VARIABLE xx \ первоначальный уровень громкости VARIABLE ww \ счетчик цикла \ WatchProc: "winamp.exe" SingleInstance \ NoActive Action: BEGIN 20 ww ! PAUSE: 10000 PROC-EXIST: "winamp.exe" IF INTERVAL: 6:00-22:00 IF IDLE: 1500 \ 25 минут IF MIXER-VOLUME@ xx ! 1 zz ! BEGIN PAUSE: 1000 \ для того чтоб восстанавливалась громкость максимум через 1 секунду после активности юзера ww 1+! \ ww @ 1 + ww ! ww @ 10 MOD 0= \ без "ww @" пишет "ошибка стека" IF -1 MIXER+ \ уменьшение громкости на один процент через 10 секунд MIXER-VOLUME@ zz ! THEN IDLE: 2 NOT \ если я заметил что громкость падает я шевельнусь IF BEGIN PAUSE: 100 1 MIXER+ \ увеличение громкости на один процент через .2 секунд PAUSE: 100 MIXER-VOLUME@ xx @ > \ если я громкостью поиграю с пульта, то возможно что этот цикл никогда не закончится, громкость будет всё время лезть вверх, т.к. MIXER-VOLUME@ будет больше XX к моменту запуска этого цикла UNTIL 0 zz ! THEN zz @ 0 = \ цикл будет выполняться пока уровень громкости не станет равным нулю или я шевельнусь UNTIL MIXER-VOLUME@ 0= IF WIN-CLOSE: "Winamp v1.x" INTERVAL: 23:00-6:00 IF POWEROFF THEN THEN THEN ELSE IDLE: 600 \ 10 минут (перед сном) IF MIXER-VOLUME@ xx ! 1 zz ! BEGIN PAUSE: 1000 \ для того чтоб восстанавливалась громкость максимум через 1 секунду после активности юзера ww 1+! \ ww @ 1 + ww ! ww @ 10 MOD 0= \ без "ww @" пишет "ошибка стека" IF -1 MIXER+ \ уменьшение громкости на один процент через 15 секунд PAUSE: 100 MIXER-VOLUME@ zz ! THEN IDLE: 2 NOT \ если я заметил что громкость падает я шевельнусь IF xx @ MIXER-VOLUME! \ и громкость восстановиться... 0 zz ! THEN zz @ 0 = \ цикл будет выполняться пока уровень громкости не станет равным нулю UNTIL MIXER-VOLUME@ 0= IF WIN-CLOSE: "Winamp v1.x" \ POWER-SUSPEND THEN THEN THEN THEN AGAIN )#
nncron.exe v 1.93b10 Build 1141 tm.exe v 1.93b10 Build 569 Windows XP (5.1.2600) SP3 Комп без nnCron - груда металла!
-

ascerdfg1
-
- Posts: 541
- Joined: Thu, 29 Nov 2007, 02:45
- Location: г. Алексин
-
by ascerdfg1 » Fri, 14 Sep 2012, 08:18
Закрываем окно средней кнопкой мыши на заголовке окна или если нажим был не на заголовке окна - вставляем из буфера обмена. И как бонус (непонятно почему работает) если нажим на системном трее то выскакивает окно выбора завершения работы. - Code: Select all
#( middle-operation SingleInstance AsLoggedUser NoLog : KEYUP-WAIT BEGIN DUP KEY-PRESSED? WHILE 100 PAUSE REPEAT DROP ; \ для ожидания отжатия, иначе закрывается несколько окон Action: BEGIN PAUSE: 100 VK_MBUTTON KEY-PRESSED? \ нажата ли средняя кнопка мыши? IF VK_MBUTTON KEYUP-WAIT \ ждать отжатия средней кнопки мыши MOUSE-POS 16 LSHIFT OR 0 132 GetForegroundWindow SendMessageA \ MSG: "%0 esPICK%" \ тестировать какая область окна за что отвечает (вывод значения стека) 2 = \ шелчок средней кнопкой мыши на заголовке окна IF WIN-CLOSE: "%GetForegroundWindow%" \ закрывает окно по которому я щёлкнул по заголовку этого окна средней кнопкой мыши ELSE \ вставляем содержимое буфера обмена MOUSE-LBCLK 0x11 AKEYDN \ Ctrl нажимает 0x56 AKEY \ однократно нажимает клавишу "V" 0x11 AKEYUP \ Ctrl отпускает THEN THEN AGAIN )#
nncron.exe v 1.93b10 Build 1141 tm.exe v 1.93b10 Build 569 Windows XP (5.1.2600) SP3 Комп без nnCron - груда металла!
-

ascerdfg1
-
- Posts: 541
- Joined: Thu, 29 Nov 2007, 02:45
- Location: г. Алексин
-
by ascerdfg1 » Fri, 05 Oct 2012, 13:17
Чтоб весь день не убить на ютуб делаем прерывалку (работает под Фаирфоксом): - Code: Select all
#( u-tube_close VARIABLE tube SingleInstance Action: 0 tube ! BEGIN 5000 PAUSE WIN-ACTIVE: "*youtube*" IF tube 1+! THEN tube @ 120 = UNTIL TMSG: "завязывай с ютубом" 2 1000 PAUSE \ закрываем текущую вкладку фаирфокса: 0x11 AKEYDN \ Ctrl нажимает 0x57 AKEY \ однократно нажимает клавишу 0x11 AKEYUP \ Ctrl отпускает BEGIN 5000 PAUSE WIN-ACTIVE: "*youtube*" IF TMSG: "Ты ещё не отдохнул от ютуба!" 1 1000 PAUSE 0x11 AKEYDN \ Ctrl нажимает 0x57 AKEY \ однократно нажимает клавишу 0x11 AKEYUP \ Ctrl отпускает THEN tube 1+! tube @ 225 = UNTIL )#
Last edited by ascerdfg1 on Sat, 06 Oct 2012, 12:37, edited 1 time in total.
nncron.exe v 1.93b10 Build 1141 tm.exe v 1.93b10 Build 569 Windows XP (5.1.2600) SP3 Комп без nnCron - груда металла!
-

ascerdfg1
-
- Posts: 541
- Joined: Thu, 29 Nov 2007, 02:45
- Location: г. Алексин
-
by SeMa » Fri, 05 Oct 2012, 17:02
tube @ 1 + tube ! == tube 1+!
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
-

SeMa
-
- Posts: 637
- Joined: Fri, 15 Apr 2005, 12:49
- Location: Украина
by ascerdfg1 » Sat, 06 Oct 2012, 12:37
Спасибо, исправил.
nncron.exe v 1.93b10 Build 1141 tm.exe v 1.93b10 Build 569 Windows XP (5.1.2600) SP3 Комп без nnCron - груда металла!
-

ascerdfg1
-
- Posts: 541
- Joined: Thu, 29 Nov 2007, 02:45
- Location: г. Алексин
-
by ascerdfg1 » Sun, 14 Oct 2012, 12:30
ascerdfg1 wrote:С наступающими холодами важно не упустить слить воду из бочки в гараже. Это напоминалка, которая качает архив погоды из инета (линк нужно поменять для вашего региона) и находит минимальную температуру. Если она ниже установленной в этой задаче: (-?[0-3]), то выдаёт напоминание. - Code: Select all
#( water_tank Time: 3 * * 9-3 * * \ каждый час с сентября по март Rule: ONLINE? SingleInstance Action: FILE-EXIST: "water_tank.txt" NOT \ если не слил воду IF S" http://rp5.ru/archive.php?wmo_id=27710&lang=ru" HTTP-GET 0= IF S" water_tank.html" FWRITE \ сохраняю инет-страницу в файл ELSE 2DROP THEN FILE-EXIST: "water_tank.html" IF S" water_tank.html" FILE S" /(</div></td><td class=\x22cl_rd\w{0,3}\x22 nowrap=\x22nowrap\x22><div class=\x22t_0 dfs\x22 style=\x22display: inline;\x22>)(-?[0-3])\./" RE-MATCH \ "\ ищем температуру воздуха, кавычки "\x22" IF QUERY: "Воду слил? t*=%$2%*C" IF FILE-CREATE: "water_tank.txt" THEN ELSE \ MSG: "не слей" THEN FILE-DELETE: "water_tank.html" \ обязательно, для дополнительной проверки что http-get сработал ELSE MSG: "water_tank.html не найден" THEN ELSE \ MSG: "он слил воду" THEN )#
#( water_tank-del \ чтобы активизировать напоминалку в следующем году Time: 6 * * 4 * * \ каждый час в апреле чтобы уж точно стёрся этот файл, потому что мы можем уехать, заболеть, сломать комп, но не включать комп целый месяц это маловероятно Action: FILE-DELETE: "water_tank.txt" )#
Не выводит минус, выводит в "QUERY: "Воду слил? t*=%$2%*C" ноль, хотя сегодня было -0.9. Почему?
nncron.exe v 1.93b10 Build 1141 tm.exe v 1.93b10 Build 569 Windows XP (5.1.2600) SP3 Комп без nnCron - груда металла!
-

ascerdfg1
-
- Posts: 541
- Joined: Thu, 29 Nov 2007, 02:45
- Location: г. Алексин
-
by ask » Tue, 16 Oct 2012, 18:53
Зачитка из реестра интересующих значений и оформление их в виде переменных среды: - Code: Select all
<% USER-CREATE USER_NAME_IN_REG 250 USER-ALLOT
USER-CREATE REG_ROOT 250 USER-ALLOT USER-CREATE REG_KEY 250 USER-ALLOT
USER-CREATE REG_PARAM 250 USER-ALLOT USER-CREATE REG_VALUE 250 USER-ALLOT USER-CREATE ENV_NAME 250 USER-ALLOT %>
#( ReadOneParam NoLog NoDel RunOnce Time: 32 11 2 6 * 2008 Action:
S" %REG_ROOT COUNT%\%REG_KEY COUNT%" EVAL-SUBST REG-KEY-EXIST? IF S" %REG_ROOT COUNT%\%REG_KEY COUNT%\%REG_PARAM COUNT%" EVAL-SUBST REG_PARAM PLACE REG_VALUE GET-REG: "%REG_PARAM COUNT%" S" %ENV_NAME COUNT% = %REG_VALUE ASCIIZ>%" EVAL-SUBST CRON-LOG REG_VALUE ASCIIZ> ENV_NAME COUNT EVAL-SUBST SETENV THROW ELSE S" %ENV_NAME COUNT% = empty" EVAL-SUBST CRON-LOG S" empty" ENV_NAME COUNT EVAL-SUBST SETENV THROW THEN )#
#( GetSysFoldersFromRegistry NoLog NoDel AsLoggedUser SingleInstance RunOnce Time: 32 11 2 6 * 2008 Action:
CRON-SERVICE? IF S" %USERNAME%" EVAL-SUBST NAME2SIDS USER_NAME_IN_REG PLACE S" HKEY_USERS\%USER_NAME_IN_REG COUNT%" EVAL-SUBST REG_ROOT PLACE ELSE S" HKEY_CURRENT_USER" EVAL-SUBST REG_ROOT PLACE THEN S" Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" EVAL-SUBST REG_KEY PLACE S" AppData" EVAL-SUBST REG_PARAM PLACE S" USR_APPDATA" EVAL-SUBST ENV_NAME PLACE ReadOneParam RUN S" Local AppData" EVAL-SUBST REG_PARAM PLACE S" USR_LOCAL_APPDATA" EVAL-SUBST ENV_NAME PLACE ReadOneParam RUN S" Cache" EVAL-SUBST REG_PARAM PLACE S" USR_INTERNET_CACHE" EVAL-SUBST ENV_NAME PLACE ReadOneParam RUN S" Cookies" EVAL-SUBST REG_PARAM PLACE S" USR_COOKIES" EVAL-SUBST ENV_NAME PLACE ReadOneParam RUN S" History" EVAL-SUBST REG_PARAM PLACE S" USR_HISTORY" EVAL-SUBST ENV_NAME PLACE ReadOneParam RUN S" Recent" EVAL-SUBST REG_PARAM PLACE S" USR_RECENT" EVAL-SUBST ENV_NAME PLACE ReadOneParam RUN S" Templates" EVAL-SUBST REG_PARAM PLACE S" USR_TEMPL" EVAL-SUBST ENV_NAME PLACE ReadOneParam RUN S" Software\ReGet Software\ReGetDx" EVAL-SUBST REG_KEY PLACE S" Dir" EVAL-SUBST REG_PARAM PLACE S" REGET_DIR" EVAL-SUBST ENV_NAME PLACE ReadOneParam RUN S" QueueFile" EVAL-SUBST REG_PARAM PLACE S" REGET_QUEUE" EVAL-SUBST ENV_NAME PLACE ReadOneParam RUN
S" HKEY_LOCAL_MACHINE" EVAL-SUBST REG_ROOT PLACE S" Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" EVAL-SUBST REG_KEY PLACE S" Common AppData" EVAL-SUBST REG_PARAM PLACE S" COM_APPDATA" EVAL-SUBST ENV_NAME PLACE ReadOneParam RUN )#
В лог-файл выводится следующее: - Code: Select all
17:13:10 1948 USR_APPDATA = C:\Documents and Settings\User\Application Data 17:13:10 1948 USR_LOCAL_APPDATA = C:\Documents and Settings\User\Local Settings\Application Data 17:13:10 1948 USR_INTERNET_CACHE = A:\TMP\Temporary Internet Files 17:13:10 1948 USR_COOKIES = A:\TMP\Cookies 17:13:10 1948 USR_HISTORY = A:\TMP\History 17:13:10 1948 USR_RECENT = G:\Documents and Settings\User\Recent 17:13:10 1948 USR_TEMPL = B:\Шаблоны 17:13:10 1948 REGET_DIR = B:\Program Files\ReGet Software\ReGet Deluxe 17:13:10 1948 REGET_QUEUE = C:\Documents and Settings\User\Application Data\ReGet Software\Queue.wjr 17:13:10 1948 COM_APPDATA = C:\Documents and Settings\All Users\Application Data
Использовать можно так: - Code: Select all
MSG: "%ALLUSERSPROFILE%\Главное меню\Программы\Автозагрузка" MSG: "%CommonProgramFiles%\Java\Java Update"
-
ask
-
- Posts: 56
- Joined: Sun, 11 Dec 2011, 09:38
by ask » Tue, 16 Oct 2012, 18:58
Скрипт, пытающийся бороться с "блокировщиками Windows". Он мониторит "болевые точки" при загрузке и далее, в процессе работы; и если обнаружит .EXE там, где его быть не должно, пытается "срубить" одноимённый процесс и удалить файл. - Code: Select all
<% USER-CREATE ANTI_DIR 255 USER-ALLOT USER-CREATE ANTI_S_COUNT 15 USER-ALLOT USER-CREATE ANTI_SECT 32 USER-ALLOT
USER ANTI_COUNT %>
#( AntiBlock NoLog NoDel AsLoggedUser SingleInstance RunOnce Time: 32 11 2 6 * 2008 Action: SWHide RealtimePriority
FOR-FILES: "%ANTI_DIR COUNT%\*.exe" Если_кто_то_кое_где_у_нас_порой LAUNCH PROC-EXIST: "%FOUND-FILENAME%" IF KILL: "%FOUND-FILENAME%" PAUSE: 100 THEN START-APPW: del /F /Q "%FOUND-FULLPATH%" FILE-EXIST: "%FOUND-FULLPATH%" IF S" Не получилось удалить вирус %FOUND-FULLPATH%" EVAL-SUBST CRON-LOG 2 BalloonIcon ! BALLOON: "Не получилось удалить вирус" "%FOUND-FULLPATH%" 1 BalloonIcon ! ELSE S" Удалён вирус %FOUND-FULLPATH%" EVAL-SUBST CRON-LOG 2 BalloonIcon ! BALLOON: "Удалён вирус" "%FOUND-FULLPATH%" 1 BalloonIcon ! THEN ;FOR-FILES )#
#( MultiAntiBlock NoLog NoDel AsLoggedUser SingleInstance RunOnce Time: 32 11 2 6 * 2008 Action: FILE-EXIST: "%ASKCRON_INI COUNT%" IF ASKCRON_INI COUNT INI-FILENAME S" Антиблокировщик" INI-SECTION S" Количество папок" INI-GET-VALUE EVAL-SUBST ANTI_S_COUNT PLACE ANTI_S_COUNT COUNT S" default value" COMPARE 0= NOT ANTI_S_COUNT COUNT S" " COMPARE 0= NOT ANTI_S_COUNT COUNT S" 0" COMPARE 0= NOT AND AND IF 0 ANTI_COUNT ! ANTI_S_COUNT COUNT S>NUM 0 DO ANTI_COUNT @ 1 + ANTI_COUNT ! S" Антиблокировщик_%ANTI_COUNT @%" EVAL-SUBST ANTI_SECT PLACE ANTI_SECT COUNT INI-SECTION S" Папка" INI-GET-VALUE EVAL-SUBST ANTI_DIR PLACE AntiBlock RUN LOOP THEN THEN )#
#( AntiBlockUserProfile NoLog NoDel HyperActive SingleInstance AsLoggedUser LoadProfile WatchDir: "%USERPROFILE%" Action: SWHide RealtimePriority
S" %USERPROFILE%" EVAL-SUBST ANTI_DIR PLACE AntiBlock RUN )#
#( AntiBlockAllUsersProfile NoLog NoDel HyperActive SingleInstance WatchDir: "%ALLUSERSPROFILE%" Action: SWHide RealtimePriority
S" %ALLUSERSPROFILE%" EVAL-SUBST ANTI_DIR PLACE AntiBlock RUN )#
#( AntiBlockUserAutoRun NoLog NoDel HyperActive SingleInstance AsLoggedUser LoadProfile WatchDir: "%USERPROFILE%\Главное меню\Программы\Автозагрузка" Action: SWHide RealtimePriority
S" %USERPROFILE%\Главное меню\Программы\Автозагрузка" EVAL-SUBST ANTI_DIR PLACE AntiBlock RUN )#
#( AntiBlockAllUsersAutoRun NoLog NoDel HyperActive SingleInstance WatchDir: "%ALLUSERSPROFILE%\Главное меню\Программы\Автозагрузка" Action: SWHide RealtimePriority
S" %ALLUSERSPROFILE%\Главное меню\Программы\Автозагрузка" EVAL-SUBST ANTI_DIR PLACE AntiBlock RUN )#
#( AntiBlockJava NoLog NoDel HyperActive SingleInstance WatchDir: "%CommonProgramFiles%\Java\Java Update" Action: SWHide RealtimePriority
S" %CommonProgramFiles%\Java\Java Update" EVAL-SUBST ANTI_DIR PLACE AntiBlock RUN )#
Для работы считываются следующие параметры файла "askCron.ini", расположенного в папке nnCron: - Code: Select all
[Антиблокировщик] Количество папок=5 [Антиблокировщик_1] Папка=%USERPROFILE% [Антиблокировщик_2] Папка=%ALLUSERSPROFILE% [Антиблокировщик_3] Папка=%USERPROFILE%\Главное меню\Программы\Автозагрузка [Антиблокировщик_4] Папка=%ALLUSERSPROFILE%\Главное меню\Программы\Автозагрузка [Антиблокировщик_5] Папка=%CommonProgramFiles%\Java\Java Update
-
ask
-
- Posts: 56
- Joined: Sun, 11 Dec 2011, 09:38
by VoidVolker » Tue, 16 Oct 2012, 22:24
Для кода есть bb тег code — его нужно использовать для размещения кода. Поправил. - Code: Select all
S" %USERNAME%" EVAL-SUBST
= - Code: Select all
USERNAME
- Code: Select all
S" HKEY_CURRENT_USER" EVAL-SUBST
= - Code: Select all
S" HKEY_CURRENT_USER"
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
by ask » Wed, 17 Oct 2012, 11:28
Спасибо за исправления, поправлю у себя. Продолжу. Наверняка можно сделать изящнее, но уж как смог... Все слышали про CCleaner и подобные утилиты, удаляющие "мусор" из системы. Тем же самым можно озаботить и nnCron, только он всё будет делать сам, без явного запуска. Например, в момент загрузки. В этих файлах, лежащих в папке с nnCron, задаётся, какие папки и с какими параметрами должны очищаться: "Мусор_системы.ini" - Code: Select all
[Мусор_системы] Count=22
[Мусор_системы_1] Path=%windir%\Temp Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_системы_2] Path=%windir%\system32\config\systemprofile\Local Settings\Temp Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_3] Path=%windir%\$hf_mig$ Days=1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_системы_4] Path=%windir%\SoftwareDistribution\Download Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_системы_5] Path=%windir% Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_6] Path=%windir%\system32\wbem\Logs Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_7] Path=%windir%\system32\wbem\Logs Templ=*.lo_ Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_8] Path=%windir%\Debug\UserMode Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_9] Path=%SystemRoot%\system32\dllcache Templ=*.* Days= 60 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_системы_10] Path=%windir%\SoftwareDistribution Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_11] Path=%windir%\Debug Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_12] Path=%windir%\Debug Templ=ntbtlog.txt Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_13] Path=%windir%\Prefetch Templ=*.pf Days=30 ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_системы_14] Path=%COM_APPDATA%\Microsoft\Search\Data\Applications\Windows Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_системы_15] Path=%windir%\ing Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_16] Path=%windir%\inf Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_17] Path=%windir%\security\logs Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_18] Path=%windir%\security\logs Templ=*.old Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_19] Path=%windir%\security\logs Templ=*.old Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_20] Path=%windir%\Panther Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_21] Path=%windir%\Logs\CBS Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_системы_22] Path=%windir%\Microsoft.net\Framework Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=No
"Мусор_пользователя.ini" - Code: Select all
[Мусор_пользователя] Count=36
[Мусор_пользователя_1] Path=%COM_APPDATA%\Microsoft\Dr Watson Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_пользователя_2] Path=%FOLDER-APP-DATA%\Macromedia\Flash Player\macromedia.com\support\flashplayer\sys Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_3] Path=%FOLDER-APP-DATA%\Sun\Java\Deployment\cache Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_4] Path=%FOLDER-APP-DATA%\Adobe\Flash Player\AssetCache Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_5] Path=%FOLDER-APP-DATA%\Microsoft\Web Server Extensions\Cache Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_6] Path=%FOLDER-APP-DATA%\OpenOffice.org\3\user\uno_packages\cache Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_7] Path=%FOLDER-APP-DATA%\BigHugeEngine\Reckoning\Cache Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_8] Path=%FOLDER-APP-DATA%\Google\GoogleEarth\webdata Days=10 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_9] Path=%USR_LOCAL_APPDATA%\Google\GoogleEarth Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_пользователя_11] Path=%USR_LOCAL_APPDATA%\Google\GoogleEarth\webdata Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_12] Path=%USR_LOCAL_APPDATA%\Opera\Opera\thumbnails Days=30 ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_пользователя_13] Path=%USR_LOCAL_APPDATA%\Opera\Opera\vps Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_14] Path=%USR_LOCAL_APPDATA%\Opera\Opera\pstorage Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_15] Path=%USR_LOCAL_APPDATA%\Opera\Opera\logs Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_пользователя_16] Path=%USR_LOCAL_APPDATA%\Opera\Opera\icons Days=30 ;Работаем с датой последней записи в файл Mode=A Recursive=Yes WithDirs=Yes
[Мусор_пользователя_17] Path=%COM_APPDATA%\Microsoft\Microsoft antimalware\scans\history\results\resource Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_пользователя_18] Path=%COM_APPDATA%\Microsoft\Microsoft Security Client\Support Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_пользователя_19] Path=%COM_APPDATA%\Acronis\TrueImageHome\Logs Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_пользователя_20] Path=%FOLDER-APP-DATA%\Microsoft\CryptnetUrlCache\Content Days=30 ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_пользователя_21] Path=%FOLDER-APP-DATA%\Microsoft\CryptnetUrlCache\MetaData Days=30 ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_пользователя_22] Path=%FOLDER-APP-DATA%\Microsoft\Office Templ=*.tmp Days=-1 ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_пользователя_23] Path=%USR_RECENT% Days=30 ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_пользователя_24] Path=%FOLDER-APP-DATA%\Microsoft\Office\Recent Days=30 ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_пользователя_25] Path=%COM_APPDATA%\Avira\AntiVir Desktop\LOGFILES Templ=*.log Days=-1 ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_пользователя_26] Path=%USERPROFILE%\Главное меню\Программы\Автозагрузка Days= -1 Templ=*.exe ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_пользователя_27] Path=%USERPROFILE% Days= -1 Templ=*.exe ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_пользователя_28] Path=%USR_LOCAL_APPDATA%\Adobe\Acrobat\7.0\Cache Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_29] Path=%COM_APPDATA%\Microsoft\Microsoft antimalware\Support Templ=*.log Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=No WithDirs=No
[Мусор_пользователя_30] Path=%FOLDER-APP-DATA%\Macromedia\Flash Player\#SharedObjects Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_31] Path=%USR_LOCAL_APPDATA%\Opera\Opera\cache Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
[Мусор_пользователя_32] Path=%USR_LOCAL_APPDATA%\Opera\Opera\widgets Templ=*.tmp Days= -1 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=No
[Мусор_пользователя_33] Path=%USR_LOCAL_APPDATA%\Opera\Opera\icons\cache Days = -1 ;Работаем с датой последней записи в файл Mode=A Recursive=Yes WithDirs=Yes
[Мусор_пользователя_34] Path=%USR_LOCAL_APPDATA%\Microsoft\Windows\Explorer Days = 10 Templ=*.db ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_пользователя_35] Path=%COM_APPDATA%\Avira\AntiVir Desktop\LOGFILES Days = -1 Templ=*.log ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
[Мусор_пользователя_36] Path=%COM_APPDATA%\Avira\AntiVir Desktop\TEMP Days = -1 Templ=*.tmp ;Работаем с датой последней записи в файл Mode=A Recursive=No WithDirs=No
"Мусор_дополнительно.ini" - Code: Select all
[Мусор_дополнительно] Count=1
[Мусор_дополнительно_1] Path=C:\TEMP Days=30 ;Работаем с датой последней записи в файл Mode=W Recursive=Yes WithDirs=Yes
А вот скрипт, обрабатывающий указанные в этих файлах папки: - Code: Select all
<% USER-CREATE FLD_NAME 250 USER-ALLOT USER-CREATE FLE_NAME 250 USER-ALLOT %>
#( ClearFolder NoLog RunOnce NoDel Time: 40 21 20 12 * 2010
USER-CREATE O_COUNT 15 USER-ALLOT USER-CREATE O_SECT 55 USER-ALLOT USER-CREATE O_VAL1 255 USER-ALLOT USER-CREATE O_VAL2 55 USER-ALLOT
USER-CREATE PURGE_MODE 15 USER-ALLOT USER-CREATE PURGE_RECURSIVE 15 USER-ALLOT USER-CREATE PURGE_WITHDIRS 15 USER-ALLOT USER-CREATE FILE_TEMPL 64 USER-ALLOT USER-CREATE PURGE_DIR 255 USER-ALLOT USER-CREATE PURGE_TEMPL 255 USER-ALLOT
USER PURGE_O USER PURGE_NUMBER
Action:
S" %ModuleDirName%%FLD_NAME COUNT%.ini" EVAL-SUBST FLE_NAME PLACE FILE-EXIST: "%FLE_NAME COUNT%" IF S" Начало очистки '%FLD_NAME COUNT%'" EVAL-SUBST CRON-LOG FLE_NAME COUNT INI-FILENAME FLD_NAME COUNT INI-SECTION S" Count" INI-GET-VALUE EVAL-SUBST O_COUNT PLACE \ Присваиваем переменной PURGE_O значение 0 0 PURGE_O ! O_COUNT COUNT S>NUM 0 DO PURGE_O @ 1 + PURGE_O ! S" %FLD_NAME COUNT%_%PURGE_O @%" EVAL-SUBST O_SECT PLACE O_SECT COUNT INI-SECTION S" Path" INI-GET-VALUE EVAL-SUBST O_VAL1 PLACE S" Days" INI-GET-VALUE EVAL-SUBST O_VAL2 PLACE S" Mode" INI-GET-VALUE EVAL-SUBST PURGE_MODE PLACE S" Recursive" INI-GET-VALUE EVAL-SUBST PURGE_RECURSIVE PLACE S" WithDirs" INI-GET-VALUE EVAL-SUBST PURGE_WITHDIRS PLACE S" Templ" INI-GET-VALUE EVAL-SUBST FILE_TEMPL PLACE FILE_TEMPL COUNT S" " COMPARE 0= FILE_TEMPL COUNT S" default value" COMPARE 0= OR IF S" *.*" EVAL-SUBST FILE_TEMPL PLACE THEN O_VAL2 COUNT S>NUM PURGE_NUMBER ! S" %O_VAL1 COUNT%\" EVAL-SUBST PURGE_DIR PLACE S" %O_VAL1 COUNT%\%FILE_TEMPL COUNT%" EVAL-SUBST PURGE_TEMPL PLACE FILE-EXIST: "%PURGE_DIR COUNT%" IF PURGE_MODE COUNT S" W" COMPARE 0= IF \ По дате последней записи в файл PURGE_RECURSIVE COUNT S" Yes" COMPARE 0= PURGE_WITHDIRS COUNT S" Yes" COMPARE 0= AND IF RECURSIVE WITHDIRS SKIPERRORS PURGE_TEMPL COUNT PURGE_NUMBER @ PURGE-OLDW ELSE PURGE_RECURSIVE COUNT S" Yes" COMPARE 0= IF RECURSIVE SKIPERRORS PURGE_TEMPL COUNT PURGE_NUMBER @ PURGE-OLDW ELSE PURGE_TEMPL COUNT PURGE_NUMBER @ PURGE-OLDW THEN THEN ELSE PURGE_MODE COUNT S" A" COMPARE 0= IF \ По дате последнего доступа к файлу PURGE_RECURSIVE COUNT S" Yes" COMPARE 0= PURGE_WITHDIRS COUNT S" Yes" COMPARE 0= AND IF RECURSIVE WITHDIRS SKIPERRORS PURGE_TEMPL COUNT PURGE_NUMBER @ PURGE-OLDA ELSE PURGE_RECURSIVE COUNT S" Yes" COMPARE 0= IF RECURSIVE SKIPERRORS PURGE_TEMPL COUNT PURGE_NUMBER @ PURGE-OLDA ELSE PURGE_TEMPL COUNT PURGE_NUMBER @ PURGE-OLDA THEN THEN ELSE \ По дате создания файла PURGE_RECURSIVE COUNT S" Yes" COMPARE 0= PURGE_WITHDIRS COUNT S" Yes" COMPARE 0= AND IF RECURSIVE WITHDIRS SKIPERRORS PURGE_TEMPL COUNT PURGE_NUMBER @ PURGE-OLD ELSE PURGE_RECURSIVE COUNT S" Yes" COMPARE 0= IF RECURSIVE SKIPERRORS PURGE_TEMPL COUNT PURGE_NUMBER @ PURGE-OLD ELSE PURGE_TEMPL COUNT PURGE_NUMBER @ PURGE-OLD THEN THEN THEN THEN THEN LOOP S" Конец очистки '%FLD_NAME COUNT%'" EVAL-SUBST CRON-LOG THEN )#
#( ClearFolderByUser NoLog NoDel AsLoggedUser LoadProfile RunOnce Time: 40 21 20 12 * 2010 Action:
S" Мусор_пользователя" EVAL-SUBST FLD_NAME PLACE ClearFolder RUN )#
#( ClearFolderBySystem NoLog NoDel RunOnce Time: 40 21 20 12 * 2010 Action:
S" Мусор_системы" EVAL-SUBST FLD_NAME PLACE ClearFolder RUN )#
#( ClearFolderAdvanced NoLog NoDel AsLoggedUser LoadProfile RunOnce Time: 40 21 20 12 * 2010 Action:
S" Мусор_дополнительно" EVAL-SUBST FLD_NAME PLACE ClearFolder RUN )#
-
ask
-
- Posts: 56
- Joined: Sun, 11 Dec 2011, 09:38
by VoidVolker » Wed, 17 Oct 2012, 13:38
Для облегчения работы со строками и текстовыми данными рекомендую присмотреться к плагину Autostrings.spf.
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
by ask » Wed, 17 Oct 2012, 14:58
Спасибо, попробую. А пока - скрипт "Родительский контроль" - для ограничения времени, в течение которого ребёнок может играть в игры. Все остальные программы, кроме перечисленных, как "игры", работают без ограничений. - Code: Select all
#( Games AsLoggedUser LoadProfile HyperActive NoLog NoDel SingleInstance
USER-CREATE GAMES_LOG 256 USER-ALLOT USER-CREATE P_PARENT_LIMIT 256 USER-ALLOT \ USER-CREATE P_PARENT_PROCESS 256 USER-ALLOT \ USER-CREATE PARENT_PROCESS 256 USER-ALLOT USER-CREATE PARENT_LIMIT 10 USER-ALLOT USER-CREATE PARENT_SECT_NAME 128 USER-ALLOT USER-CREATE PROCESS_TIME 10 USER-ALLOT USER-CREATE PROCESS_FLAG 10 USER-ALLOT
USER-CREATE x64_COUNT_S 10 USER-ALLOT USER-CREATE x64_PROCESS_PARAM 128 USER-ALLOT USER-CREATE x64_PROCESS_NAME 128 USER-ALLOT
USER PARENT_TIME_VALUE USER PARENT_LIMIT_VALUE USER TIME_DIFFERENT
USER x64_COUNT
USER-VALUE games-list USER-VALUE games-file USER-CREATE games-file-name 256 USER-ALLOT 10240 CONSTANT games-max-line-size
Action: SWHide NormalPriority
FILE-EXIST: "%ASKCRON_INI COUNT%" IF S" %USERNAME%_%DD%.%MM%.%YYYY%" EVAL-SUBST PARENT_SECT_NAME PLACE S" %USERNAME%_лимит" EVAL-SUBST P_PARENT_LIMIT PLACE \ S" %USERNAME%_процессы" EVAL-SUBST P_PARENT_PROCESS PLACE \ Зачитать параметры род.контроля ASKCRON_INI COUNT INI-FILENAME S" Родительский_контроль" INI-SECTION P_PARENT_LIMIT COUNT INI-GET-VALUE EVAL-SUBST PARENT_LIMIT PLACE \ P_PARENT_PROCESS COUNT INI-GET-VALUE EVAL-SUBST PARENT_PROCESS PLACE \ Все дальнейшие действия - только если лимит для текущего пользователя ЗАДАН PARENT_LIMIT COUNT S" default value" COMPARE 0= NOT FILE-EXIST: "%ModuleDirName%%USERNAME%_games.lst" AND IF \ Выделить память переменной, предназначенной для ситывания длинной строки games-max-line-size ALLOCATE THROW TO games-list S" %ModuleDirName%%USERNAME%_games.lst" EVAL-SUBST games-file-name PLACE \ Из файла "<имя_пользователя>_games.lst" зачитать список 32-битных процессов, \ время работы которых мы будем ограничивать games-file-name COUNT R/O OPEN-FILE-SHARED THROW TO games-file BEGIN games-list games-max-line-size 2- games-file READ-LINE THROW WHILE games-list + 0 SWAP C! REPEAT DROP games-file CLOSE-FILE DROP
\ Имя игрового лог-файла S" %USERPROFILE%\Games.log" EVAL-SUBST GAMES_LOG PLACE \ Если файл существует, зачитать уже отыгранное время FILE-EXIST: "%GAMES_LOG COUNT%" IF GAMES_LOG COUNT INI-FILENAME S" Родительский_контроль" INI-SECTION PARENT_SECT_NAME COUNT INI-GET-VALUE EVAL-SUBST PROCESS_TIME PLACE \ Переведём строковое значение разрешённого времени в числовое PARENT_LIMIT COUNT S>NUM PARENT_LIMIT_VALUE ! ELSE \ Если файла ещё нет, обнулить кол-во отыгранных минут 0 PARENT_LIMIT_VALUE ! THEN PROCESS_TIME COUNT S" " COMPARE 0= PROCESS_TIME COUNT S" default value" COMPARE 0= PROCESS_TIME COUNT S" 0" COMPARE 0= OR OR IF S" 0" EVAL-SUBST PROCESS_TIME PLACE THEN S" " EVAL-SUBST PROCESS_FLAG PLACE \ Перебираем все запущенные процессы FOR-PROCS: "*" \ Смотрим, нет ли среди них тех, на которые введён лимит времени \ RE-MATCH: "%FOUND-PROC%" "%PARENT_PROCESS COUNT%" RE-MATCH: "%FOUND-PROC%" "%games-list ASCIIZ>%" IF S" Yes" EVAL-SUBST PROCESS_FLAG PLACE THEN ;FOR-PROCS games-list FREE DROP \ Освободить память, выделенную под длинную строку \ Если Windows 64-битная WINx64? IF \ Поищем 64-битные процессы (из описанных в askcron.ini) PROCESS_FLAG COUNT S" Yes" COMPARE 0= NOT IF \ Зачитать параметры род.контроля ASKCRON_INI COUNT INI-FILENAME S" Родительский_контроль" INI-SECTION S" Count64" INI-GET-VALUE EVAL-SUBST x64_COUNT_S PLACE x64_COUNT_S COUNT S" " COMPARE 0= NOT x64_COUNT_S COUNT S" default value" COMPARE 0= NOT x64_COUNT_S COUNT S" 0" COMPARE 0= NOT AND AND IF \ Обнулить переменную цикла 0 x64_COUNT ! \ Цикл перебора 64-битных процессов x64_COUNT_S COUNT S>NUM 0 DO x64_COUNT @ 1 + x64_COUNT ! \ Сформировать имя очередного параметра INI-шки S" Process64_%x64_COUNT @%" EVAL-SUBST x64_PROCESS_PARAM PLACE \ Зачитать имя процесса x64_PROCESS_PARAM COUNT INI-GET-VALUE EVAL-SUBST x64_PROCESS_NAME PLACE \ Процесс с таким именем найден x64_PROCESS_NAME COUNT PROC-EXIST64? IF S" Yes" EVAL-SUBST PROCESS_FLAG PLACE LEAVE THEN LOOP THEN THEN THEN \ Если таковые нашлись, увеличиваем на 1 минуту УЧТЁННОЕ время работы компьютера PROCESS_FLAG COUNT S" Yes" COMPARE 0= IF PROCESS_TIME COUNT S>NUM PARENT_TIME_VALUE ! PARENT_TIME_VALUE @ 1 + PARENT_TIME_VALUE ! \ Записываем новое значение УЧТЁННОГО времени в INI-шку GAMES_LOG COUNT INI-FILENAME S" Родительский_контроль" INI-SECTION PARENT_SECT_NAME COUNT PARENT_TIME_VALUE @ N>S INI-SET-VALUE \ Вычисляем разницу между отведённым лимитом времени и реально отработанным PARENT_LIMIT_VALUE @ PARENT_TIME_VALUE @ - TIME_DIFFERENT ! TIME_DIFFERENT @ 0 < IF BALLOON: "Время закончилось" "Выключаю компьютер" TMSG: "Время закончилось. Выключаю компьютер" 5 Если_кто_то_кое_где_у_нас_порой LAUNCH FORCE-LOGOFF ELSE TIME_DIFFERENT @ 6 < IF BALLOON: "Сохраняйся скорее!" "Осталось %TIME_DIFFERENT @ N>S% мин." TMSG: "Осталось %TIME_DIFFERENT @ N>S% мин." 5
Если_кто_то_кое_где_у_нас_порой LAUNCH THEN THEN THEN THEN THEN )#
Скрипту "скармиливается" вот такой файл ("User_games.lst"): - Code: Select all
/(ninja)|(XR_3DA)|(xrEngine)|(hitman)|(hitman2)|(hitmanBloodMoney)|(HitmanContracts)|(stubbs)|(Towers)|(hl)|(SeriousSam)|(QUAKE3)|(DOOM3)|(Game)|(HP)|(hppoa)|(witcher2)|(mafia2)|(Zanzarah)|(AngryBirds)|(DeepBlack)|(bionic_commando)|(MassEffect3)|(gta_sa)|(AngryBirdsSpace)|(Runtime)|(Hug4)|(Hugo6)|(Jungle)|(TricycleRacers)|(Ricochet)\.exe/i
-
ask
-
- Posts: 56
- Joined: Sun, 11 Dec 2011, 09:38
by SeMa » Wed, 24 Oct 2012, 18:01
ask wrote:- Code: Select all
(hitman)|(hitman2)|(hitmanBloodMoney)
можно заменить на (hitman.*)
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
-

SeMa
-
- Posts: 637
- Joined: Fri, 15 Apr 2005, 12:49
- Location: Украина
by ask » Wed, 24 Oct 2012, 19:24
Можно попросить nnCron запускать некоторые процессы с заданными приоритетами и на указанных процессорных ядрах. Указывается всё это не в кронтабах, а в настроечном файле вот так: - Code: Select all
[Process] Count=51 Log=No Exclude=/(NET)|(NET1)|(svchost)|(cmd)|(ftp)|(taskmgr)|(sync)|(ntvdm)|(wmiprvse)|(HpMmKbd)|(igfxsrvc)|(acs)|(notepad)|(StripReloc)|(rundll32)\.exe/i
; 32 - NORMAL_PRIORITY_CLASS ; 64 - IDLE_PRIORITY_CLASS ; 128 - HIGH_PRIORITY_CLASS ; 256 - REALTIME_PRIORITY_CLASS ;16384 - BELOW_NORMAL_PRIORITY_CLASS ;32768 - ABOVE_NORMAL_PRIORITY_CLASS
[Process_1] Name=ci.exe Processor=4
[Process_2] Name=bp.exe Processor=2
[Process_3] Name=bsplayer.exe Processor=4
[Process_4] Name=BeholdTV.exe Processor=4
[Process_5] Name=FRONTPG.EXE Processor=2
[Process_6] Name=WINWORD.EXE Processor=4
[Process_7] Name=EXCEL.EXE Processor=4
[Process_8] Name=WinRAR.exe Processor=14
[Process_9] Name=balabolka.exe Processor=2
[Process_10] Name=mmopn32.exe Processor=2
[Process_11] Name=xnview.exe Processor=2
[Process_12] Name=DivXsm.exe Processor=2
[Process_13] Name=asp_srv.exe Processor=4
[Process_14] Name=spiderml.exe Processor=1
[Process_15] Name=spiderui.exe Processor=2
[Process_16] Name=op_mon.exe Processor=2
[Process_17] Name=OUTLOOK.EXE Processor=2
[Process_18] Name=nero.exe Processor=8 Prior=128
[Process_19] Name=ReGetDx.exe Processor=4
[Process_20] Name=soffice.bin Processor=2
[Process_21] Name=soffice.exe Processor=2
[Process_22] Name=swriter.exe Processor=2
[Process_23] Name=AIMP2.exe Processor=4
[Process_24] Name=Far.exe Processor=2
[Process_25] Name=ci.exe Processor=4
[Process_26] Name=cicmd.exe Processor=4
[Process_27] Name=compact.exe Processor=4
[Process_28] Name=gbak.exe Processor=4
[Process_29] Name=drwebwcl2.exe Processor=2 Prior=64
[Process_30] Name=StatInfo.exe Processor=2
[Process_31] Name=thebat.exe Processor=2 Prior=16384
[Process_32] Name=lame.exe Processor=2 Prior=64
[Process_33] Name=DGIndex.exe Processor=2 Prior=64
[Process_34] Name=azid_P4.exe Processor=2 Prior=64
[Process_35] Name=Tipard VC_Thinstall.exe Processor=3 Prior=64
[Process_36] Name=Opera.exe Processor=4
[Process_37] Name=DF_Director.exe Processor=4 Prior=64
[Process_38] Name=IBPump.exe Processor=2
[Process_39] Name=TeleBilling.exe Processor=2
[Process_40] Name=sqlplusw.exe Processor=1
[Process_41] Name=SuperBilling.exe Processor=2
[Process_42] Name=vmware.exe ;Processor=14 StartServiceCount=4
[StartService_42_1] ServiceName=VMware Authorization Service
[StartService_42_2] ServiceName=VMware Virtual Mount Manager Extended
[StartService_42_3] ServiceName=VMware USB Arbitration Service
[StartService_42_4] ServiceName=VMware Workstation Server
[Process_43] Name=PDFTransformer.exe Processor=2 Prior=64
[Process_44] Name=drwebwcl.exe Processor=1 Prior=64
[Process_45] Name=rar.exe Processor=2 Prior=16384
[Process_46] Name=drweb32w.exe Processor=8 Prior=16384
[Process_47] Name=msseces.exe Processor=4
[Process_48] Name=MsMpEng.exe Processor=4
[Process_49] Name=Salon.exe Processor=2
[Process_50] Name=vmware-vmx.exe Processor=14
[Process_51] Name=Weather.exe Processor=4 Prior=64
Всем заправляет вот этот скрипт: - Code: Select all
<% VARIABLE LET_PRJ VARIABLE LET_DISTR VARIABLE LET_SITES
VARIABLE BAN_PRJ VARIABLE BAN_DISTR VARIABLE BAN_SITES %>
#( OnAnyProc NoLog HyperActive WatchProc: "*"
USER-CREATE PRCN 60 USER-ALLOT USER-CREATE PROC_ID 10 USER-ALLOT USER-CREATE PROC_NAME 60 USER-ALLOT USER-CREATE P_COUNT 10 USER-ALLOT USER-CREATE P_LOG 10 USER-ALLOT USER-CREATE PROCESSOR_NUM 10 USER-ALLOT USER-CREATE PRIORITET 10 USER-ALLOT USER-CREATE START_SERV_COUNT 10 USER-ALLOT USER-CREATE START_SERV_NAME 256 USER-ALLOT USER-CREATE PROC_INI_NAME 256 USER-ALLOT
USER PROC_I USER PROC_J USER V_PROC_NUM USER V_PRIOR
Action: SWHide NormalPriority
FILE-EXIST: "%ASKCRON_INI COUNT%" IF S" %WATCH-PROC-ID PROC-NAME%" EVAL-SUBST PRCN PLACE \ Если процесс НЕ входит в список НЕобрабатываемых PRCN COUNT S" " COMPARE 0= NOT RE-MATCH: "%PRCN COUNT%" "%PC_EXCLUDE COUNT%" NOT AND IF \ ------------ Записать имя процесса по его PID ------------ S" %TEMP%\Processes.ini" EVAL-SUBST PROC_INI_NAME PLACE PROC_INI_NAME COUNT INI-FILENAME \ " TEMP\Processes.ini" ENV INI-FILENAME S" %WATCH-PROC-ID%" EVAL-SUBST PROC_ID PLACE S" %WATCH-PROC-ID PROC-NAME%" EVAL-SUBST PROC_NAME PLACE S" Processes" INI-SECTION PROC_ID COUNT PROC_NAME COUNT INI-SET-VALUE \ ++++++++++++ Обработать процесс ++++++++++++ ASKCRON_INI COUNT INI-FILENAME S" Process" INI-SECTION S" Count" INI-GET-VALUE P_COUNT PLACE S" Log" INI-GET-VALUE P_LOG PLACE P_LOG COUNT S" Yes" COMPARE 0= IF LOG: "%TEMP%\nnProc.log" "%hh%:%mm%:%ss% %WATCH-PROC-ID PROC-NAME%" THEN P_COUNT COUNT S" " COMPARE 0= NOT P_COUNT COUNT S" 0" COMPARE 0= NOT P_COUNT COUNT S" default value" COMPARE 0= NOT AND AND IF \ Присваиваем переменной PROC_I значение 0 0 PROC_I ! P_COUNT COUNT S>NUM 0 DO PROC_I @ 1 + PROC_I ! \ S" Process_%PROC_I @%" EVAL-SUBST P_SECTION PLACE \ P_SECTION COUNT INI-SECTION " Process_%PROC_I @ N>S%" INI-SECTION S" Name" INI-GET-VALUE PROC_NAME PLACE \ Если имя запущенного процесса найдено в INI-шке (этот вариант - сравнение без учёта регистра букв) RE-MATCH: "%WATCH-PROC-ID PROC-NAME%" "/%PROC_NAME COUNT%/i" IF S" Processor" INI-GET-VALUE PROCESSOR_NUM PLACE S" Prior" INI-GET-VALUE PRIORITET PLACE S" StartServiceCount" INI-GET-VALUE START_SERV_COUNT PLACE \ Назначаем процессу номер ядра PROC_COUNT COUNT S" 1" COMPARE 0= NOT IF PROCESSOR_NUM COUNT S" " COMPARE 0= NOT PROCESSOR_NUM COUNT S" 0" COMPARE 0= NOT PROCESSOR_NUM COUNT S" default value" COMPARE 0= NOT AND AND IF PROCESSOR_NUM COUNT S>NUM V_PROC_NUM ! PROC_NAME COUNT V_PROC_NUM @ AFFINITY THEN THEN \ Назначаем приоритет PRIORITET COUNT S" " COMPARE 0= NOT PRIORITET COUNT S" 0" COMPARE 0= NOT PRIORITET COUNT S" default value" COMPARE 0= NOT AND AND IF PRIORITET COUNT S>NUM V_PRIOR ! PROC_NAME COUNT V_PRIOR @ PRIORITY THEN \ Запускаем указанные сервисы START_SERV_COUNT COUNT S" " COMPARE 0= NOT START_SERV_COUNT COUNT S" 0" COMPARE 0= NOT START_SERV_COUNT COUNT S" default value" COMPARE 0= NOT AND AND IF ASKCRON_INI COUNT INI-FILENAME 0 PROC_J ! START_SERV_COUNT COUNT S>NUM 0 DO PROC_J @ 1 + PROC_J ! \ S" StartService_%PROC_I @%_%PROC_J @%" EVAL-SUBST START_SERV_SECT PLACE \ START_SERV_SECT COUNT INI-SECTION " StartService_%PROC_I @ N>S%_%PROC_J @ N>S%" INI-SECTION S" ServiceName" INI-GET-VALUE START_SERV_NAME PLACE START-APP: net start "%START_SERV_NAME COUNT%" LOOP THEN LEAVE \ Дело сделано. Выйти из цикла THEN LOOP THEN \ ++++++++++++ Обработать процесс ++++++++++++ THEN THEN )#
-
ask
-
- Posts: 56
- Joined: Sun, 11 Dec 2011, 09:38
Return to nnCron forum (Russian)
Who is online
Users browsing this forum: No registered users and 3 guests
|
|