Re[9]: TService, TServiceThread, DLL
От: Danchik Украина  
Дата: 23.05.05 20:33
Оценка: 3 (1)
Здравствуйте, Strannic, Вы писали:

S>procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);

S>begin
S> DllThread := TDllThread.Create(false);
S> PostMessage (DllThread.WndHandle, MY_MESSAGE1, 0, 0);

S> Started := True;

S>end;

S>procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);

S>begin
S> if DllThread <> nil then
S> SendMessage (DllThread.WndHandle, MY_MESSAGE2, 0, 0);

S> Stopped := True;

S>end;

S>Однако месаджы не проходят.

S>Причем после
S> DllThread := TDllThread.Create(false);
S>DllThread.WndHandle = 0
S>естественно месадж не попадает
S> PostMessage (DllThread.WndHandle, MY_MESSAGE1, 0, 0);
S>Однако "0" почему пока не ясно

Упс.
Тут проблема в том что окно еще не создалось.
пропробуй


  DllThread := TDllThread.Create(false);
  DllThread.WndHandle = 0;
  while DllThread.WndHandle = 0 do
    Sleep (0);
  PostMessage (DllThread.WndHandle, MY_MESSAGE1, 0, 0);


И иеще протрассируй создалось ли окно в методе Execute
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.