Tag-Archive for » singleton «

Tuesday, February 19th, 2008 | Author: Riza

Ada beberapa cara yang bisa digunakan untuk membuat single instance application. Saya hanya mau membagi sedikit trik lama yang sering saya gunakan yaitu dengan memanfaatkan API dari windows. Fungsi yang saya gunakan adalah CreateFileMapping dengan sedikit memodifikasi isi dari file project. Cara menggunakannya adalah sebagai berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
...
 
uses Windows, … ;
 
const
  MAX_SIZE_HIGH = 0;
  MAX_SIZE_LOW = 32;
  { Bisa diganti dengan string apa saja yang akan menjadi Id
  dari aplikasi.}
  APP_IDENTIFIER = ‘th3-4ppl1c4t10nk3y’;
 
var
  hMap: THandle;
 
begin
  Application.Initialize;
 
  hMap := CreateFileMapping(0, nil, PAGE_READONLY, MAX_SIZE_HIGH,
  MAX_SIZE_LOW, APP_IDENTIFIER);
  if (hMap <> 0) and (GetLastError = ERROR_ALREADY_EXIST) then
 
  begin
    CloseHandle(hMap);
    Application.Terminate;
  end;
 
  …
 
  Application.Run;
end.

Semoga bermanfaat.