09-09-2010, 04:24 PM
09-09-2010, 06:27 PM
السلام عليكم
بالتوفيق,,
كود :
Uses
Tlhelp32;
Function Run:Boolean;
Var
Handle: THandle;
Struc: TProcessEntry32;
wMax: Byte;
Begin
Result:= False;wMax:= 0;
Handle:=CreateToolHelp32SnapShot($00000002, 0);
Struc.dwSize:=Sizeof(TProcessEntry32);
While Process32Next(Handle, Struc) Do
Begin
If Struc.szExeFile = ExtractFileName(ParamStr(0))Then
Inc(wMax);
If wMax >= 2 Then
Begin
Result:= True;
Exit;
End;
End;
End;
procedure TForm1.FormCreate(Sender: TObject);
begin
If Run Then
ExitProcess(GetLastError);
//RunError;
end;09-09-2010, 08:02 PM
السلام عليكم
بالتوفيق.
PHP كود :
var
Handle: THandle;
...
initialization
Handle := CreateMutex(nil, True, PChar(Application.Title));
if GetLastError = ERROR_ALREADY_EXISTS then begin
MessageBox(GetActiveWindow, 'Program is already running!', 'Info', MB_OK );
Halt;
end;
finalization
if Handle <> INVALID_HANDLE_VALUE then
CloseHandle(Handle);
10-09-2010, 01:13 AM
الحمد لله تمت العملية بنجاخ
بارك الله فيكم جميعا
بارك الله فيكم جميعا
10-09-2010, 01:46 PM
أيضا يمكنك استخدام هذه الوحده .
ميزتها أنك إذا نقرت على البرنامج مرة أخرى ينشط لك نافذة البرنامج يعني لا يرسل لك رسالة تنبيه.
وهذا أجمل من أن يقول لك البرنامج يعمل فقط .
طريقة الاستخدام ، أضف الوحدة إلى المشروع ثم في نفس ملف المشروع :
ميزتها أنك إذا نقرت على البرنامج مرة أخرى ينشط لك نافذة البرنامج يعني لا يرسل لك رسالة تنبيه.
وهذا أجمل من أن يقول لك البرنامج يعمل فقط .
طريقة الاستخدام ، أضف الوحدة إلى المشروع ثم في نفس ملف المشروع :
PHP كود :
begin
if not CheckPrevious.RestoreIfRunning(Application.Handle, 1) then
begin
Application.Initialize;
Application.CreateForm(TForm3, Form3);
Application.Run;
end;
end.
14-01-2011, 03:17 PM
إقتباس :ينشط لك نافذة البرنامج يعني لا يرسل لك رسالة تنبيه.أيضا عوض عرض الرسالة يمكن ذلك بطريقة أخرى:
PHP كود :
SetForegroundWindow(FindWindow('MyClassMainForm'{<-- e.g.: 'TForm1'}, nil));
كود :
http://delphi.about.com/od/windowsshellapi/l/aa100703b.htm