Utiliser les messages windows pour gerer le nombre d'instances

0/5 (3 avis)

Vue 4 752 fois - Téléchargée 513 fois

Description

Un morceau de code qui permet de gerer le nombre d'instances de vos applications,
l'idée est d'envoyer un message informant l'application en cours d'execution,cette derniere traite la demande et elle peut l'accepter comme elle ne l'accepte pas....
c'est un peu bete mais sa sera bon,

Source / Exemple :


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
    procedure DefaultHandler(var Msg);override;
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  MessageSys:UINT;

implementation

{$R *.dfm}

procedure TForm1.DefaultHandler(var Msg);
begin
  inherited DefaultHandler(Msg);
  if TMessage(Msg).Msg=MessageSys then
    case TMessage(Msg).WParam of
      0:if TMessage(Msg).LParam<>Application.Handle Then
          //if MessageDlg('New Instance is about to start,Start it?',mtConfirmation,[mbYes,mbNo],0)=mrNo then
            begin
              SendMessage(HWND_BROADCAST,MessageSys,1,application.Handle);
            end;
      1:if TMessage(Msg).LParam<>Application.handle then
          begin
            application.Terminate;
          end;
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MessageSys:=RegisterWindowMessage('MsgOneInst12');
  SendMessage(HWND_BROADCAST,MessageSys,0,Application.Handle);
end;

end.

Conclusion :


j'accepte vos commentaires et vos corrections

Codes Sources

A voir également

Ajouter un commentaire Commentaires
HAFTARIFOUAD Messages postés 256 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 6 janvier 2011
6 févr. 2008 à 09:24
Bonjour Mr LOTFI ;-)

vu que c'est votre premier code, je dirai: trés bien et bonne continuation.
lotfi213_b19 Messages postés 36 Date d'inscription dimanche 31 décembre 2006 Statut Membre Dernière intervention 31 juillet 2010
4 févr. 2008 à 15:13
merci pour la remarque,mais c'est mon premier code
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
3 févr. 2008 à 00:01
Nous aussi on accepte les commentaires...mais dans le code :o)
Un peu d'explications ne nuit jamais.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.