الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن الإحتبار إذا كان أحد البرامج مفتوح ؟

مغلق
بدأه fadi2003 في 15 مايو 2003 · 13 رد · 1,329 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

كيف يمكنني أن أجعل برنامجي يختبر إذا كان الديلفي في حالة عمل يعمل برنامجي بشكل عادي و إلا لايعمل أبدا .

وشكرا جزيلا لكم .

#2

:( (clock)

#3

ألا يوجد حل لهذا السؤال .

#4

:om ? ?

#5

عذرا اخي fadi2003 فقد ظننت ان المشكلة قد انحلت عندما ارسلت لك رابط لمقالة الاخ كفاح حول معرفة اذا كان الدلفي يعمل ام لا

على العموم قد قمت بعمل مثال بسيط لك ارجو ان يكون فيه الجواب

او لا انشأ دالة تقوم باختبار هل الدلفي يعمل ام لا .

وهي كالتالي :

function TForm1.IsDelphiRunning: Boolean;
begin
 Result:= (FindWindow('TAppBuilder', nil) > 0);
end;

وعند حدث انشاء الشاشة الرئيسية تقوم بالتأكد فعلا اذا كانت الدلفي تعمل تخرج من الاجراء فورا ، واذا لم تكن تعمل فانك تنهي عمل البرنامج كالتالي

procedure TForm1.FormCreate(Sender: TObject);
begin
 if IsDelphiRunning = True then
  begin
   Exit;
  end else begin
ShowMessage('To Try this Program please Run Delphi first , Application will Terminate');
Application.Terminate;
 end;

ولعل المثال المرفق يوضح لك الصورة اكثر

واخيرا تقبل تحياتي

isdelphirunning.zip

#6

مشكور أخي أبو هـــانــي(f)(f)

أخوكم:cool:

#7

شكرا جزيلا لك أخي العزيز : ابوهاني .

#8

شـــكرا لك يا أبو هاني . . .

(f)(f)(f)(f)(f)(f)(f)(f)(f)(f)(f)

#9

بسم الله الرحمن الرحيم

اخي العزيز أبو هاني ....

ولكن كيف لي ...ان أعرف Handel...للبرنامج اخر ...وليس دلفي حصراً

اي بمعنى أخر ...اذا أردتُ...أن أطلب برنامج أخر ....للتحقق من انه في عمل

ارجو الرد

مشكور مقدمأً;)

#10

اخي الحق

اشكرك على سؤالك الذكي هذا

في الحقيقة لا توجد لدي طريقة مباشرة لاختبار عمل برنامج اخر غير طريقة معرف الاسم الداخلي للبرنامج او ما يسمى ClassName ( عذرا على سوء الترجمة ) . ومن ثم استخدام نفس الطريقة اعلاه في للتاكد بان البرنامج الذي تريده يعمل او لا .

ولمعرفة الاسم الداخلي لاي برنامج يمكننا ان الاستعانة باحدى دوال API وهي:

GetClassName(

    HWND hWnd,	// handle of window
    LPTSTR lpClassName,	// address of buffer for class name
    int nMaxCount 	// size of buffer, in characters
   );

طبعا هذه الدالة تتطلب منك كما هو واضح اعلاه ثلاث متغيرات

1- مقبض النافذة ( Handle)

2- متغير من نوع AnsiChart لتخزين عنوان ClassName

3- متغير من نوع Integer لحجم العنوان

ويعود لك بقيمة 1 اذا نجح في الاجراء ، و بـ صفر اذا فشل

على العموم لا اريد ان اطيل في الموضوع ، ولكن ارفق لك مثال صغير وهو برنامج يقوم باظهار الاسم الداخلي لاي برنامج تضع عليه مؤشر الفارة ، وايضا الاسم الداخلي للمكونات الموجودة في نفس البرنامج .

المثال سوف يشرح لك بصورة اوضح ما اريد توصيله

تقبل تحياتي

myspy.zip

#11

بسم الله الرحمن الرحيم

مشكور أخي ابوهاني ....وسأجرب البرنامج؟؟؟؟

وأخبرك بكل جديد؟؟

#12
شـــــكرا . .
#13

الاخوة الكرام

خطرت لدي فكرة وانا اقوم باعداد هذا المثال

بعض الكمبوننت التي لا تعمل الا في وجود دلفي في حالة عمل يمكن التلاعب

عليها ، وذلك بتسمية النموذج الرئيسي للبرنامج " AppBuilder "

فتعتقد هذه الكمبوننت ان دلفي مازال يعمل ;)

في الحقيقة انا لا استخدم الكمبوننت الخارجية كثير اً..

لذلك ارجو ممن لديه مثل هذه الكمبوننت ان يجرب ، ويفيدنا

تقبلوا تحياتي

#14

السلام عليكم

ممكن جدا تلك الفكرة ...ولكن عندما أريد أستخدام تلك المكونات

أغلب الأحيان تعذبني ..وأنا بغنى عنها ..حتى أجد البديل

أخوكم:cool:

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…