Я использую 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"