Форум: "Основная";
Текущий архив: 2003.05.05;
Скачать: [xml.tar.bz2];
ВнизКонсольное приложение.... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c