السلام عليكم
ربما لاحظت ان هناك برامج تتعرف على أن نسخة منها مازالت تعمل already
running في النظام. مثلا كنت اركب AntiVirus في الجهاز، وخلال عملية التركيب حاولت أن أشغل البرنامج مرة آخرى، فما كان من البرنامج الا ان تعرف علىأن هناك نسخة منه مازالت تعمل، وقد اخبرني بذلك.
* لكن هل يمكنني تطبيقها في برامج دلفي؟ نعم وبكل تأكيد وإليك الطريقة:
1- ليكن الصنف class الخاص بالنموذج الرئيسي هو TMyTestClass معرف كلاتي:
type
{ضع هنا الكود المناسب لبرنامجك كالعادة}(TMyTestClass = class(TForm
2- في وحدة مصدر المشروع project source أجعل الوحدة تبدو مثل هذا:
;program Project1
uses
,Forms
,Windows, dialogs
;{Unit1 in 'Unit1.pas' {MyTestClass
{R *.RES$}
var
مقبض نافذة النسخة التي تعمل// ;WHandle: LongInt
;MyClassName: PChar
begin
احتفظ بأسم الصنف الخاص بالنافذة// ;'MyClassName := 'TMyTestClass
احصل على مقبض النافذة// ;(WHandle := FindWindow(MyClassName,NIL
النسخة الأولى: اكمل التحميل// if Whandle = 0 then begin
;Application.Initialize
;(Application.CreateForm(TMyTestClass, MyTestClass
;Application.Run
end
مازالت هناك نسخة تعمل في النظام: لا تكمل التحميل// else
begin
;(ShowMessage('The Program is already in memory
أغلق البرنامج// ;halt
;end
.end
ربما يوما ما سنحتاجها... مع تحياتي...
:rolleyes: عذرا سأحسن مظهر الكود في أسرع وقت!