كيفية بدء البرنامج النصي (VBS) مع WMI في رمز C #؟

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

  •  06-09-2019
  •  | 
  •  

سؤال

أحتاج إلى بدء تشغيل ملف نصي Visual Basic باستخدام WMI في رمز AC #.

أنا لا أفهم تماما ما هو الخطأ في هذه القطعة؟ ستكون النتيجة دائما 8 (فشل غير معروف). ولكن على سبيل المثال، يمكن بدء notepad.exe دون فشل.

        //Get the object on which the method will be invoked
        ManagementClass processClass = new ManagementClass("Win32_Process");

        //Create an array containing all arguments for the method
        object[] methodArgs = { "C:\\MyFolder\\Test.vbs arg1 arg2", null, null, 0 };

        //Execute the method
        object result = processClass.InvokeMethod("Create", methodArgs);
هل كانت مفيدة؟

المحلول

البرامج النصية ليست ملفات تنفيذية - يتم تشغيلها بواسطة Windows Script Host، لذلك تحتاج إلى تحديد المسار إلى Cscript.exe أو Wscript.exe قبل اسم البرنامج النصي:

object[] methodArgs = {   
                        Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cscript.exe") + @" C:\MyFolder\Test.vbs arg1 arg2",
                        null,
                        null,
                        0
                      };

نصائح أخرى

لا أعرف الكثير عن هذا النوع من الأشياء، لكن أعتقد أنك قد تحتاج إلى استدعاء مضيف البرنامج النصي وتمريره ملف VBS لتشغيله.

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