У меня есть два окна в отдельных приложениях.У первого приложения есть кнопка, которая запускает второе приложение с дескриптором окна и идентификатором процесса:
procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec(PChar('Second.exe ' + IntToStr(Handle) + ' ' + IntToStr(GetCurrentProcessId)), SW_SHOWDEFAULT);
end;
Во втором приложении также есть кнопка, которая должна установить переднее окно на первое приложение:
function AllowSetForegroundWindow(AHandle: HWND): Boolean; external 'user32.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
if not AllowSetForegroundWindow(StrToInt(ParamStr(2))) then begin
ShowMessage('ERROR');
Exit;
end;
SendMessage(StrToInt(ParamStr(1)), WM_APP + 1, 0, 0);
end;
Первое приложение имеет обработчик сообщений, который обрабатывает WM_APP + 1
, например:
procedure TForm1.WWAppPlusOne(var Msg: TMsg);
begin
Application.BringToFront;
end;
Когда я запускаю первое приложение и нажимаю на кнопку, запускается второе приложение.Когда я нажимаю кнопку во втором приложении, отображается ERROR
.
Что я здесь не так делаю?