هل من الممكن استخدام COM خالية من تسجيل مع التطبيقات HTA؟

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

  •  20-08-2019
  •  | 
  •  

سؤال

ومنذ يتم استضافتها التطبيقات HTA ضمن MSHTA.exe كيف يمكن للمرء توفير واضح؟ بالإضافة إلى أفترض توفير MSHTA.exe.manifest يحتمل كسر التطبيقات HTA أخرى؟

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

المحلول

في ويندوز فيستا +، MSHTA.exe لديه واضح جزءا لا يتجزأ، والتي تأخذ الأولوية على كشوف الخارجية، لذلك اقتراحك ليس خيارا.

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

والحل السليم، وهي متاحة على WIN2003 وأعلاه، هو استخدام في الكائن Microsoft.Windows.ActCtx لمثيل الكائن إعطاء إشارة واضح صريح.

وعلى سبيل المثال:

var actCtx = WScript.CreateObject("Microsoft.Windows.ActCtx");
actCtx.Manifest = "myregfree.manifest";
var obj =  actCtx.CreateObject("MyObj");   

وربما، إذا كان هذا يجب أن نعمل على XP كذلك، وهو المسار الذي قد يستغرق هو مزيج من كلا الحلول.

نصائح أخرى

تعديل: جهات الجواب هو خاطئ، ولكن سأترك هنا لتجنب أي إجابات خاطئة مشابهة:)


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

إذا كان لديك C، والمعرفة C ++، يتم الوصول إلى الطريقة التي COM من اللغات التالية سوف تعطيك بعض المؤشرات.

وآسف لأنني لا يمكن أن يكون من أي مزيد من المساعدة.

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