Programın 1 tane çalışması..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
Shou
Üye
Mesajlar: 260
Kayıt: 26 Ağu 2011 02:00

Re: Programın 1 tane çalışması..

Mesaj gönderen Shou »

abi öyle yaptımda şimdi adam "project1.exe" olarak açıyo ondan sonra ismini "project2.exe" yapıyo yine açıyo ??
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Programın 1 tane çalışması..

Mesaj gönderen sabanakman »

Tam olarak nasıl bir deneme yaptığınızı bilemiyorum ama

Kod: Tümünü seç

ExeName := ExtractFileName(Application.ExeName)
şeklinde deneme yaptığınızı varsayıyorum. Bu noktada biraz zihin jimnastiği yaparak kendinizden katkıda bulunabilirsiniz. Mesela programınıza özel sabit bir değer belirleyip bunu verebilirsiniz.

Kod: Tümünü seç

ExeName := 'AjandaProgramimBenim';
gibi sabit bir değer olabilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
dpcmsx
Üye
Mesajlar: 22
Kayıt: 06 Eyl 2011 04:25

Re: Programın 1 tane çalışması..

Mesaj gönderen dpcmsx »

CreateMutex ile oluşturduğunuz programa bir isim verirsiniz, OpenMutex ile çalıştırmadan önce bu ismin Mutex listesinde olup olmadığını kontrol edersiniz. Böylece programın ikinci kere çalıştırılması imkansız hale gelir. :D

Basit bir örnek vermek gerekirse :

Kod: Tümünü seç

program MyApp;
uses
  Windows,Forms,
  MyApp1 in 'MyApp1.pas' {Form1};

var
  Mutex : THandle;
{$R *.RES}

begin
Mutex := CreateMutex(nil, True, 'MyAppName');
if (Mutex <> 0) and (GetLastError = 0) then
  begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
  if Mutex <> 0 then
    CloseHandle(Mutex); 
  end;
end.
Kaynak : http://www.ibrtses.com/delphi/singleinstance.html
Cevapla