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

للمحترفين : كيف اعمل حدث على برنامج خارجي

مغلق
بدأه jooorj في 26 ديسمبر 2006 · 17 رد · 1,607 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

للمحترفين : كيف اعمل حدث على برنامج خارجي ؟؟

التوضيح

اريد عندما اضغط زر بالبرنامج ان يفتح مثلا NotePade او الوورد مو مشكلة هذه اي واحد فيهم...

الاهم أنه عندما أغلق البرنامج المفتوح (الNotePad - أو - الوورد) يطلع رسالة تخبرني بانه تم اغلاق الوورد مثلا ........،

فقط ولا اريد اكثر من ذلك وبأي لغة دوت نت .. سي شارب او في بي. ارجو ان يكون السؤال بسيط وواضح.

تم تعديل هذه المشاركة بواسطة jooorj في 26 ديسمبر 2006 في 12:52

موقوف من المشاركة لقلة الأدب

============================

#2

تعامل مع الـ ProcessID الموجود في الـ TaskManager

مثال بسيط للتوظيح

		Dim ProcessID As Integer = 0
		ProcessID = Shell("notepad.exe", AppWinStyle.NormalFocus)

الان انت قمت بتشغيل البرنامج ولديك الـ ProcessID الخاص بهذا البرنامج

قم بالسؤال عن البرنامج بواسطته عن طريق هذا الكود

		Try
			MsgBox(System.Diagnostics.Process.GetProcessById(ProcessID).ProcessName)
		Catch ex As Exception
			MsgBox(ex.Message)
		End Try

وسيظهر لك اسم البرنامج وطبعاً هناك اكثر من دالة لتظهر لك بيانات الـ ProcessID بدل من ProcessName ;)

طبعاً إذا تم إغلاق البرنامج الخارجي سوف يظهر لك Exception

عاد انت تفنن بالبرنامج :)

تحياتي

رســالـة من يتيــم

AytamResalhGIFmesg.gif

http://www.aytam.org.sa/message_aytam.php

----

أتمنى لك التوفيق اخي cold0zero في موقعك

logo.gif
#3

الله يبارك فيك :)

مشاركة طيبة جدا

لكن اخي ما أريده بالضبط انه عندما اغلق النوتي باد مثلا بالضغط عبى زر اغلاق بالنوتي باد اريد ان اعمل حدثا يعني مش من خلال البرنامج اللي مكتوب بل من خلال اغلاق النوتيباد... طبعا تشغيلها فقط من البرنامج ...

موقوف من المشاركة لقلة الأدب

============================

#4

يمكنك أن تضع بعض الكود في Thread منفصل يعمل في الـ Background يراقب الـ Processes, وبمجرد عدم ايجاد الـ Process الخاصة بالـ Notepad مثلا, يقوم بتفجير الحدث الذي تريده.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#5

بسم الله السميع العليم

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

يمكنك بالفعل الإستفادة من مداخلة الأخ معتز كثير ... و يمكن ايضا ان اقدم اقتراح بسيط هنا وهو استخدام الأحداث في تقنية الـ WMI و مراقبة حدث حدف الفئة Win32_Process ... و يمكنذلك بإستيراد المكتبة System.Managment.

using System.Management;

ثم إنشاء متغير على مستوى الفورم mon من النوع ManagementEventWatcher و الذي سيقوم بفعل المراقبة مع استخدام العبارة التالية من لغة الـ WQL :

"SELECT * FROM __InstanceDeletionEvent WITHIN 1.0 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name='notepad.exe'"

و بالتالي سيكون التعريف كالتالي :

private ManagementEventWatcher mon = new ManagementEventWatcher("SELECT * FROM __InstanceDeletionEvent WITHIN 1.0 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name='notepad.exe'");

و اخيرا قم بتعريف هاندل للحدث EventArrived و الذي اسميته انا بالاسم ProgramClosed و يصبح الكود كالتالي :

		private void Form1_Load(object sender, System.EventArgs e)
		{
			mon.EventArrived += new EventArrivedEventHandler(ProgramClosed);
			mon.Start();
		}

		private void ProgramClosed(Object sender,EventArrivedEventArgs e) 
		{
			MessageBox.Show("لقد ثم إغلاق برنامج المفكرة");
		}

اتمنى ان يكون الرد مفيدا

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

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#6

أشكرك أخي رغيد الطيب

فعلا الكود اللي تفضلت به هو المطلوب جزاك الله كل خير :)

عندي سؤال اخر بخصوص عندما أقوم بضغط زر حفظ الموجود بالنوتي باد أريد تنفيذ حدث بانه تم ضغط زر حفظ :)

موقوف من المشاركة لقلة الأدب

============================

#7

أشكرك أخي رغيد الطيب

فعلا الكود اللي تفضلت به هو المطلوب جزاك الله كل خير

عندي سؤال اخر بخصوص عندما أقوم بضغط زر حفظ الموجود بالنوتي باد أريد تنفيذ حدث بانه تم ضغط زر حفظ

موقوف من المشاركة لقلة الأدب

============================

#8

ماذا تقصد يعني؟؟

lxcs.png

syria-flag_small.jpg

#9

أقسد عندما اضغط زر حفظ ببرنامج النوتي باد يعمل حدث ويقول لقد ضغط زر حفظ على غرار الفكرة السابقة والتي تظهر رسالة عند اغلاق النوتي باااد.. :)

موقوف من المشاركة لقلة الأدب

============================

#10
اقتباس
أقسد عندما اضغط زر حفظ ببرنامج النوتي باد يعمل حدث ويقول لقد ضغط زر حفظ على غرار الفكرة السابقة والتي تظهر رسالة عند اغلاق النوتي باااد..

هذي مستحيلة إلا إذا كان البرنامج من برمجتك

#11

والله لا أظن ان شيئا مستحيلا بالبرمجة

موقوف من المشاركة لقلة الأدب

============================

#12
jooorj كتب:
والله لا أظن ان شيئا مستحيلا بالبرمجة

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

#13

ليس لهذا الحد فمثل ما قام الاخ رغيد الطيب الله يبارك فيه بعمل حدث عند الاغلاق

أكيد الموضوع شبيه بيه

انا عشان عايز لمن اضغط زر الحفظ بالنوتي باد ارجل الملف لقاعدة البيانات حيث انا بكون عارف مكانه على الهارد هذا كل الموضوع.

موقوف من المشاركة لقلة الأدب

============================

#14

حدث الإغلاق سهل إصطياده لأنه يؤدي إلى توقف البرنامج و إزالته من الذاكرة و هو حدث على مستوى النظام. أما حدث مثل الـsave فهو على مستوى البرنامج و ليس على مستوى النظام و لا توجد طريقة سهلة لاصطياده.

لكن إذا كنت تعرف بالضبط أين سيتم التسجيل و إسم الملف يمكنك ببسلطة مراقبة وجود الملف من عدمه أو تغير حجمه مثلاً لكن طبعاً يجب معرفة مكان الملف و اسمه.

#15

نعم اسم الملف ومكانه معروفان

موقوف من المشاركة لقلة الأدب

============================

#16

حسنا إذا عرفت إسم الملف و حخمه يمكنك الإستعلام ب IF عن تغير حجم الملف كل مدة زمنية قصيرة

#17

وكما يمكنك إنشاء مشروع من نوع خدمة لمراقبة التغيرات الطارئة على دليك المراد متابعته

#18

سليم كلامكم منطقي فعلا :)

جزاكم الله كل خير

موقوف من المشاركة لقلة الأدب

============================

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

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