|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.04.2012, 11:18 | #1 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
Проблема с таймером в службе
Здравствуйте, помогите разобраться..
Начал писать службу, использовав ServiceApplication. На ее "форму" поместил Timer. В Onclick таймера выдаются сообщения при определенных действиях. Проблема в том что таймер перестает функционировать после регистрации службы в системе, т.е.: пуск-выполнить-"путь к файлу" /install, появляется сообщение "служба установлена" - жму ОК и таймер глохнет. До нажатия ОК-работает. Посоветуйте или помогите кодом... Делал так: Код:
Последний раз редактировалось varelik; 16.04.2012 в 11:35. |
16.04.2012, 11:53 | #2 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
а кто будет принимать сообщение WM_TIMER? Служба? Не, она не умеет, ну нет у нее оконных элементов.
Решений два: 1 - корявое: создайте форму, подвяжите ее к службе, вызывайте конструктор и работайте на ней. Там же и таймер разместите. 2 - нормальное: создайте в конструкторе службы поток с бесконечным циклом, в котором через нужный вам интервал времени будет что-то делаться. Т.е. эмуляция таймера.
"ковыряю изнутри" (с)
|
16.04.2012, 12:51 | #3 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
хорошо, делаю через поток, убрал таймер, подредактировал код,
не работает, такое впечатление что tnewthread1.execute не срабатывает. поправьте пожалуйста Код:
|
16.04.2012, 14:24 | #4 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
указаный код заработал после установки свойства службы interactive=true, но насколько это правильно?
|
16.04.2012, 14:59 | #5 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Это что за код?! Практическая полезность его равна нулю.. не понятно, но поправлю.
Код:
Код:
Код:
"ковыряю изнутри" (с)
|
16.04.2012, 15:03 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
На w7 интерактивности вообще нет.
Пишите мультимедийный класс таймера, что довольно легко(в своей теме как-то выкладывал свою реализацию таймера, именно для сервисов, ищите сами). Сервис вырубается SCM(Service Control Manager), по-скольку ваш сервис не сообщает SCM свой статус каждые WaitHint. Последний раз редактировалось Человек_Борща; 16.04.2012 в 15:08. |
16.04.2012, 15:45 | #7 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
3D Hunter, смысл в коде есть.
в таймере (либо в потоке) планировалось чтото типа клавиатурного шпиона сделать (с сохранением нажатых клавиш в c:\11.txt например). Решил просто попробовать реализовать как сервис. В результате: если interactive=true, все работает и через таймер и через поток. если interactive=false - ни потоки, ни таймеры не помогают. всем спасибо за внимание! |
16.04.2012, 17:53 | #8 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
Человек_Борща, про мультимедийный таймер посмотрю обязательно.
вопрос ко всем: но если не использовать таймер вобще и делать через цикл в потоке (при interactive=false): почему не работает? |
16.04.2012, 20:43 | #9 | ||
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Читаем MSDN:
Цитата:
И вообще данная функция проверяет статус клавиши по виртуальному коду - нажата или отжата. И там не все так просто: побитовая проверка требуется: Цитата:
"ковыряю изнутри" (с)
|
||
16.04.2012, 21:15 | #10 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с сис таймером | Lauri | Общие вопросы Delphi | 7 | 08.11.2012 22:26 |
Нет доступа к службе установщика Windows Installer | fenyfe | Помощь студентам | 0 | 19.12.2011 19:04 |
Проблема с таймером обратного отсчета | nursak | Помощь студентам | 10 | 05.06.2011 17:58 |
проблема с таймером javascript | storm296 | JavaScript, Ajax | 1 | 03.08.2010 15:38 |
ошибка в службе Windows Installer | Nsrvitaliy | Windows | 17 | 19.01.2010 14:21 |