Re[5]: как узнать
От: Leonid Troyanovsky  
Дата: 20.03.06 06:46
Оценка:
Здравствуйте, 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;
--
С уважением, LVT
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.