Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Fenster von anderem User auf TerminalServer finden

  Alt 29. Okt 2009, 17:08
Wenn du die JCL einsetzen kannst könnte ich Dir eine Lösung zeigen.
Die JCL enthält die Klasse TJclAppInstances; mit der kann man Botschaften zwischen allen Instanzen austauschen.
Intern werden über Memory-Maped-Files die Fenster Handles ausgetauscht.

Das sieht dann so aus:
Delphi-Quellcode:
unit ...,JclAppInst;

const
   AI_SHUTDOWN_LPARAM = 446; // LParam-Wert, der beim Senden der Shutdown-Message benützt wird

class procedure TMainForm.SendShutdownMessage; // Meldung an alle Instanzen schicken
begin
   JclAppInstances.UserNotify(AI_SHUTDOWN_LPARAM);
end;

procedure TMainForm.HandleOnMessage(var Msg: TMsg; var Handled: Boolean); // Eventhandler für Application.OnMessage
begin
   if Msg.message = JclAppInstances.MessageID then
   begin
     if (Msg.wParam=AI_USERMSG) and (Msg.lParam=AI_SHUTDOWN_LPARAM) then
        ShowMessage('Bitte speichern Sie Ihre Änderungen und beenden Sie dieses Programm!');
   end;
end;
Andreas
  Mit Zitat antworten Zitat