Я использую SystemUtil.Run String, но он дает мне "Недопустимый вызов процедуры или аргумент"

Я использую следующий код для запуска установочного файла с диска c: drive. Но он выдает ошибку "Недопустимый вызов процедуры или аргумент". Я попытался "eval", чтобы упорядочить строку, но это не сработало.

dim BookName
dim Tmonth
dim Trimyear
    BookName="Name of a book"
       Tmonth="02"
       Trimyear="15"
       Installfile = "Install " &BookName&" ("&Tmonth&"-"&Trimyear&").msi"
       SystemUtil.Run Installfile,"","C:\TitleInstall"

3 ответа

Эй, спасибо за интерес. Я проверил это с жестко закодированными значениями, это работало отлично. Проблема появляется только тогда, когда значение изменяется динамически. Пожалуйста, проверьте это с любым приложением в вашей системе и попробуйте назначить значение динамически.

myInstallerPath= "Inataller - Copy.msi"
SystemUtil.Run myInstallerPath , "\q" , "C:\InstallerDir"

Вышеописанное сработало для меня, пожалуйста, обратите внимание, что "\q" - это установка приложения без взаимодействия с пользователем и не имеет каких-либо конкретных последствий. SystemUtil.Run - это в основном ваше командное окно. Запустите окно CMD и введите путь к файлу, который вы пытаетесь выполнить, чтобы убедиться, что он действителен. (Вы можете указать путь к файлу в двойных кавычках)

Другой вариант - сразу указать путь к установщику.

myInstallerPath= "C:\InstallerDir\Inataller - Copy.msi"
SystemUtil.Run myInstallerPath , "\q" 

Если он работает для жестко закодированных значений, он будет работать и для динамических значений. Просто убедитесь, что динамическое значение, которое вы генерируете в переменной Installfile, с тем же именем файла присутствует в вашей папке "C:\TitleInstall"

В соответствии с приведенным выше кодом должен быть файл с именем "Установить имя книги (02-15).msi". Есть ли какой-нибудь файл с таким именем в вашей папке?

Просто поместите эту переменную Installfile в msgbox чуть выше SystemUtil.Run и убедитесь, что имя файла из msgbox присутствует в вашей папке или нет.

Также попробуйте удалить параметр пустой строки из вашей команды запуска (если вы на самом деле не хотите передавать пустую строку в качестве параметра), т.е.

+ Изменить SystemUtil.Run Installfile,"","C:\TitleInstall"

в SystemUtil.Run Installfile,,"C:\TitleInstall"

Другие вопросы по тегам