Ru-Board.club
← Вернуться в раздел «Программы»

» nnCron-Планировщик с поддержкой скриптового языка

Автор: codewarlock1101
Дата сообщения: 05.05.2006 14:32
Stygis
Спасибо, только не могу скомпилить скрипт... может нужно плагин подключить?
Вот код:
#( ent_psw
NoLog
WINAPI: keybd_event USER32.DLL
WatchHotKey: "@3"
Action:
PAUSE: 500
MOUSE-MOVEW: 20 50
0 1 69 VK_MENU keybd_event DROP
MOUSE-RBCLK
0 3 69 VK_MENU keybd_event DROP
SEND-KEYS: "+({TAB})user{TAB}psw{TAB}dbserver3{ENTER}"
)#
Пикает и орет про ошибку.

Если несложно - подскажи пожалуйста
Автор: Stygis
Дата сообщения: 05.05.2006 15:52
unreal666

Цитата:
Интересно, а зачем функции keybd_event передается и код виртуальной клавиши и скан-код.

Ды, наверное, как всегда оставили от какой-нибудь Windows 1.0 параметры

Цитата:
Вообще лучше использовать функцию SendInput...

Вот я тоже решил не заморачиваться со структурой и вызвать простую функцию

codewarlock1101
Хм... у меня никаких ошибок, плагины - только поставляемые вместе с nnCron. На всякий случай убери пробелы перед "0".
Как орет про ошибку? Что именно говорит?
Автор: codewarlock1101
Дата сообщения: 05.05.2006 16:33
Stygis
Ругается на 0 1 69 VK_MENU keybd_event DROP
пробелы убрал не помогает... может с версией чего? Я скачал последнюю (nncron.exe v 1.91 Build 1083 21.03.2006)
при этом орет что ошибка синтакчияеская
Автор: Stygis
Дата сообщения: 05.05.2006 17:01
codewarlock1101
Хм... версия та же.... Все так же...
Попробуй добавить задаче параметр AsLoggedUser (хотя у меня и без него работает...).
Если не поможет, попробуй создать задачу, состоящую только из нажатия - тож ругаться будет?
Кроме того, можешь попробовать выполнить в консоли

Код: 0 1 69 VK_MENU keybd_event DROP
Автор: codewarlock1101
Дата сообщения: 06.05.2006 11:28
Stygis
Опция AsLoggedUser не помогла.... Может настроить нужно чего?

Вот что вышло в консоли...
0 1 69 VK_MENU keybd_event DROP
^ ERROR #-2003

Теперь я понял! заменил VK_MENU на его код (18) - ошибки не стало (то есть #define не определены).
Спасибо тебе огромное!
Автор: Stygis
Дата сообщения: 06.05.2006 11:46
Попробуй установить плуг keystate.spf Про то, что его подключил, я совсем забыл
Автор: Alex1985
Дата сообщения: 08.05.2006 21:33
Объясните пожалуйста, на что влияет галка "Зaпуcкaть GUI oт имeни пoльзoвaтeля:"
Если верить хелпу то GUI nnCron должен грузиться от указаного пользователя, но что с галкой, что без неё ничего не меняется. tm.exe всегда грузится под текущей учётной записью. Или я не туда смотрю?
Автор: lucky_Luk
Дата сообщения: 12.05.2006 09:20
Есть прога которая умеет выключать комп, нужно чтобы вместо выключения он уходил в спящий режим. Можно ли перехватывать выключение с помощью WatchQueryShutdown
и отправлять комп в спящий режим словом POWER-HIBERNATE - это не повредит ОС? ОС WinXP SP2.
Автор: Stygis
Дата сообщения: 12.05.2006 10:26
lucky_Luk
А собственно чем это может повредить ОС? Со спокойной душой юзай
Заодно и мне помог, что-то я не думал о такой задаче, терь бу реализовывать
Автор: lucky_Luk
Дата сообщения: 12.05.2006 19:07
Не могу из одной задачи снять флаг "NoActive" для другой задачи. В хелпе написано:

Цитата:
How can I make the task Active/NoActive programmatically?..
From the another task:

\ activating
<task_name> @ CF-ACTIVE SET-CRON-FLAG

Вторая задача, с которой нужно снять флаг NoActive, называется Task1

Когда вместо "task_name" ставлю имя нужной задачи т.е. получается

Task1 @ CF-ACTIVE SET-CRON-FLAG

то nnCron начинает ругаться на эту строку и не сбрасывает флаг. В чем дело? Версия сабжа 1.91 Build 1083.

Использование задачи с WatchQueryShutdown для перевода машины в спящий режим неоправдано - непосредственно выключение перехватывается и спящий режим включается, но закрываются все работающие программы - например антивирус и пр. Т.е. происходит то же самое что и при штатном выключении, но комп не вырубается, а выполняет указания nnCron.
Автор: Stygis
Дата сообщения: 12.05.2006 20:14
lucky_Luk
Хм... Имя точно написано? Регистр соблюден?

Добавлено:
Если из консоли это же делать, тож так же реагирует?
Автор: Stygis
Дата сообщения: 13.05.2006 18:28
Кстати, пара вопросов:
1) как сделать, чтобы новые задачи добавлялись не в nncron.tab, а в другой файл?
2) можно ли отключить автоматическое перечитывание crontab-файла?
3) слово reload-crontab в задачах использовать нельзя? Т.е. перечитывание crontab'а возможно только командой nncron.exe -reload? Или есть еще какое-то слово?
Автор: lucky_Luk
Дата сообщения: 13.05.2006 19:23
Stygis

Цитата:
м... Имя точно написано? Регистр соблюден?

Если из консоли это же делать, тож так же реагирует?

Регистр соблюден, проверял.
Консоль эту команду хавает без проблем.

Но не пойму как действует команда Task1 @ CF-ACTIVE SET-CRON-FLAG
Допустим есть задача:


Код:
#( Task1
NoActive
WatchHotKey: "^+H"
Action:
MSG: "Компьютер будет переведен в спящий режим"
)#
Автор: Stygis
Дата сообщения: 13.05.2006 19:28
lucky_Luk

Цитата:
Еще вопрос - зачем в сабже предусмотрено наличие нескольких кронтабов, ведь одновременно он читает задачи только из одного?

С чего ты взял? Если в параметрах указать все кронтабы, то будет читать из всех....

Добавлено:
Хм... и правда, SET-CRON-FLAG'ом задача становится активной, но не реагирует на хоткей
А вот если сделать наоборот, т.е. сделать задачу активной, потом применить CLR-CRON-FLAG - задача перестает быть активной... И после этого применяем SET-CRON-FLAG, опять реагирует на хоткей %) Мистика, е-мое %)

Добавлено:
Еще обновление
Задача:

Код: NoActive
WatchHotKey: "z"
Action:
MSG: "Ля-ля-ля"
Автор: lucky_Luk
Дата сообщения: 13.05.2006 20:07
Stygis

Цитата:
С чего ты взял? Если в параметрах указать все кронтабы, то будет читать из всех....

Понятно.

Цитата:
Хм... и правда, SET-CRON-FLAG'ом задача становится активной, но не реагирует на хоткей

А ты уверен что задача становится активной - как проверял?

Цитата:
А вот если сделать наоборот, т.е. сделать задачу активной, потом применить CLR-CRON-FLAG - задача перестает быть активной... И после этого применяем SET-CRON-FLAG, опять реагирует на хоткей %)

Оригинально. Т.е. если нам нужно программно манипулировать флагом NoActive на какой-то задаче тогда придется сделать так:
1. Создаем целевую "активную" - без NoActive задачу.
2. Делаем вторую задачу, которая будет ставить флаг NoActive на нужную нам "активную" задачу, например сразу после загрузки компа.
3. Кроме этого нужно сделать еще одну задачу, которая будет этот флаг в нужное время убирать...
Геморрой.
Для чего мне все это нужно - есть бета-версия одной программы для управления UPS, которая умеет выключать компьютер (но ХЗ-как она сохраняет открытые файлы), но не умеет включать спящий режим (что было бы гораздо безопаснее для файлов). Прога вобщем хорошая вот и хочу ее "доработать". Задача на WatchQueryShutdown не подходит - уже объяснял почему.
Жалко что эта прога не умеет запускать файлы - тогда хватило бы ярлыка на задачу nnCron. Зато она умеет проигрывать wav-файлы - как бы к этому задачу для перехода в спящий режим привязать?
Автор: Stygis
Дата сообщения: 13.05.2006 20:48
lucky_Luk

Цитата:
А ты уверен что задача становится активной - как проверял?

Ну дык, в списке задач минусы уходят Знач работает.... Проверено на других задачах

Наверное, хоткеи регистрируются при перечитывании кронтаба и поэтому такие проблемы....

Цитата:
Геморрой.

Ну не такой уж и гемор... Можно ведь и убрать ненужные задачи из списка, чтоб они видны не были.
И можешь еще попробовать использовать флаг-файлы, но работать будет приблизительно так же

Возможности написать автору программы с просьбой добавить такой пункт нет? Это кажись не очень трудно
ЗЫ. Написал ответ и не мог понять, почему нет букв "я" в ответе Забыл задачу отключить %)
Автор: lucky_Luk
Дата сообщения: 13.05.2006 22:59
Stygis

Цитата:
Возможности написать автору программы с просьбой добавить такой пункт нет? Это кажись не очень трудно

А он на просьбы юзеров реагирует? Я слышал что на оффоруме уже долго висит просьба добавить в сабж упорядочивание по алфавиту списка задач - и нифига. Кроме того там же есть тема про глюк задачи с WATCH-CHANGE-LAST-WRITE на NTFS (я нашел , а кто-то из "наших людей" отписал на оффорум - спасибо) - и тоже нифига, баг есть и в новой версии.

Кстати о списке задач - как он строится? Может можно вручную в кронтабе задачи потасовать чтобы в списке их имена по алфавиту шли?

У тебя задачи с WIN-TRANSPARENCY: работают. А то у меня прозрачность не появляется, уже писал тут, решили что вроде что-то с виндой - но с другими прогами все работает. Не подскажешь что может глючить? У меня ОС WinXP SP2, версия сабжа 1.91 билд 1083.
Автор: Stygis
Дата сообщения: 13.05.2006 23:34
lucky_Luk

Цитата:
А он на просьбы юзеров реагирует?

Эт я про твою прогу для UPS писал


Цитата:
Кстати о списке задач - как он строится? Может можно вручную в кронтабе задачи потасовать чтобы в списке их имена по алфавиту шли?

Ну дык, берем из кронтаба задачи и пихаем их в обратном порядке Т.е. задача, которая описана в nncron.tab первой - в самом низу списка и т.д.


Цитата:
задачи с WIN-TRANSPARENCY

Цитата из помощи:

Цитата:
Обратите, пожалуйста, внимание: установка второго сервис-пака на операционную систему Windows XP препятствует корректной работе слова WIN-TRANSPARENCY:, если nnCron запущен не обычным приложением, а сервисом.

Правда у меня SP2 не стоит, но реакции на команду все равно не увидел %)


Цитата:
глюк задачи с WATCH-CHANGE-LAST-WRITE

Че за глюк?
Автор: lucky_Luk
Дата сообщения: 14.05.2006 18:13
Stygis

Цитата:
Ну дык, берем из кронтаба задачи и пихаем их в обратном порядке Т.е. задача, которая описана в nncron.tab первой - в самом низу списка и т.д.

Спасибо.

Цитата:
Обратите, пожалуйста, внимание: установка второго сервис-пака на операционную систему Windows XP препятствует корректной работе слова WIN-TRANSPARENCY:, если nnCron запущен не обычным приложением, а сервисом.

А если я его как приложения запущу то что потеряю в сравнении с запуском "как сервис"?

Цитата:
Правда у меня SP2 не стоит, но реакции на команду все равно не увидел %)

А если запустить сабж как приложение то заработает?

Цитата:
Че за глюк?

Цитата из Хелпа:

Цитата:
WATCH-CHANGE-LAST-WRITE notify of changes to the last modification date (is triggered when new file is created, or existant file is changed, but in not triggered when a file is deleted)

т.е. задача не должна срабатывать при удалении файла.

У меня задача с WatchDir, WatchSubtree и WATCH-CHANGE-LAST-WRITE на FAT 32 так и работает. А на NTFS она срабатывает и при удалении файла во вложенной папке. Почитай версию для печати, я там эксперимент описывал.
Автор: Stygis
Дата сообщения: 14.05.2006 18:36
lucky_Luk
Цитата из MSDN:

Цитата:
FILE_NOTIFY_CHANGE_LAST_WRITE
Any change to the last write-time of files in the watched directory or subtree causes a change notification wait operation to return. The operating system detects a change to the last write-time only when the file is written to the disk. For operating systems that use extensive caching, detection occurs only when the cache is sufficiently flushed.

WATCH-CHANGE-LAST-WRITE, кажется, обозначает как раз FILE_NOTIFY_CHANGE_LAST_WRITE. Думается функция WatchDir реализует функцию ReadDirectoryChangesW или FindFirstChangeNotification. Может она на FAT и на NTFS по-разному действует? (хотя вроде не должна...)

Добавлено:

Цитата:
А если я его как приложения запущу то что потеряю в сравнении с запуском "как сервис"?

Мне эт тож интересно, нигде не видел, что это дает/отнимает.... Возможно nncron запускается позже и плюс, если будет необходимо запустить приложения от имени SYSTEM, будет сложно это сделатЬ %)
Если надумаешь - в помощи написано, что есть ограничения на пользователей (см помощь-> Запуск и остановка nnCron, в самом конце).

Цитата:
А если запустить сабж как приложение то заработает?

Как ни странно, работает...

Цитата:
WATCH-CHANGE-LAST-WRITE

Хм... На NTFS вообще похоже WatchSubtree не нужен Во всяком случае у меня и без него мониторятся подпапки.....
Автор: Timon_Crazy
Дата сообщения: 15.05.2006 06:37
Stygis

Цитата:
Хм... На NTFS вообще похоже WatchSubtree не нужен Во всяком случае у меня и без него мониторятся подпапки....

но не всегда..иногда замечал что не срабатывает
Автор: lucky_Luk
Дата сообщения: 17.05.2006 20:56
Timon_Crazy

Цитата:
Если надумаешь - в помощи написано, что есть ограничения на пользователей (см помощь-> Запуск и остановка nnCron, в самом конце).

Нашел:

Цитата:

Note: in order to run nnCron not as System, but as а particular user, this user must have the following rights (see Control Panel - Administrative Tools - Local Security Settings - Local Policies - User Rights Assignment):

Replace a process level token
Act as part of the operating system
Bypass traverse checking

Как эти права в русской WinXP называются?
Есть ли они у пользователя Администратор (комп локальный, один юзер-администратор).
Автор: Stygis
Дата сообщения: 17.05.2006 21:19
lucky_Luk
Я пробовал запускать как процесс под почти админом - работало. Но я так недолго работал.
ЗЫ. А че русскую справку не используешь?
Автор: Timon_Crazy
Дата сообщения: 18.05.2006 06:06
lucky_Luk
к счастию я использую англ версии.

в общем теперь у мну работает все и под почти любым юзером..все дело в правах
Автор: Stygis
Дата сообщения: 18.05.2006 13:31
Timon_Crazy
А почему к счастию я использую англ версии? %)

Добавлено:
lucky_Luk
Кстати, а при проигрывании wav-файла какая-нить из дат wav-файла меняется? Какое-нить время последнего доступа?

Еще... У меня нет ни у одного пользователя (кроме System конечно) прав Replace a process level token однако nncron работал....

Цитата:
Replace a process level token
Act as part of the operating system
Bypass traverse checking

Что-нить типа:
Заменять токен (знак, признак) уровня процесса
Действовать в качестве части операционной системы
Пропустить (обойти) какую-то проверку.

Добавлено:
Эх... не хватает мне окошечка с возможностью Choose a Location для сохранения или открытия файла.... Полездная весчь была бы

Добавлено:
Опять мы проиграли в четверть-финале после охрененных игр...
Автор: lucky_Luk
Дата сообщения: 18.05.2006 23:15
Stygis

Цитата:
А че русскую справку не используешь?

Я поставил билд 1083 когда он еще бетой был (или это и сейчас бета?) и думал что в русской справке нет новых фич этой беты. Сейчас скачал русскую справку - там эти права юзера тоже на английском написаны.

Stygis

Цитата:
Заменять токен (знак, признак) уровня процесса
Действовать в качестве части операционной системы
Пропустить (обойти) какую-то проверку.

Спасибо, но примерный перевод я и сам знаю. Здесь используется ускоспециализированная терминология точного перевода которой в обычных словарях нет.
Судя по перечню прав, которые есть в моей русской XP "Bypass traverse checking" это "Обход перекрестной проверки (такое право есть у Администратора). "Act as part of the operating system" это "работа в режиме опереционной системы" - вроде бы удалось это право себе присвоить хотя его ни у кого нет (в Локальных политиках безопастности напротив него ничего не написано), русского эквивалента для "Replace a process level token" не нашел.

А вот что конкретно эти права делают и как проверить их работу - ХЗ, кто знает пишите в ПМ.
Автор: Stygis
Дата сообщения: 18.05.2006 23:24
lucky_Luk

Цитата:
Кстати, а при проигрывании wav-файла какая-нить из дат wav-файла меняется? Какое-нить время последнего доступа?

Это я насчет гибернейта твоей UPS-программой? Не пробовал?

Добавлено:

Цитата:
Replace a process level token

Это политика у меня доступна пользователям LOCAL SERVICE и NETWORK SERVICE. Может поможет.....

А нафиха проверять? Если все задачи будут работать, то пусть
Автор: lucky_Luk
Дата сообщения: 18.05.2006 23:53
Stygis

Цитата:
Это я насчет гибернейта твоей UPS-программой? Не пробовал?

Время создания файла менятся не будет, время изменения тоже не будет (файл ведь не редактируется), возможно меняется время открытия файла - как к этому прицепиться?
Автор: Stygis
Дата сообщения: 19.05.2006 00:11
lucky_Luk
Простой WatchDir у меня реагирует на изменение Last File Access Time (менял руками). Но вот чем это время можно изменить?
Нашел вот такое:

Цитата:
System: Disable NTFS Last Access Time
При использовании этой опции файловая система NTFS не будет обновлять метки времени последнего доступа к каждому файлу или папке. Попробуйте использовать эту возможность для увеличения производительности вашей дисковой подсистемы. Добавьте или измените значение ключа с 0 на 1:
[HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ FileSystem]
"NtfsDisableLastAccessUpdate"=dword:1

Я помнится это сделал, когда ставил систему. Так что у меня не реагирует. Можешь попробовать поменять с 1 на 0 - вдруг поможет? (Возможно потребуется перезагрузка)
ЗЫ. Но не забудь, эт только на NTFS.
ЗЗЫ. Если поставить 0, то кажется при заходе в папки с большим числом файлов, возможны тормоза.

Добавлено:
1. Кстати, никто не знает, как можно выйти из цикла BEGIN ... WHILE ... REPEAT?
2. Я правильно понимаю, что эти два куска идентичны по сути:

Код: \ На стеке осталось число прочитанных символов.
\ Прибавляем его к адресу зарезервированной памяти
\ и дописываем 0, чтобы получить zero-terminated string
list-contents + 0 SWAP C!
list-contents ASCIIZ>
Автор: Baksman
Дата сообщения: 19.05.2006 10:18
Страниц много, всего не прочитал пока, помогите...
С некоторых пор всплывать стало окно и отсылать для регистрации на сайт...
Прога зарегистрирована уже для некоммерчесского использования но окно выскакивает

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Как писать кириллицей, а НЕ латиницей (транслитом)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.