منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] طلب شرح لبعض اوامر API - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] طلب شرح لبعض اوامر API (/showthread.php?tid=12630)



طلب شرح لبعض اوامر API - nowaytorun - 30-06-15

انا بحاول انقل data بين vb.net و برنامج تانى انا عاوز اتحكم  فيه , الحمد لله انا عرفت اعمل كده عند طريق sendkeys بس فى مشكلة ان لازم نافذة البرنامج اللى انا بحاول اتحكم فيها لازم تكون "on top" . انا دورت على النت علشان احل المشكلة دى( انا عاوز ابعت و استقبل المعلومات حتى لو نافذة البرنامج صغرتها ل شريط المهام) .
فوجد انا فى اوامر اسمها  (API) ==< زى امر find window و handle بس مفهمتهمش كويس.
فياريت تساعدونى و تشرحوا الموضوع ده



RE: طلب شرح لبعض اوامر API - silverlight - 30-06-15

Handle الخاص ب الفورم عبارة عن IntPtr و هو عبارة عن رقم قيمته تتغير في كل مرة تقوم فيها بتشغيل برنامجك بمعني انك في كل مرة ستقوم فيها بتشغيل الفورم الرئيسي في مشروعك قيمة هذا IntPtr الخاصة بهذا الفورم ستتغير أي أنها ليست قيمة ثابتة و في واقع الأمر أنا يحلو لي ان ادعوه مفتاح خاص لكل فورم علي حده أو رقم مسلسل يقوم نظام التشغيل بإعطاؤه للفورم بحيث لا تجد له مثيلا وذلك حتي يستطيع نظام التشغيل مراقبة البرامج المفتوحة طبقا لهذا Handle

ويمكن اقرب مثال لذلك أيضا انت عندما تحاول ان تعطي ارقام مسلسلة لأي شئ فأنت غالبا لا تريد تكرار الارقام المسلسلة و بالتالي العناصر التي تنتمي لكل رقم مسلسل لديك تكون مرتبطة بهذا الرقم المسلسل و من هنا تأتي اهمية هذا الرقم في انه رقم متفرد لن تجد له مثيل في اي فورم مفتوح علي شاشة الكمبيوتر مثلا زمان و في بدايات الكمبيوتر و قبل الدوت نت كل شئ تقريبا كان له Handle او IntPtr مثل الفونت Font و الصورة Image/Bitmap و اشياء اخري

فيما يختص بمشروعك و بالنسبة لأي فورم موجود به فمن السهل استرجاع قيمة Handle الخاصة بكل فورم علي حدة او مثلا يمكنك ان تسحدم My.Application.OpenForms و هي قيمتها عبارة عن FormCollection و منها سوف يمكنك استرجاع قمية Handle لحميع الفورم الموجودة في مشروعك

, وطبعا و بما ان مايكروسوفت تكتب الكود الخاص ب كلاسات الدوت نت بأسلوب يخدم أهدافها هي في القام الأول و هذا خقها طبعا بالتالي قامت بتوزيع دوال API القديمة في أكثر من مكان علشان احنا نتعب شوية لكي نصل للنتائج الني نريدها

عموما انت تحتاج الي استخدام الكلاس Processs لكي تسترجع Handle الخاص بأي نافذة مفتوجة و التي لا تنتمي الي نوافذ برنامجك