Здравствуйте, CR-LF, Вы писали:
CL> MemHnd := CreateFileMapping(HWND($FFFFFFFF),nil,PAGE_READWRITE,0,
CL> MemFileSize,MemFileName);
Если ты уж создал mmf, то почему бы не записать туда что-нибудь
полезное, например, хендл окна, которое должно быть активизировано
(и будет получать, скажем, параметры комстроки путем WM_COPYDATA).
CL> SendMessage(hndl,WM_RESTOREFROMTRAY,0,0);
Это выглядит подозрительно. В соответствие с политикой MS
non-foreground процесс не может стать foreground по своей воле,
а токмо волей foreground процесса.
CL> SetForegroundWindow(hndl);
Это тоже не совсем точно:
var
wnd, app: HWND;
begin
wnd := .. // читаем (ищем) хендл активизируемого окна
if wnd <> 0 then
begin
{Test if app is minimized, if so restore it}
app:= GetWindowLong(wnd, GWL_HWNDPARENT);
if IsIconic(app) then
ShowWindow(app, SW_RESTORE);
SetForegroundWindow(wnd);
end;
end;