
28.03.2010, 20:06
|
 |
Активный
|
|
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
|
|
а вы проверяли?
Код:
const
UniqueString = 'MyProgramMutex';
var
wnd : HWND;
aCopyData: TCopyDataStruct;
i:integer;
s:string;
begin
if not init_mutex(UniqueString) then
begin
wnd := FindWindow('TForm1', nil);
if wnd > 0 then
begin
for i:=0 to Paramcount do
begin
s:=ParamStr(i);
with aCopyData do
begin
dwData := 0;
cbData := StrLen(PChar(s)) + 1;
lpData := PChar(s)
end;
SendMessage(wnd, WM_COPYDATA, Longint(0), Longint(@aCopyData));
end;
end;
exit;
end;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Код:
procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
Код:
procedure TForm1.WMCopyData(var Msg: TWMCopyData);
var
sText: array[0..255] of Char;
begin
StrLCopy(sText, Msg.CopyDataStruct.lpData, Msg.CopyDataStruct.cbData);
memo1.Lines.Add(sText);
end;
|