Показать сообщение отдельно
  #8  
Старый 28.03.2010, 20:06
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 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;
Ответить с цитированием