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
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.