Всем всего самого.
Создал тему, но возникшие вопросы вышли за рамки начального обсуждения, поэтому и решил создать новую.
Требуется при старте/перезагрузки компьютера, входа/выхода пользователя в систему, при вводе неправильного пароля и т.д. отправлять информацию на локальный сервер. Машины под Windows 7 и Windows XP. Имеется скрипт для отправки информации на локальный HTTP сервер:
Вызов скрипта прописал в редакторе локальной груповой политики (gpedit.msc). В "Конфигурация компьютера/Конфигурация Windows/Сценарии(запуск/завершение)" для вызова скрипта при старте/завершении работы и в "Конфигурация пользователя/Конфигурация Windows/Сценарии(вход/выход из системы)" для вызове скрипта при выходе/входе пользователя из/в систему.
До этого пробовал в планировщике задач вызывать скрипты создавая триггеры на события, которые прописывались в журнале событий. Но кроме как выключения питания (источник USER32, код события 1074) ничего не срабатывало. Пробовал использовать предустановленные триггеры при создании задачи ("При подключении к пользовательскому сеансу", "При отключении от пользовательского сеанса"), но они тоже не срабатывали. В этих триггерах была возможность установить вид подключения, с локального компьютера или с удаленного, что вообще было бы очень кстати.
Теперь о проблемах.
Первое: почему не срабатывают триггеры в планировщике?! Какие могут быть причины?!
И второе: как Вы видите GET-параметр type в скрипте прописан явно в коде, а это в свою очередь требует для каждого события создавать отдельный скрипт. В планировщике ("Создать задачу"->вкладка "Действия"->"Создать..."->"Запуск программы") есть текстовое поле "Добавить аргументы (необязательно)", но как я не пытался передать параметр в скрипт он не передавался. Может я не правильно ловил этот передаваемый параметр?! Прописывал в начале скрипта Dim имя_переменной. С VBScript'ом не знаком... Все из Google... Есть идеи у кого на этот счет?!
Далее в редакторе групповых политик (gpedit.msc) "Конфигурация компьютера/Конфигурация Windows/Сценарии(запуск/завершение)" для вызова скрипта при старте/завершении работы и в "Конфигурация пользователя/Конфигурация Windows/Сценарии(вход/выход из системы)" для вызове скрипта при выходе/входе пользователя из/в систему прописать пути к скрипту/-ам.
Это не подходит для событий ввода неправильного пароля и других событий журнала. Но тема по поставленному вопросу исчерпана: определенный адрес вызывается при включении / выключении. Продолжение обсуждения здесь.
Большое спасибо DelphinPRO, EuGen и esterio за внимание и время уделенное моей проблеме.
Спасибо всем за внимание к теме.
Посмотрел в сторону планировщика задач. В нем есть возможность выполнять BAT скрипт при включении/выключении. В принципе это то, что нужно.
Теперь вопрос стоит в том, как прописать в "батнике" вызов URL.
Никто не сталкивался с подобной задачей?! Необходимо при включении и выключении компьютера вызывать определенный скрипт по URL на лок. сервере. Вопрос: как?!
EuGen, это я и искал!
Другими словами, при необходимости дополнить метод наследуемого родительского класса специфичными особенностями производного класса, мне нужно будет явно вызвать метод. Правильно ли я понял?!
И еще... Если я явно не вызову метод __call в производном классе, будет ли он так-же вызываться при вызове несуществующих методов?!
P.S.: Возникала мысль, что это как-то хитрее реализовано.
Уважаемые, проясните бестолковому. Имеется базовый класс в котором перегружаются методы __set, __get, __call, __construct. Не могу понять как расширить эти методы в производных классах. Приведу пример:
Вышеприведенный пример позволяет использовать несуществующие методы класса, ловя их в __call и исходя из имени вызываемого метода производить дальнейшие действия. Но что если в производных классах понадобиться расширить метод?! Как это реализовать?!
Если я правильно понимаю, и предложенная структура таблицы верна, то как применить это к моему запросу?! Подскажите, будьте любезны... Сроки горят. Как в анекдоте: "До сдачи проекта либо до хрена, либо один день". Был бы признателен бесконечно!
В таблице `pictures`, столбце `tags_ids` через запятую сохранены id тагов соответствующих конкретному изображению. Нужно выбрать названия тагов из таблицы `tags` с помощью сохраненных id. Пробовал так:
LEFTOUTERJOIN pictures_writte_types ON pictures.written_type_id = pictures_writte_types.id
LEFTOUTERJOIN pictures_types ON pictures.type_id = pictures_types.id
LEFTOUTERJOIN tags ON tags.id IN(pictures.tags_ids)
WHERE pictures.albums_ids =1
Но выбирается только один таг из нескольких. Т.е. в столбце tags_ids имеем id 1,2,3, а в результате видим только таг с id 1. Есть ли у кого-либо идеи на этот счет?! Возможно ли это?! Т.е. можно ли получить результирующую строку, где в одном столбце были бы все таги?!
Могу посоветовать plupload.
Кроссброузерный. Поддерживает несколько способов закачки (Flash, Gears, HTML 5, Silverlight, BrowserPlus, HTML 4). Есть плагин для jQuery. Подробная и понятная документация. GPLv2 лицензия. Невысокая стоимость OEM лицензии.
Последовал совету и посмотрел что показывает сниффер. Как-то хитро он его создает... Получается, что можно использовать RNFR без RNTO, что создает файл, но возвращает ошибку 550 (Запрошенная функция не реализована, файл не доступен, например, не найден). Может кто подскажет как в этом разобраться?! Это могло бы помочь многим, т.к. вопрос часто всплывает....
В таком случае может подскажете решение проблемы...
Мне нужно создавать, изменять файлы на сервере. Обычным способом, как fopen сие не получается, пишет не достаточно прав. Поэтому и решил извратиться с FTP.
P.S.: а с сокетами такое не прокатит?!
Вопрос: как с помощью FTP создать файл на сервере с определенным содержанием?
Не переместить или скопировать, а именно создать на пустом месте с содержанием например: "Hello World!".
cURL не поможет?! Что если для начала получить все содержимое страницы. Даже если используются редиректы, в опциях можно выставить перенаправление. Там же можно выставить рефера. Затем обработать регулярными выражениями (на предмет особо злых участков кода) и уж потом вывести. Минус, что CSS и иже с ними нужно будет самому копировать, ну или линки переписывать перед выводом.