ايران ويج

نسخه‌ی کامل: عدم باز شدن همزمان چند فایل اجرایی برنامه
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام خدمت همگی دوستان

+ چطور می تونم از همزمان باز کردن چند بار فایل اجرایی برنامه جلوگیری کنم ؟ به عبارتی اگر برنامه در حال کار کردن است کاربر قادر به باز کردن دوباره آن نباشد ... لطفا راهنمایی بفرمایید .
ممنون
عمومی ترین روش

کد:
procedure TForm1.FormShow(Sender: TObject);
var
  atom: Integer;
begin
  if GlobalFindAtom('a random string here') = 0 then
    atom := GlobalAddAtom('a random string here')
  else
  begin
    ShowMessage('This application will run once a windows-session' + #13 +
      'Restart Your computer to use this app');
    Close;
  end;
end;

اینم یه روش دیگه
کد:
unit Unit1;

uses
  Windows, Dialogs, Sysutils;

{....}
implementation

{....}

var
  mHandle: THandle;    // Mutexhandle

initialization
  mHandle := CreateMutex(nil, True, 'XYZ');
  if GetLastError = ERROR_ALREADY_EXISTS then
  begin
    ShowMessage('Program is already running!');
    halt;
  end;

finalization
  if mHandle <> 0 then CloseHandle(mHandle)
end.