Вниз
Скачать: CL | DM;

не получается послать сообщение другому приложению.   Найти похожие ветки 

 
Duncann   (2003-11-04 11:37) [0]

У меня есть одна программа сервис под 2000, и другая которая в случае если запущена, то должна принимать сообщения от этой самой программы-сервиса.
Код программы сервиса:

const WM_MSG = WM_USER+2;
...
procedure TsvcServiceBase.ttTimer(Sender:TObject);
var Ini:TiniFile;
Thr:integer;
begin
ini:=TiniFile.Create(ExtractFilePath(ParamStr(0))+"SvComEx22.Dat");
Thr:=ini.ReadInteger("Threads","SendId",0);
if Thr>0 then PostThreadMessage(Thr,WM_MSG,0,0);
ini.Free;
end;

Причем сообщение точно уходят т.к. на if PostThreadMessage() выдает true. А вот код программы принимающей.

Const WM_MSG=WM_USER+2;
...
public procedure GetMessage(var message :TMessage); message WM_MSG;
...
procedure TForm1.GetMessage(var message:TMessage);
begin
ShowMessage("ok");
M.Lines.Add(TimeToStr(Time)+" "+IntToStr(message.WParam)+" "+InTToStr(message.LParam));
end;

Ну и в итоге ничего не выдается... В чем проблема?


 
Duncann   (2003-11-04 11:38) [1]

Да и забыл написать процедурку которая пишет в ини файл номер нити.

procedure TForm1.FormActivate(Sender: TObject);
var ini:TIniFile;
begin
Ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+"SvComEx22.dat");
ini.WriteInteger("Threads","SendId",GetCurrentThreadId);
Ini.Free;
end;


 
Игорь Шевченко ©   (2003-11-04 11:42) [2]

У сервиса в настройках разрешено взаимодействие с рабочим столом ?


 
Duncann   (2003-11-04 11:53) [3]

Да, галочка стоит.


 
Игорь Шевченко ©   (2003-11-04 13:07) [4]

Только что обратил внимание на использование PostThreadMessage.
Это сообщение не будет обработано оконной процедурой формы.
Может, имеет смысл передавать Handle окна формы, а не идентификатор потока ? И в сервисе вызывать PostMessage, а не PostThreadMessage ?


 
Duncann   (2003-11-04 13:39) [5]

СПАСИБО!!!!
Это помогло :-)



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
14-12069
Brahman
2003-12-10 11:09
2004.01.05
Первый блин комом ?


14-12091
}|{yk
2003-12-15 13:17
2004.01.05
Об установке компонент - траблы с dsgnintf


1-11991
real_dimedrol
2003-12-19 01:32
2004.01.05
функция format


14-12073
Rentgen
2003-12-10 12:02
2004.01.05
Файл с сайта на сайт?


1-11972
Andrey V.
2003-12-19 12:48
2004.01.05
Досовская задача в CreateProcess




   Наверх