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

Вниз

IBSever запуск и закрытие?   Найти похожие ветки 

 
Sour ©   (2002-06-19 07:03) [0]

Господа, помогите, пожалуйста.
Для работы программы необходим запущенный IBServer (ibserver.exe).
OnCreate главной формы пишу:
IBInst := ShellExecute(0, 0, PChar(Path + "ibserver.exe"), "-a", 0, SW_HIDE);

Первый вопрос: почему в трее появляется иконка, я же написал SW_HIDE?
Второй вопоос: как на завершение работы приложеня закрыть IBServer?
Пишу SendMessage(IBInst, SW_QUIT, 0, 0) и сервер не закрывается?
Писал и SW_CLOSE и SW_DESTROY не помогает?

З.Ы. IBInst: THandle - описан глобально?


 
Raptor ©   (2002-06-19 14:58) [1]

Первый вопрос: почему в трее появляется иконка, я же написал SW_HIDE?

А почему, собственно, она там не должна появляться. То что ты задал SW_HIDE означает только, что окно приложения не появится (и то не всегда) на экране. Иконку в трей запихивает твой IBServer и на нее никакой SW_HIDE не действует. Здесь имеются 2 решения этого вопроса.
1) Попросить твой IBServer не показывать иконку в трее. То есть указать это в настройках (если такая возможность предусмотрена).
2) Самому убирать иконку из трея после запуска IBServer.
Второй способ наиболее универсальный. Только сначала надо найти ID иконки, который ей присваивает IBServer при помещении ее в трей (этот ID не меняется от запуска к запуску приложения), а потом с помощью Shell_NotifyIcon() убирать иконку сразу же после запуска.

Второй вопоос: как на завершение работы приложеня закрыть IBServer?
Пишу SendMessage(IBInst, SW_QUIT, 0, 0) и сервер не закрывается?
Писал и SW_CLOSE и SW_DESTROY не помогает?


Опять же почему это он должен закрываться? ж-))
Если ты прочитаешь ВНИМАТЕЛЬНО хелп или MSDN, то сразу увидишь, что результатом работы функции

ShellExecute() является HINSTANCE, а не HWND, который требуется для твоего SendMessage.
Тебе сначала нужно найти хендл главного окна с помощью функции FindWindow(<класс окна>,<загаоловок окна>)

(класс и заголовок требуемого окна можна подсмотреть с помощью WinSight32, который идет в стандартной

поставке Delphi), а потом подставить его вместо первого параметра функции SendMessage() (лучше используй

PostMessage).



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
3-70950
Shaman
2002-07-29 23:18
2002.08.22
Компонента для визуального построения выражения для фильтра


1-71118
Jony
2002-08-09 12:42
2002.08.22
Вызов всплывающего меню с клавиатуры


1-71098
bk
2002-08-12 13:59
2002.08.22
POMOGITE s QReort


3-71058
RUS1
2002-08-01 15:38
2002.08.22
Господа а какие у вас есть мнения по данному вопросу...?


4-71435
jj
2002-06-18 20:44
2002.08.22
Сообщения - где эта очередь и кто крайний?