1. كيفية إضافة عناصر القائمة إلى قائمة النقر بزر الماوس الأيمن في IE
قد يعرف الأصدقاء الذين استخدموا Netants أن NetAnts أضاف وظيفة قائمة النقر بزر الماوس الأيمن في IE طالما قمت بالنقر بزر الماوس الأيمن على رابط أو صورة في الصفحة وحدد Down By Netants في القائمة، يمكنك الاتصال بـ Netants للتنزيل. الملف المشار إليه بواسطة الرابط. في هذه المقالة، سيقدم المؤلف كيفية تنفيذ مثل هذه الوظيفة من خلال لغة VB.
لتنفيذ وظيفة إضافة عناصر القائمة إلى قائمة النقر بزر الماوس الأيمن في IE، يجب تنفيذ الخطوات التالية بالتسلسل:
1. قم بإنشاء عنصر جديد ضمن العنصر ExplorerMenuExt HKEY_CURRENT_USERSoftwareMicrosoftInternet في التسجيل. يظهر اسم العنصر كعنوان في القائمة. على سبيل المثال، عنوان عنصر القائمة الذي تريد إنشاءه أضف عنوان URL، ثم اسم العنصر الجديد هو
HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtAdd URL
2. قم بتعيين القيمة الافتراضية للعنصر الجديد على عنوان URL. عندما ينقر المستخدم على عنصر القائمة، سيقوم IE باستدعاء البرنامج النصي في الصفحة التي يشير إليها عنوان URL، في البرنامج النصي للصفحة المستهدفة، قم بالوصول إلى سمة MenuArguments للكائن الخارجي الذي يوفره IE يمكنك الوصول إلى كائنات مختلفة في الصفحة في IE، مثل الروابط والصور وحقول النماذج والنص المحدد وما إلى ذلك. للحصول على تعليمات تفصيلية، الرجاء الرجوع إلى MSDN حول كائن InternetExplore
مع المساعدة، يمكنك فهم البرنامج النصي التالي بشكل أفضل إذا كنت معتادًا على كائن Window.
بالنسبة لمشكلة كيفية تنفيذ برنامجنا الخاص للوصول إلى MenuArguments، يمكننا اتباع نهج Netants وإنشاء أولًا
كائن أتمتة OLE، ثم قم باستدعاء الكائن في البرنامج النصي وتمرير معلومات الصفحة إلى الكائن للمعالجة. بعد ذلك نحتاج أولاً إلى إنشاء كائن من خلال VB:
افتح VB، انقر فوق القائمة: ملف |. جديد، حدد ActiveX Dll في نافذة المشروع الجديد واضغط على المفتاح OK لإنشاء ActiveX DLL
مشروع. ثم قم بتغيير خاصية الاسم الخاصة بـ Class1 إلى NetAPI في نافذة قائمة المشروع، ثم قم بإضافة التعليمة البرمجية التالية في نافذة التعليمات البرمجية لـ NetAPI:
AddURL الفرعي العام (عنوان URL كسلسلة، والمعلومات كسلسلة)
معلومات MsgBox، vbOKonly، URL
نهاية الفرعية
احفظ الملف ثم احفظ ملف المشروع كـ NetSamp.vbp. ثم حدد ملف |. قم بإنشاء NetSamp.dll في القائمة لإنشاء مكتبة الارتباط الديناميكي للكائن.
التالي هو مكتبة التسجيل. ابحث عن Regsvr32.exe في دليل Windows، ثم انسخه إلى الدليل الذي يوجد به netsamp.dll.
اسحب رمز netsamp.dll إلى Regsvr32.exe وقم بتحريره في هذا الوقت، سينبثق Regsvr32.exe مربع حوار يطالبك بنجاح تسجيل الكائن.
افتح UltraEdit (أو أي محرر نصوص آخر) وأدخل كود البرنامج النصي التالي في المحرر:
Sub OnContextMenu()
على خطأ استئناف التالي
قم بتعيين srcEvent = External.menuArguments.event
اضبط EventElement = External.menuArguments.document.elementFromPoint(srcEvent.clientX, srcEvent.clientY)
تعيين objNetSamp=CreateObject("NetSamp.NetAPI")
إذا كان srcEvent.type = "MenuExtAnchor" إذن
set srcAnchor = EventElement
قم بذلك حتى TypeName(srcAnchor)="HTMLANchorElement"
قم بتعيين srcAnchor=srcAnchor.parentElement
حلقة
استدعاء objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText)
elseif srcEvent.type = "MenuExtImage" إذن
إذا كان TypeName(EventElement)="HTMLAreaElement" إذن
استدعاء objNetSamp.AddUrl(EventElement.href,EventElement.Alt)
آخر
set srcImage = EventElement
قم بتعيين srcAnchor = srcImage.parentElement
قم بذلك حتى TypeName(srcAnchor)="HTMLANchorElement"
قم بتعيين srcAnchor=srcAnchor.parentElement
إذا كان TypeName (srcAnchor) = "لا شيء" إذن
استدعاء objNetSamp.AddUrl(srcImage.href,srcImage.Alt)
خروج فرعي
نهاية إذا
حلقة
استدعاء objNetSamp.AddUrl(srcAnchor.href, srcImage.Alt)
نهاية إذا
elseif srcEvent.type = "MenuExtUnknown" إذن
set srcAnchor = EventElement
قم بذلك حتى TypeName(srcAnchor)="HTMLANchorElement"
قم بتعيين srcAnchor=srcAnchor.parentElement
إذا كان TypeName (srcAnchor) = "لا شيء" إذن
استدعاء objNetSamp.AddUrl(EventElement.href,EventElement.innerText)
خروج فرعي
نهاية إذا
حلقة
استدعاء objNetSamp.AddUrl(srcAnchor.href,srcAnchor.innerText)
نهاية إذا
نهاية الفرعية
callOnContextMenu()
احفظ الملف في ملفات c:program باسم الملف geturl.htm
كما ترون من البرنامج النصي أعلاه، قم أولاً بالوصول إلى خاصية External.menuArguments للحصول على الكائن حيث ينقر المستخدم على زر الفأرة الأيمن، ثم احصل على عنوان URL الخاص به استنادًا إلى الكائن، ثم قم بإنشاء كائن IEContextMenu.IEMenu1 واستدعاء AddURL الخاص بالكائن طريقة.
الخطوة التالية هي إنشاء عنصر تسجيل لقائمة النقر بزر الماوس الأيمن، وفتح UltraEdit (أو أي محرر نصوص آخر) وإدخال بيانات التسجيل التالية في المحرر.
محرر تسجيل Windows الإصدار 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt&الحصول على عنوان URL]
@="c:\ملفات البرنامج\geturl.htm"
"Contexts"=dword:00000022
احفظ الملف باستخدام reg كلاحقة، ثم انقر نقرًا مزدوجًا فوق الملف في Windows Explorer لإضافة مفتاح التسجيل إلى السجل، ثم افتحه
IE، انقر بزر الماوس الأيمن فوق رابط أو صورة، وسيظهر عنصر Get URL في القائمة المنبثقة. انقر فوق هذا العنصر، وسيظهر مربع رسالة يعرض عنوان URL للارتباط أو الصورة التي تم النقر عليها.
دعونا نقدم دور عنصر السياقات في عنصر التسجيل أعلاه. من خلال هذا العنصر، يمكنك تحديد عنصر القائمة الذي يظهر عند النقر بزر الماوس الأيمن على كائن في IE. يمكن أن يكون مزيج "أو" من القيم التالية:
قيمة الكائن
الافتراضي 0x1
الصورة 0x2
التحكم 0x4
حقل النموذج 0x8
حدد النص 0x10
نقطة الربط 0x20
على سبيل المثال، أعلاه نريد أن يظهر عنصر القائمة عندما ينقر المستخدم على الصورة أو الارتباط التشعبي، ثم نضبط القيمة على dword:00000022، مما يعني أن القائمة ستظهر عندما ينقر المستخدم على الصورة أو الرابط. المرساة هي كائن موجود على الصفحة يصف ارتباطًا تشعبيًا. إذا لم يتم تعيين عنصر السياقات، فستظهر عناصر القائمة في قائمة النقر بزر الماوس الأيمن عند النقر فوق أي كائن.
من خلال مقدمة البرنامج المذكورة أعلاه، يمكننا رؤية عملية عمل قائمة النقر بزر الماوس الأيمن في IE. كما ذكرنا سابقًا، يستخدم Netants هذه الطريقة لاستدعاء NetAnts عن طريق إنشاء كائنات في البرامج النصية. إذا قمنا بتثبيت NetAnts، فيمكننا استدعاء NetAnts في البرنامج عن طريق استدعاء كائن NetAnts.
أنشئ مشروعًا جديدًا، وانقر فوق عنصر "المراجع" في القائمة، ثم حدد عنصر "مكتبة النوع" AntAPI 1.0. إذا لم يتم النقر فوق زر "المستعرض"، فحدد NetAPI.dll في دليل Network Ant في مربع قائمة الملفات، ثم اضغط على "فتح". مفتاح. إضافة CommandButton في Form1
قم بإضافة الكود التالي في حدث Command1_Click:
Dim ant كـ ANTAPILib.AntAPIObj
ant.AddUrl " http://www.downcodes.com/ "
انقر فوق Command1، ثم سيتم تشغيل NetAnts و 7. HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions
قم بإنشاء قيمة نوع سلسلة جديدة باسم Clsid، وقم بتعيين القيمة على {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
8. في السجل HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions
قم بإنشاء قيمة نوع سلسلة جديدة باسم Exec. تحدد هذه القيمة اسم المسار الكامل للملف الذي سيتم تشغيله بعد النقر فوق الزر، على سبيل المثال:
c:program filessamplesnet.exe
على سبيل المثال، محتوى مفتاح تسجيل زر NetAnts هو كما يلي:
Windows Registry Editor الإصدار 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions{57E91B47-F40A-11D1- ب792 -444553540000}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"مرئي افتراضي"="نعم"
"HotIcon"="C:\PROGRA~1\NETANTS\NetAnts.exe,1001"
"Icon"="C:\PROGRA~1\NETANTS\NetAnts.exe,1000"
"Exec"="C:\PROGRA~1\NETANTS\NetAnts.exe"
"ButtonText"="NetAnts"
"MenuText"="&NetAnts"
"MenuStatusBar"="Launch NetAnts"
سيتم إطلاق Netants عند النقر على زر NetAnts. العنصران التاليان في مفتاح التسجيل أعلاه: يضيف مفتاح MenuText عنصر قائمة إلى شريط "الأدوات" بالقائمة، ويحدد المفتاح MenuStatusBar نص المطالبة الذي يتم عرضه في شريط الحالة عندما ينتقل المؤشر إلى القائمة المضافة حاجِز. وبالإضافة إلى ذلك، في التسجيل
يمكنك أيضًا إضافة ملف باسم
قيمة نوع السلسلة في MenuCustomize سيؤدي تعيين هذه القيمة إلى "مساعدة" إلى ظهور عنصر القائمة في شريط القائمة "تعليمات"، وإلا فإنه سيظهر في شريط "الأدوات".
بالطبع، لن نكتفي بمجرد إضافة زر وتنفيذ برنامج ما، ونأمل أن نتمكن من التحكم في الصفحة الحالية عندما ينقر المستخدم على الزر الموجود في HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions. <المعرف الفريد العمومي>
قم بإنشاء قيمة نوع سلسلة جديدة، وقم بتعيين الاسم على اسم المسار الكامل لملف html. كما هو الحال مع إضافة قائمة النقر بزر الماوس الأيمن التي تم تقديمها مسبقًا، سوف يقوم IE باستدعاء الملف بعد النقر فوق الزر، والوصول إليه عن طريق تعيين VBScript في ملف html. يمكن لخاصية MenuArguments للكائن الخارجي الحصول على الصفحة في المتصفح. على سبيل المثال، سنقوم بـ HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions
قم بتعيين القيمة إلى c:program filessamp.htm، ثم قم بإنشاء ملف باسم Samp.htm ضمن ملفات c:program، وأدخل محتوى البرنامج النصي التالي في الملف:
تعيين objNetSamp=CreateObject("IEContextMenu.IEMenu1")
userURL=external.menuArguments.location.href
اتصل بـ objNetSamp.AddUrl(userURL,"")
افتح متصفح IE، وانقر فوق الزر جديد، وسيظهر مربع حوار لعرض عنوان URL للصفحة الحالية. لاحظ أنه لا يمكن استخدام هذا العنصر في نفس الوقت الذي تم فيه تعيين عنصر Exec مسبقًا.
أخيرًا، بالنسبة لأيقونات الأزرار، يتطلب IE حجمين من الأيقونات: 20x20 و16x16، يُستخدم الأول للعرض في الحالة العادية، ويستخدم الأخير للعرض في وضع ملء الشاشة، لذا يجب أن تكون موارد الأيقونات المشار إليها بواسطة HotIcon وIcon أعلاه. تكون عبارة عن مجموعة من ثلاثة أيقونات، ومواصفات هذه الأيقونات الثلاثة هي كما يلي:
أيقونة 16 × 16 ذات 16 لونًا (مطلوب)
أيقونة 20 × 20 ذات 16 لونًا (اختياري)
أيقونة بحجم 20×20 و256 لونًا (مطلوب)
عند تصميم الرموز، يجب أن تستخدم الرموز ذات 256 لونًا لوحة الألوان النصفية لنظام Windows، بينما يجب أن تستخدم الرموز ذات 16 لونًا لوحة الألوان المكونة من 16 لونًا لنظام Windows.
http://www.cnblogs.com/goody9807/archive/2006/12/04/581359.html