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

كيف التنصت على الكيبورد بالسي شارب

مغلق
بدأه csharpboy في 2 سبتمبر 2006 · 1 رد · 709 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هذه اول مشاركة لي وهي طلب مساعدة

ارجوا ان القى القاها هنا في هذا المنتدى الرائع

أنا أود أن اسجل الأحرف التي تكتب بواسطة الكيبورد ولكن هناك مشكلة

أنه اذا لم تكن النافذة هي النافذة الرئيسية فهذه العملية لن تنجح

فهل هناك حل لهذه المشكلة

أي التنصت على الكيبورد في حال كان البرنامج في حالة تصغير او اي حاله اخرى غير الظهور بالأمام

وشكرا للمساعدة

وارجوا ان اكون قد شرحت مشكلتي بالشكل المطلوب

#2

الحل هو استخدام Windows API المتعلقه في Hook

وهي :

SetWindowsHookEx

تستخدم لتنصيب الـ Hook .

UnhookWindowsHookEx

تستخدم الالغاء تنصيب الـ Hook.

CallNextHookEx

تمرير النداء ل هوك آخر .

طريق تعريف الـ API:

		[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
		protected static extern IntPtr SetWindowsHookEx(int idHook,
			HookProc lpfn, IntPtr hInstance, uint dwThreadId);

		[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
		[return: MarshalAs(UnmanagedType.Bool)]
		protected static extern bool UnhookWindowsHookEx(IntPtr hhk);

		[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
		protected static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode,
			IntPtr wParam, IntPtr lParam);

والنوع الذي يلبي طلبك هو Low Level Hook

لكي لا اطول في الكلام و ( تفصل الفيوز :P ) :

قمت بعمل كلاسات ( LowLevelHook,KeyboardHook, MouseHook ) لهذا النوع لاحد المشاريع ، وهي مرفق مع هذا الرد مع مثال لاستخدامها . فهي سهله جداً في الاستخدام

اتمنى اني اكون افدتك ،

وآسف على الرد المتاخر ، حيث لم أقر الموضوع سوى اليوم

LowLevelHook.rar

تم تعديل هذه المشاركة بواسطة da-crystal في 7 سبتمبر 2006 في 03:24

لا مستحيل غير الوقت

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

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