سؤال

أخطط لاستخدام SHELLEXECUTE لتحديث تطبيق مكتوب في دلفي 2007، كنت أتساءل عما إذا كان shellolexecute سيعمل على معظم أجهزة الكمبيوتر مع الفوز أو إذا كان يمكن أن يفشل بسهولة بسبب بعض إذن المستخدم أو شيء من هذا القبيل.

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

المحلول

من عند MSDN.

ملاحظات

نظرا لأن SHELEXECUTE يمكن تفويض التنفيذ إلى ملحقات شل (مصادر البيانات، ومعالجات قائمة السياق، تطبيقات الفعل) التي يتم تنشيطها باستخدام نموذج كائن المكونات (COM)، يجب تهيئة COM قبل استدعاء shelllexecute. تتطلب بعض ملحقات Shell Type Type Apartment (STA) COM (STA). في هذه الحالة، يجب تهيئة COM كما هو موضح هنا:

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)

وكما اقترح كين Lange Alread، فهو ما تريد تنفيذه، قد تحتاج إلى حقوق إدارية.

نصائح أخرى

أعتقد أن shelllexecute تتطلب المسؤول. أنت لم تذكر نظام التشغيل. إذا كان فيستا + ثم يأتي UAC للعب. يرى هذا التفسير

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