Вместо этого вы можете использовать метод ShellExecute объекта Windows Shell и использовать операцию runas
.
Set Shell = CreateObject("Shell.Application")
Shell.ShellExecute "Start.bat", , , "runas", 0
Это запросит высоту и запустит Start.bat
.
Аргументы ShellExecute (взяты и обобщены на странице ShellExecute в MSDN):
- sFile [in] - Строка имени файла для выполнения операции
- vArguments [in, необязательно] - строка аргументов (аргументы командной строки)
- vDirectory [in, необязательный] - полный путь к каталогу, содержащему файл, указанный в sFile. Если этот параметр не указан, используется текущий рабочий каталог.
- vOperation [in, необязательный] - операция, которая должна быть выполнена. Если этот параметр не указан, выполняется операция по умолчанию.
- vShow [in, необязательно] - рекомендация по отображению начального окна. 0 для скрытого.
Если вам абсолютно необходимо использовать cmd /c
для запуска командного файла, вам необходимо указать полный путь к нему. Вызов будет выглядеть примерно так:
Set Shell = CreateObject("Shell.Application")
Shell.ShellExecute "cmd", "/c F:\ull\path\to\Start.bat", , "runas", 0