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

عمل Hook للنوافذ

مغلق
بدأه MSVS في 8 نوفمبر 2005 · 38 رد · 12,959 مشاهدة · في المواضيع و الدروس القيّمة
مشاركة: واتساب X فيسبوك تيليجرام
#26

شكرا cipher

مثلا عندما تضع مؤشر الماوس فوق اي عنصر من عناصر القائمة الرئيسية فان لون هذا العنصر يصبح ازرق بدلا من الرمادي وهذا يعني ان ماسج معين تم ارساله ماهو ؟

وعندما تضع مؤشر الفارة فوق الtray bar فكيف اعرف اني فوق التري بار مش اي مكان اخر !! لابد ان هناك message معين يتاثر بهذه الحدث

باختصار انظر الى البرنامج الملحق

فعلا انت محق اريد فكرة القواميس الفورية

text_capture.zip

text_capture.zip

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#27

السلام عليكم

اقتباس
مثلا عندما تضع مؤشر الماوس فوق اي عنصر من عناصر القائمة الرئيسية فان لون هذا العنصر يصبح ازرق بدلا من الرمادي وهذا يعني ان ماسج معين تم ارساله ماهو ؟

وعندما تضع مؤشر الفارة فوق الtray bar فكيف اعرف اني فوق التري بار مش اي مكان اخر !! لابد ان هناك message معين يتاثر بهذه الحدث

المعلومة التي تهمك هي كيف تعرف أنه المكان المشارله بالفأرة والذي يكتب في الخانة Window class!!!

هذه الخانة معرفة ب

DDX_Text(pDX, IDC_EDIT_WNDCLASS, m_strWndClass);

أي IDC_EDIT_WNDCLASS معرف الEditBox و القيمة m_strWndClass

post-91400-1185740789_thumb.jpg

في هذه الصورة تشاهد أنه تم إسناد القيمة المعنية بالأمر

قبل الإنطلاق فعليا في البحث وتحديد أطراف المكان الجديد تكون هناك مقارنة ما إن كان "المجهر" في مجال واجهة البرنامج أم لا وهو ما وضعته في إطار أحمر

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

لكن قبل ذلك توجد دالة أخرى هامة وهي SmallestWindowFromPoint

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

تعتمد هذه الدالة أساسا على الدالتان الأصليتان التاليتان :

GetWindow() تمكن من التعرف على المكان المتواجد فيه (النافذة)

GetWindowRect () لتحديد إطار المكان الموجود فيه مؤشر الفأرة

#28
اقتباس
مثلا عندما تضع مؤشر الماوس فوق اي عنصر من عناصر القائمة الرئيسية فان لون هذا العنصر يصبح ازرق بدلا من الرمادي وهذا يعني ان ماسج معين تم ارساله ماهو ؟

راجع MSDN -Menu Messages ستجد WM_MENUSELECT . جرب وأخبرني النتيجة . عذراً ليس لدي وقت للتجربة ..

اقتباس
وعندما تضع مؤشر الفارة فوق الtray bar فكيف اعرف اني فوق التري بار مش اي مكان اخر

ماقاله الأخ Ben_Laiid سيفيدك في هذه النقطة ...

قد تحتاج لهذه التوابع :

GetClassName

WindowFromPoint

ChildWindowFromPoint

ChildWindowFromPointEx

FindWindow

EnumChildWindows

وغيرها

إستخدم SPY++ وستلاحظ كيف أنه يتمكن من الحصول على معلومات الساعة مثلاً ... أنا كنت وضعت برنامج في أولى مشاركاتي في الفريق العربي (يمكن قبل 5 او 6 سنوات ) يعطي بعض هذه المعلومات ... النت ملئ بالامثلة الشبيهه بـ SPY++ , راجع codeguru , codeproject ..

لا أظن أنك ستحتاج لفكرة القواميس الفورية إن كانت متطلبات برنامجك هي ما ذكرتها ...

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#29

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

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

/index.php?showtopic=119033

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#30
اقتباس
إستخدم SPY++ وستلاحظ كيف أنه يتمكن من الحصول على معلومات الساعة مثلاً ... أنا كنت وضعت برنامج في أولى مشاركاتي في الفريق العربي (يمكن قبل 5 او 6 سنوات ) يعطي بعض هذه المعلومات ... النت ملئ بالامثلة الشبيهه بـ SPY++ , راجع codeguru , codeproject ..

لا أظن أنك ستحتاج لفكرة القواميس الفورية إن كانت متطلبات برنامجك هي ما ذكرتها ...

هذا هو ما افعله يا cipher انا استخدم spy++

كما اني اتابع البحث والتجريب وزت هذه المواقع قبل ان اسال هنا ....

GetClassName

WindowFromPoint

ChildWindowFromPoint

ChildWindowFromPointEx

FindWindow

EnumChildWindows

هذه كلها جربتها وحصلت على النافذة ايضا ولكن لم اجرب التابع

SmallestWindowFromPoint

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

ولكن الا تعتقد ان عمل hook للماسج WM_SetText مفيد

هل يستطيع ا

عملت هوك من النوع WH-Mouse و اخر wh_getmessage المهم جربت كل الانواع الهوك الخاصة بالماسجات لا فائدة لا ادري لماذا لا يشعر البرنامج بوجود هذه الماسجات

وضعته هناك لا فائدة غدا ساضع كود البرنامج .... هو بسيط ومتواضع جدا

stardict حجمه كبير ولا سباب خارج السيطرة لا استطيع تحميله

اخاف انه لا مفر من عمل هوك لدوال مثل textout and textdraw ..... الامر الذي لا اجيده....

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#31

هذا موقع عليه العديد من اكواد الدلفي التي قد تخص الموضوع

(يبدو انه مكتبة كامله )

http://omorphia.cvs.sourceforge.net/omorphia/uallCollection/

تم تعديل هذه المشاركة بواسطة romanof في 12 أغسطس 2007 في 13:14

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#32

get selected text from IE window

uses
 ShDocView;
function GetSelectedIEtext: string;
var
  x: Integer;
  Sw: IShellWindows;
  IE: HWND;
begin
  IE := FindWindow('IEFrame', nil);
  sw := CoShellWindows.Create;
  for x := SW.Count - 1 downto 0 do
	if (Sw.Item(x) as IWebbrowser2).hwnd = IE then begin
	  Result := variant(Sw.Item(x)).Document.Selection.createRange.Text;
	  break;
	end;
end;

تم تعديل هذه المشاركة بواسطة romanof في 31 يوليو 2007 في 20:59

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#33

إلى الآن لم أفهم ما الذي تريد عمله

بالنسبة للقوائم فاستخدم WM_COMMAND بدلاً من الرسالة التي اشرت إليها في ردي السابق ..

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#34

cipher

انظر المشاركة 26 هذا ماريد عمله ..

اما WM_COMMAND فهذه لا تتاثر الا اذا ضغطت الا على القائمة في حين اني اريد مراقبة النص الذي تحت الماوس

اما مشاركتي السابقة والتي قبلها فهي من باب جمع اشياء متعلقة بالموضوع

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#35

مجموعة مكونات من دلفي تخص موضوع الhook

http://www.torry.net/quicksearchd.php?Stri...k&Title=Yes

ربما كان هذا الشي مفيدا

http://forums.chasenet.org/index.php?showtopic=3904

تم تعديل هذه المشاركة بواسطة romanof في 2 أغسطس 2007 في 23:58

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#36

لم أصل إلى نتيجة طيبة البارحة أخي romanof كما كنا نأمل

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

في هذه الحالة عليك مراقبة DefWindowProc لكن هذه الدالة مسؤولة عن جميع الرسائل بالتالي حتى أن تفكر بتمرير الماوس على نافذة التطبيق سيؤدي إلى استدعائها

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

لكن الرسائل تصل بسرعة كبيرة لدرجة انك لا تستطيع سوى ان تقف على ال menu bar ولا يمكنك النقر على القائمة لتسجيل رسائلها :wacko:

بالبحث وصلت إلى شئ لا أدري إن كان بإمكانك الإستفادة منه

http://netcode.ru/?lang=asm

GetMenuBarInfo

WM_MENUGETOBJECT

اتصور هذه الدالة وهذه الرسالة مهمة, انظر ما كتب عنهما وسننظر في الموضوع مجددا لاحقا...

أكاد أقع الآن من التعب :P

"تصبحون" على خير :)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#37

اول محاولة طبعا الهيكل الاساسي مسروق من الروس

Rofa_and_Adware.rar

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#38

وهذا مثال اخر على الدلفي ايضا كتبه Ms-Rem

adware_box.rar

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#39

أنا مش متابع الموضوع قوى بس لما بيبقى عندى حاجة فى الـ VB عايز أتتبع حركة الماوس فوقها ( Mouse move & Mouse Leave ) بنعمل Subclassing مع TrackMouseEvent

راجعوا Yomna Link Control بس الجزء ده مش أنا اللى كاتبه , واحد أسمة Paul Caton كمثال للـ Self Sub بتاعة على موقع PSC

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

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