تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف اقوم بعمل مكتبة application extension dll
#1
السلام عليكم
الرجاء مساعدتى
كيف اقوم بعمل مكتبة application extension dll

هل يمكننى ان اعمل مكتبة application extension dll من الفيجوال بيسيك ام لا
واذا كان لا ما هو البرنامج الذى يقوم ببرمجتها وكيف يتم استخدامها فى برنامجى
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم...

أعتقد أن مصطلح Application Extension DLL يشير إلى ملفات أو مكتبات الـ DLL القياسية التي تحتوي بالأساس على دوال و إجراءات (و ربما ثوابت و بيانات أخرى كالموارد)، و يتم الوصول إلى تلك الدوال و الإجراءات من خلال VB6 باستعمال جملة Declare. هذا النوع من مكتبات الـ DLL لا يمكن برمجته بلغة VB6 (يمكن برمجته بلغات أخرى مثل Delphi و ++C و VB.NET و غيرها).

لكن هناك نوع آخر من مكتبات الـ DLL هو مكتبات الأكتف إكس (ActiveX DLL) التي يمكن برمجتها بسهولة من خلال VB6. و هي مكتبات تتكون بالأساس من أصناف (Classes) ذات خصائص (Properties) و وظائف (Methods) يتم استدعاؤها من خلال برنامج VB6 المضيف.
التعامل مع هذه المكتبات لا يتم من خلال جملة Declare (مثل ملفات DLL القياسية) و لكن من خلال تضمينها في مراجع المشروع (References) ثم اشتقاق كائنات (Objects) من الأصناف المعرفة في المكتبة.

سلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة:
#3
شكرا لك اخى العزيز على سرعة الرد ولكن

انا باختصار شديد صممت برنامج واريد ان اضع ايكونه لبرنامجى فى برنامج الورد ليراها المستخدم فى برنامدج الورد ويضغط على الزر فيذهب الى برنامجى

علما بان لا يمكننى وضعه الا من فتح مكتبة application extension dll


فهل يوجد طريقة اخرى او ماذا افعل

انا وجدت برامج تفعل هذا وتضيف نفسها فى قائمة الورد فى Add Ins
فى برنامج الورد الرجاء مساعدتى للاهميه
الرد }}}
تم الشكر بواسطة:
#4
السلام عليكم...

إذا كان الأمر كذلك.. فنعم! يمكنك ذلك من خلال VB6 نفسها:
1. من القائمة File اختر الأمر New Project.
2. في نافذة New Project اختر Addin.

سيتم إنشاء مشروع ActiveX DLL خاص يحتوي على Form واحدة باسم frmAddIn و Designer واحد باسم Connect.

انقر على Connect نقراً مزدوجاً لفتحه.
في أسفل نافذة الـ Designer ستجد خانة (Combo) باسم Application. افتحها و اختر منها Microsoft Word.
في الخاتة التي تحتها (Application Version) اختر نسخة Word المقصودة (محتويات القائمة تعتمد على نسخ Word المثبتة في جهازك).
في الخانة التي تحتها (Initial Load Behavior) اختر Startup (أو غيرها من طرق تحميل الـ Add-in في برنامج Word).

*** للأسف هناك القليل ممن يبرمجون مثل هذه الأمور (الـ Add-ins أو الإضافات). أنا شخصياً برمجته مرة واحدة و كان Add-in خاص بـ VB6 نفسها. لكني لم أبرمج واحداً لـ Word.

*** حاولت عمل تجربة بسيطة حيث حفظت المشروع المبدئي كما هو (بعد تعديل الخيارات المذكورة أعلاه لتشير إلى Word - عندي Word 2010) ثم حولته إلى DLL عن طريق الأمر Make في القائمة File (و بالمناسبة تحتاج إلى تشغيل VB6 كمسؤول - Run as Administrator حتى تتم عملية تسجيل الـ Add-in في سجل النظام - Windows Registry عند تنفيذ الأمر Make).
ثم قمت بتشغيل برنامج Word 2010 و كانت هناك محاولة من البرنامج لتحميل الـ Add-in و لكن تظهر رسالة خطأ (Type Mismach) و لا يتم تحميل الـ Add-in. ربما كان هناك فرق في أنواع البيانات بين VB6 (صادرة في 1998) و برنامج Word (صادر في 2010).

* ملاحظة: تنفيذ الأمر Make لبرنامج ActiveX DLL يقوم تلقائياً بتسجيله في سجل النظام (مع Windows 7 يجب أولاً تشغيل VB6 كمسؤول). أما لتسجيل الملحق يدوياً فاختر الأمر "تشغيل" (Run) من قائمة "ابدأ" و نفذ الأمر regsvr32 dllfilepath حيث dllfilepath هو مسار و اسم ملف الـ DLL. و إذا كان المسار يحتوي على فراغات فاحصره كله ضمن علامات اقتباس مزدوجة.
و لإلغاء تسجيل ملحق DLL استعمل الأمر regsvr32 dllfilepath /u.

للأسف لا يمكنني إفادتك بالمزيد من المعلومات، و لكن يمكنك التعمق أكثر في مواضيع الـ Add-ins إذا كانت لديك تعليمات MSDN أو عن طريق موقع Microsoft نفسها.

أرجو لك التوفيق و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة:
#5
بارك الله فيك على المعلومات القيمة
الرد }}}
تم الشكر بواسطة:
#6
اشكرك اخى فى الله ناجى ابراهيم

سوف اقوم بتجربته ومن ثم الرد عليك والف شكر ليك لان والله الموضوع هام جدا جدا بالنسبالى واشكرك مرة اخرى على اهتمامك والرد على سؤالى
الرد }}}
تم الشكر بواسطة:
#7
اخى العزيز لقد قمت بتجربتها فعلا ولكن النتيجة كما ذكت انت مع العلم انى استخدم اوفيس 2007
تظهر رسالة خطأ (Type Mismach) و لا يتم تحميل الـ Add-in
ماذا افعل ارجوكم ساعدونى
الرد }}}
تم الشكر بواسطة:
#8
السلام عليكم...

لقد بحث في موقع ميكروسوفت و وجدت مثالاً حول إضافة زر إلى Excel 2007 و قد جربته على Excel 2010 و عمل بشكل سليم (طبعاً كتجربة حيث يتم عرض رسالة عند تحميل الـ add-in و عند إلغاء تحميله، و عند النقر على الزر).

* تجد الزر المضاف في تبويب "الوظائف الإضافية" (هذا ما ظهر لي في Excel 2010).

قمت بتعديل الكود قليلاً من أجل Word. و الخطوات كالتالي:

1. قم بتشغيل VB6 كمسؤول.
2. من القائمة File اختر الأمر New Project.
3. في نافذة New Project اختر Addin و انقر OK.
4. أزل النافذة frmAddin من المشروع.
5. انقر نقراً مزدوجاً على الـ Designer المسمى Connect لفتحه.
6. في الخانة Application اختر Microsoft Word.
7. في الخانة Application Version اختر نسخة Word.
8. في الخانة Intial Load Behavior اختر Startup.
9. افتح كود الـ Designer (المسمى Connect) و احذف كل الكود الموجود (الكود الافتراضي الموجود سابقاً مكتوب بشكل افتراضي لإنشاء add-in من أجل VB6 نفسها).
10. انسخ الكود التالي و ألصقه:
كود :
Option Explicit

Dim WordObj As Object
Dim WithEvents MyButton As Office.CommandBarButton

Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
    On Error Resume Next
    
    MsgBox "My Addin started in " & Application.Name
    
    Set WordObj = Application
    
    Set MyButton = WordObj.CommandBars("Standard").Controls.Add(1)
    With MyButton
        .Caption = "My Custom Button"
        .Style = msoButtonCaption
        
        ' The following items are optional, but recommended.
        ' The Tag property lets you quickly find the control
        ' and helps MSO keep track of it when there is more than
        ' one application window visible. The property is required
        ' by some Office applications and should be provided.
        
        .Tag = "My Custom Button"
        
        ' The OnAction property is optional but recommended.
        ' It should be set to the ProgID of the add-in, such that if
        ' the add-in is not loaded when a user presses the button,
        ' MSO loads the add-in automatically and then raises
        ' the Click event for the add-in to handle.
        
        .OnAction = "!<" & AddInInst.ProgId & ">"
        
        .Visible = True
    End With
End Sub

Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
    On Error Resume Next
    
    MsgBox "My Addin was disconnected by " & IIf(RemoveMode = ext_dm_HostShutdown, "Excel shutdown.", "end user.")
    
    MyButton.Delete
    Set MyButton = Nothing
    Set WordObj = Nothing
End Sub

Private Sub MyButton_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
    MsgBox "Our CommandBar button was pressed!"
End Sub
11. احفظ المشروع.
12. من القائمة File اختر الأمر Make لإنشاء الـ DLL و تسجيله في النظام.
13. شغل برنامج Microsoft Word. ستظهر لك رسالة عند بدء تشغيله تخبرك بأنه تحميل الـ add-in. افتح علامة التبويب "الوظائف الإضافية" و ستجد بها زراً بعنوان My Custom Button عند النقر عليه سيعرض رسالة. و عند إغلاق Word ستظهر أيضاً رسالة تخبرنا بإلغاء تحميل الـ add-in.

*** بالطبع يمكنك حذف رسائل البداية و النهاية من الكود، و تعديل الإجراء MyButton_Click (في الكود السابق) لتنفيذ ما تريده بدل عرض الرسالة.

*** و ربما ستحتاج إلى مراجعة وثائق و تعليمات MS Word لمعرفة كيفية التعامل مع Word من داخل كود الـ add-in.

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة:
#9
شكرا لك اخى الكريم ناجى ابراهيم

لقد قمت بعمل ما شرحته لى بالتمام ولكن عند حفظ ال Dll
تظهر رساله خطا بسبب هذا السطر
Dim WithEvents MyButton As Office.CommandBarButton

اظن انه لابد من ان تتواجد مكتبة باسم Office لكى يعمل هذا السطر بشكل صحيح

ماذا افعل فى هذه المشكله
الرد }}}
تم الشكر بواسطة:
#10
اخى الحبيب اشكرك جدا جدا على اهتمامك
لقد قمت بحذف هذا السطر وقد عمل معى الكود بشكل جيد جدا على ورد 2007 اشكرك كل الشكر.

ولكن الكود فى ال MyButton_Click لا يعمل نهائى

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

اريد باختصار ان يضغط المستخدم على هذا الزر فيذهب الى برنامجى ومعه كل المكتوب فى الود

انا الان ابحث فى هذه الخطوه
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مكتبة اكواد فيجول بيسك | Visual Basic Codes " derbaliammar 2 8,592 21-01-24, 07:10 AM
آخر رد: Whled2020

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم