Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Приложение (сервис) - как сие организовать в Deiphi? [D7, 2003]


Страницы:   1 2 3 4

BenGen ©   (2007-09-10 12:39:00) 

Здравствуйте Уважаемые!

Вопрос такой: Как написать приложение и запустить его как сервис Windows?

А то я Прописываю свою утилитку в Автозагрузку а Винда под паролем и как следствие Утилита в Автозагрузке не выполняется! А надо чтоб не вводя пароль - утилита стартанула как служба Windows!


Сергей М.   (2007-09-11 13:55:00) [21]


> BenGen   (11.09.07 13:52) [40]


Ты не ответил на вопросы)..


BenGen   (2007-09-11 13:52:00) [22]


> Сергей М. ©   (11.09.07 13:23) [39]


1) Если вы гуру - то включите интерператор! (совет от Администрации сего ресурса!)
2) Не чюкча-писатель! (скромнее батенька... скромнее)
3) Про Откровения! см. пункт № 1)


> Riply ©   (11.09.07 12:59) [38]


Ели вам многоуважаемая нужен листинг моего (приведенного) кода!
То сие могу залить вам на мыло и вы - разъясните сможет он работать или нет в сервисе!


Сергей М.   (2007-09-11 13:23:00) [23]


> Важно правельно сервис замутить а код то я впишу куды нужно


Т.е. код сервиса сам по себе, а твой прикладной код тож сам по себе ? Их работа, по твоему, друг от друга никак не зависят ?

Наивный чукча-писатель)


> он сидит в трее


Ему что, больше "сидеть" негде, кроме как "в трее" ? Что он там забыл ?)

Для тебя, вероятно, будет откровением, что в трее кроме иконок никто не "сидит" и "сидеть" не может. Кто ж его "посадит" ? Он же сервис !))


Riply   (2007-09-11 12:59:00) [24]

>[37] BenGen   (11.09.07 12:51)
>Да енто и не важно :) Важно правельно сервис замутить а код то я впишу куды нужно! ИМХО!
Вообще-то важно. Не все работает одинаково в сервисе и в обычном приложении :)

>[23] BenGen   (11.09.07 06:21)
>Сорри! Нет ли примерчика по созданию Приложения-сервиса,
>если можно и это вас не затруднит, рабочего! Буду очень признателен!
Смотри исходники от Rouse_. У него там есть хороший пример.


BenGen   (2007-09-11 12:51:00) [25]

Riply ©   (11.09.07 12:29) [36]

Да енто и не важно :) Важно правельно сервис замутить а код то я впишу куды нужно! ИМХО!


Riply   (2007-09-11 12:29:00) [26]

> [35] BenGen   (11.09.07 12:19)
>Он (сервис) по API коннектится к проге и считывает данные GUID и
>если системное время 1 число 0:00 часофф обнуляет данные для GUID!
>а если не 1 число и он Сервис уже обнулял данные (ведёт запись в фаил с расширением *.dat)
>то он сидит в трее и ждёт следующего 1 числа в 0:00 часофф (мониторит сист время раз в 3 сек)
>загрузка проца 0% 1,7 метра в памяти!
Ничего не поняла.
А можно еще раз объяснить, что он (сервис) делает ?


BenGen   (2007-09-11 12:19:00) [27]


> Сергей М. ©   (11.09.07 11:37) [34]


Он (сервис) по API коннектится к проге и считывает данные GUID и если системное время 1 число 0:00 часофф обнуляет данные для GUID!
а если не 1 число и он Сервис уже обнулял данные (ведёт запись в фаил с расширением *.dat) то он сидит в трее и ждёт следующего 1 числа в 0:00 часофф (мониторит сист время раз в 3 сек) загрузка проца 0% 1,7 метра в памяти!

Сам код мониторига пашет на ура а вот как прально сервис замутить я ужо в сомнениях!


Сергей М.   (2007-09-11 11:37:00) [28]


> нафиг мне иконки терь и все те прибамбасы


Ну а если не иконки, то что ? Чему нужному/полезному ты собрался научить свой сервис ?


DVM   (2007-09-11 11:28:00) [29]


> Окна в сервисах - это извращение. Это три.

Небольшое уточнение - показывать окна из сервисов - это извращение. Создавать то в сервисах окна иногда бывает надо, например, для таймеров или для сокетов на сообщениях.


BenGen   (2007-09-11 11:17:00) [30]

Эхэхэх... то бред терь понимаю!

Мне то надо чтоб прога до входа пользователя в систему запускалась!
нафиг мне иконки терь и все те прибамбасы!


DVM   (2007-09-11 11:16:00) [31]

Поэтому и делают отдельно сервис, отдельно программа для взаимодействия с ним и возможно отдельно программы для его настройки и создания иконок в области уведомлений.

Программу, создающую иконки сервиса в области уведомлений помещают в автозагрузку и она при старте подключается к сервису и общается с ним.


DVM   (2007-09-11 11:14:00) [32]


> Как сие исправить? мне пока и ентого хватит - для своих
> нужд!

Там бред сивой кобылы написан, ты пойми. Сервис - это такая штука, понимаешь, она может запускаться и до входа пользователя в систему и в этом случае ей просто негде будет отображать ни иконку ни прочее.

После входа пользователя в систему, если у службы отмечено "Взаимодействи с рабочим столом", то окна на десктоп она выкидывать сможет, но вот иконку она уже не добавит, если следовать тому коду, что ты привел.


BenGen   (2007-09-11 11:10:00) [33]

Прога пашет!
Иконка в трее весит!
При двойном клике левой кнопой мыши форма О Проге вылазиет!
Но  при клике правой кнопой мыши по иконке в трее Лезет ошибка! BenGen   (11.09.07 10:57) [25]

Как сие исправить? мне пока и ентого хватит - для своих нужд!


DVM   (2007-09-11 11:09:00) [34]


> Так как надо то?

Так как я написал примерно. Что ты хочешь конкретно опиши?


BenGen   (2007-09-11 11:06:00) [35]


> DVM ©   (11.09.07 11:03) [26]


Во приехали! Дык... Так как надо то?


DVM   (2007-09-11 11:03:00) [36]


> Но приклике в трее по иконке сервиса, вылазиет ошибка:

Этот примерчик нерабочий в принципе. Это раз.
А для взаимодействия с сервисом и отображения иконок обычно делают отдельную программу. Это два.
Окна в сервисах - это извращение. Это три.


BenGen   (2007-09-11 10:57:00) [37]

Приложение создал по совету: http://www.realcoding.net/article/view/4164

Обозвал его TITservices.exe

Но приклике в трее по иконке сервиса, вылазиет ошибка:
Access Violation at Adress 0045D704 in module TITservices.exe


procedure tfabout.wmmidasicon(var message: tmessage);
var pt: tpoint;
begin
 case message.lparam of
   wm_rbuttonup: begin
       if not visible then
       begin
         setforegroundwindow(handle);
         getcursorpos(pt);
         popupmenu.popup(pt.X, pt.Y); // Место ошибки!
       end
       else
         setforegroundwindow(handle);
     end;
   wm_lbuttondblclk: if visible then
       setforegroundwindow(handle)
     else
       mipropertiesclick(nil);
 end;
end;


DVM   (2007-09-11 10:38:00) [38]


> Нет ли примерчика по созданию Приложения-сервиса, если можно
> и это вас не затруднит, рабочего!

Ты Delphi запускал? Там примерчик есть среди шаблонов.


BenGen   (2007-09-11 06:21:00) [39]

Сорри! Нет ли примерчика по созданию Приложения-сервиса, если можно и это вас не затруднит, рабочего! Буду очень признателен!


BenGen   (2007-09-10 17:16:00) [40]


> DVM ©   (10.09.07 15:39) [21]


Да!


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо