كيفية عمل Send Keys للكتابه في البرامج الاخرى - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
الثلاثاء
2016-12-06
1:13 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

كيفية عمل Send Keys للكتابه في البرامج الاخرى
كيفية عمل Send Keys

مقـــدمه
اليوم سنتحدث عن كيفية ارسال ضغطات المفاتيح الى التطبيقات الاخرى اوتوماتيكياً , وذلك باستخدام الداله SenKeys , حيث من خلالها يستطيع برنامجك ارسال الحروف الى البرامج الاخرى , وكأنك فتحت البرنامج بنفسك وكتبتها .
فكرة البرنامج
تقوم الفكره الاساسيه للبرنامج على تفعيل او تنشيط نافذة البرنامج الذي نريد الكتابه فيه , بحيث تكون هي النافذة الرئيسيه , ثم نرسل لها النص او المفاتيح التي نريد
ولتنشيط نافذه معينه فانه تستخدم داله API تسمى SetForegroundWindow تأخذ قيمة Intpr الخاص بهذه النافذه , هذا كود الداله  
SetForegroundWindow Method
ايجاد كل النوافذ الممكنه
في البدايه يجب وضع قائمة بكل النوافذ الممكن الكتابه فيها , ويجب تحديد قيمة مؤشر Intptr لكل منها , حتى بتم تفعيلها من خلاله , وفي سبيل ذلك نستخدم الكلاس Process والذي يعطي بمعلومات كافيه عن كل ما يعمل على النظام , سواء برنامج او سيرفيس او غيرها , - يندرج الكلاس Process تحت النيم سبيس System.Diagnostics - وسنستخدم الداله GetProcesses في ايجاد كل العمليات على النظام , ولكننا سننتقي منها كل ما يحتوي على نافذه , وذلك حتى يمكننا الكتابه في هذه النافذ , وللتمييز بين ما له نافذه وبين ما ليس له نافذه من خلال القيمه MainWindowTitle حيث ما له نافذه تكون هذه القيمة ليست فارغه , فهي ترجع نص عنوان النافذه , ومن خلال القيمة MainWindowHandle يمكننا الحصول على قيمة مؤشر Intptr للنافذة , وبالتالي نكون حصلنا على اهم ما في الموضوع , فالان لدينا قائمة بها النوافذ او البرامج التي يمكن الكتابه فيها , وايضا مئشر كل نافذه , اذا كل شئ جاهز لاختيار نافذة وارسال المفاتيح اليها , وهذا كود عمل هذه القائمة ووضعها مع قيم المؤشرات داخل ListView تتكون من عمودين , الاول لعنوان النافذه , والثاني لقيمة المؤشر
GetProc Method
إرسال المفاتيح
والان بعد ملئ القائمة بكل ما نحتاجه من بيانات , يمكننا الان اختيار عنصر معين من القائمة وارسال النص الخاص به , ولارسال نصوص كما قلنا سابقا فان الاجراء يحتوي على خطوتين :
1- تفعيل او تنشيط النافذة المطلوبه من خلال الداله SetForegroundWindow  بقيمة مؤشر النافذه .
2- ارسال المفاتيح كنص string باستخدام الداله SendKeys.Send .

ولتنفيذ هذه الخطوات على القائمة السابقه , فاننا نستخدم الكود التالي :
Send Event
 
حيث تم تحويل قيمة المؤشر الى رقم - حيث انها في القائمة عباره عن نص - , ثم عمل cating لها الى Intptr , ثم بعد ذلك تم تفعيل النافذه من خلال هذا المؤشر , ثم تم ارسال البيانات المكتوبه في مربع نصي .
ختــــام
والى هنا تكون كل الاجراءت والخطوات انتهت , ولكن الامر لا ينتهي عند هذا الحد , فما تم شرحه هنا هو النواه الاساسيه للموضوع , وليس كل ما في الموضوع , فقد اقتصرنا على طريقة ارسال نصوص فقط , ولكن ماذا ان كنت تريد ارسال مفتاح Tab او Shift او غيرها ؟ بنفس الطريقه ولكن مع اختلاف نص المفتاح , فعندما نريد ارسال حرف E فاننا نرسله كما هو E , ولكن عند ارسال مفتاح مثل Tab فان الامر يختلف , فالنص هنا يكون {TAB} , كذلك الامر مع باقي المفاتيح غير الحروف تكون مثلا {F1} {F2}{F3} وهكذا , كل ما عليك هو ايجاد طريقه لتحويل تلك المفاتيح الى تلك القيم , ثم عمل تطبيقك الخاص الذي تستطيع من خلاله ما تريد , فيمكنك تخزين ايميلك وكلمة السر الخاصه به في البرنامج , بحيث يقوم البرنامج بفتح ايميلك اوتوماتيكيا ً
تحميل المشروع
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-09-15 7:56 PM)
مشاهده: 1468 | الترتيب: 0.0/0


أترك تعليقك من خلال حسابك على الفيس بوك

تعليقات مشتركي الموقع

مجموع المقالات: 0
إضافة تعليق يستطيع فقط المستخدمون المسجلون
[ التسجيل | دخول ]
طريقة الدخول
بحث
Our Facebook community

تم إطلاق صفحة توب كودر على الفيس بوك

Advertisment
الأحـــدث
hitstatus
Copyright Mohammed Mahmoud © 2016
إنشاء موقع مجاني с uCoz