الوصول إلى واجهة COM الخاصة بالتطبيق باستخدام C++ أو C

StackOverflow https://stackoverflow.com/questions/410184

  •  03-07-2019
  •  | 
  •  

سؤال

ردًا على السؤال، كيف يمكنني (أو العثور على مزيد من المعلومات) أتمتة تأكيد وظائف دون تدخل المستخدم، من C++ (أو C) باستخدام:

  • أتل
  • أو رمز الأتمتة مباشرة في C/C++

يعتبر

هل كانت مفيدة؟

المحلول

إذا كان التطبيق يعرض مكتبة أنواع (وتطبيقات Microsoft Office تفعل ذلك)، فيمكنك الحصول عليها من Microsoft C++ باستخدام الكلمة الأساسية #import.سيؤدي هذا إلى إنشاء أغلفة C++ لواجهات COM التي يعرضها التطبيق.

مكتبات الأنواع غالبًا ما تكون ملفات ‎.TLB، ولكن يتم تضمينها بانتظام كموارد Win32 في الملفات القابلة للتنفيذ.

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

يتضمن Windows SDK أداة، "OLE/COM Viewer" يمكنها عرض معلومات مكتبة النوع لكائن COM في التسجيل، أو من ملف أو مورد .TLB.

إذا كنت تريد اللعب باستخدام أحد التطبيقات، فإن VBScript (أو JScript) يوفر لك طريقة سريعة للتجربة.كلاهما قادر على استهلاك واجهات أتمتة OLE.

نصائح أخرى

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

لذلك فإن أبسط طريقة (إذا كان التطبيق موجودًا بالفعل، مثل Word وExcel وVisual Studio وما إلى ذلك) هي كتابة برنامج نصي بلغة تدعم DCOM (مثل Ruby مع مكتبة WIN32OLE الخاصة به) واستخدام ذلك للاتصال بالملف طلب.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top