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.
