تثبيت درع 2009 قضية رئيس الوزراء إجراء مخصص في فيستا هوم / بريميوم / نهاية المطاف

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

  •  22-08-2019
  •  | 
  •  

سؤال

والبيئة: تثبيت درع 2009 رئيس مجلس الوزراء ويندوز فيستا (الصفحة الرئيسية / بريميوم، في نهاية المطاف)

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

وهذا إكس تنفيذ ما يرام بشكل فردي في ذلك نظام التشغيل. ولكن عندما MyApplication.msi تريد تشغيله، فإنه يظهر استثناء.

وأعتقد: MyApplication.msi لا يمكن إعطاء هذا الإجراء المخصص (ملف. exe) الامتياز المناسب (الإداري) لتشغيل مع. ولكن يمكن SETUP.EXE.

وكيف يمكن أن يتم حلها ...؟


ومن المعالج إجراء مخصص لإجراء مخصص لي، ل "داخل تنفيذ البرنامج النصي" قيمة اخترت "تنفيذ المؤجلة في سياق النظام"

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

المحلول

وأنت لم الدولة، ولكن هذا يبدو وكأنه SETUP.EXE لديه واضح يتطلب امتيازات إدارية (إذا كنت تحصل على موجه UAC عند إطلاق SETUP.EXE، وهذا هو الحال). هذا يبدو أيضا المرجح أن إكس تحاول تشغيلها من الإجراء المخصص لديه شرط مماثل امتيازات إدارية. دعوى إكس مخصصة في MSI يستخدم CreateProcess التي لا يمكن أن ترفع.

إذا يدير العمل الخاص بك في تسلسل UI، تحتاج إلى استخدام ShellExecute أو ShellExecuteEx بطريقة أو بأخرى - وهذا يمكن القيام به مع إجراء مخصص InstallScript باستخدام LaunchApplication مع LAAW_OPTION_USE_SHELLEXECUTE العلم، أو مع C ++ التي تدعو ShellExecuteEx مباشرة

إذا يدير العمل الخاص بك في تنفيذ تسلسل، يجب وضع علامة عليه "المؤجلة في سياق النظام" حتى يتم إطلاقه من سياق ارتفاع لتبدأ. ويفضل هذا عموما (على الأقل من حيث تجربة المستخدم) كما أنه يتجنب UAC إضافي يدفع بأن طريقة أخرى سوف تظهر. لكن أي إجراء مؤجل له حدود (مثل الوصول إلى الحد الأدنى من الملكية) قد تحتاج للتآلف مع.

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