Club Delphi,
Cita:
Empezado por nlsgarcia
...MutexName, es el nombre de la aplicación para efectos de exclusión el cual debe ser único para las funciones de Mutex...
...SemaphoreName, es el nombre de la aplicación para efectos de exclusión el cual debe ser único para las funciones de Semaphore...
|
Revisen este código:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ClipBrd, IdGlobal, IdHash, IdHashMessageDigest;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function GetGUID : String;
var
GUID : TGuid;
Hash, IDHash : String;
DateTimeID : String;
begin
if CreateGuid(GUID) = S_OK then
begin
Clipboard.AsText := GuidToString(GUID);
Result := Clipboard.AsText;
end
else
begin
with TIdHashMessageDigest5.Create do
try
DateTimeToString(DateTimeID, '{yyyy/mm/dd_hh:nn:ss.zzz}', Now);
Hash := TIdHash128.AsHex(HashValue(DateTimeID));
IDHash := '{' +
Copy(Hash,1,8) +
'-' +
Copy(Hash,9,4) +
'-' +
Copy(Hash,13,4) +
'-' +
Copy(Hash,17,4) +
'-' +
Copy(Hash,21,12) +
'}';
Clipboard.AsText := IDHash;
Result := Clipboard.AsText;
finally
Free;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageDlg(GetGUID,mtInformation,[mbOk],0);
end;
end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, permite crear un
Globally unique identifier,
que identifique de forma unívoca una aplicación para la creación de un Mutex o un Semaphore, como se muestra en la siguiente imagen:
Nota:
1- Este código
es un complemento para el código de los
Msg #1 y
Msg #3.
2- El Globally unique identifier (GUID) generado,
esta disponible por medio del Clipboard.
Espero sea útil
Nelson.