Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.05;
Скачать: CL | DM;

Вниз

Консольное приложение....   Найти похожие ветки 

 
SemFLY ©   (2003-04-20 18:22) [0]

Всем Привет :)
-
Как мне запустить консольное приложение, в виде сервиса ?
Вообщем чтобы не появлялось дос-окно.
Информацию из дос-окна мне получать не надо, просто запустить в невидимом режиме.
P.S. Программка ту что надо скрыть, сервер IRC-D !
- - -
Ещё хотелось бы , но это не основное, в трее сделать иконку, что программа запушена...


 
Юрий Зотов ©   (2003-04-20 18:37) [1]

1. Уберите директиву APPTYPE.
2. Создайте скрытое окно (RegisterClassEx + CreateWindowEx), заполните структуру TNotifyIconData и вызовите Shell_NotifyIcon.


 
SemFLY ©   (2003-04-20 21:59) [2]

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


 
Snap ©   (2003-04-20 22:03) [3]

Опять таки убери АппТайп, но при этом удали из проги все операторы типа Writeln если они есть.


 
SemFLY ©   (2003-04-20 22:16) [4]

как мне удалить из проги АппТайп ? Если у меня уже скомпиленный exe-шник, исходного кода у меня нет ! :(
Я вот и спрашиваю, как мне средствами Delphi это сделать ?! ;)


 
Snap ©   (2003-04-20 22:31) [5]

ГЫЫЫыыы. Так можно в принципе забыть что это программа на дельфи, теперь это просто исполняемый файл, и конкретно с помощью дельфи делу не поможешь.


 
LEON   (2003-04-20 22:43) [6]

зайди на www.dors.de, там есть open source прога RazorLame, которая имеет этот код в себе


 
Юрий Зотов ©   (2003-04-21 00:38) [7]

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

Значица, так. Ежели мы не рассматриваем модификацию кода, то:

1. Если чужой exe создает свое окно (хоть консольное, хоть нет), то запретить ему это Вы не сможете. Зато сможете это его окно спрятать. Если этот exe не консольный Win32, а действительно DOS"овский, то прятанье окна через параметры CreateProcess может и не сработать (поскольку это будет уже консоль виртуальной машины, а не самой программы) - а вот ShowWindow, по идее, должно сработать в любом случае (но окно может "моргнуть" на экране).

2. Если чужой exe не сажает никуда никаких иконок, значит, он этого делать и не будет, хоть Вы расшибитесь.

Вывод - пишите свою программу-запускалку. В ней запускаете этот чужой exe (CreateProcess), прячете его окно (либо в параметрах CreateProcess, либо через FindWindow + ShowWindow) и сажаете в трей иконку (Shell_NotifyIcon). А заодно и отлавливаете его завершение (MsgWaitForMultipleObjects, либо WaitForSingleObject во втором потоке) - чтобы вовремя убрать иконку и завершить свою программу. В ней же обрабатываете сообщения от иконки. Все.


 
SemFLY ©   (2003-04-21 23:42) [8]

Всем Спасибо :)





Страницы: 1 вся ветка

Текущий архив: 2003.05.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
3-12639
(((@
2003-04-15 23:51
2003.05.05
СУБД Cache`5 и Delphi


1-12690
ДмитрийК
2003-04-22 23:26
2003.05.05
Можно ли в программе получить информацию о стеке вызоаов функций?


3-12640
Delphinium
2003-04-12 20:48
2003.05.05
ADO


1-12692
Sirus
2003-04-23 08:00
2003.05.05
Как сделать чтобы форма не отображалась при запуске???


1-12815
Ик сик
2003-04-22 16:48
2003.05.05
Библиотека ABC