Существует great answer providing a batch file, что все-таки сделает лучше всего работать с повышенным уровнем и не будет поднимать, если он уже поднят.Как начать java-программу (из .jar) приподнято только с помощью VBScript
Я не хочу распространять пакетный файл с моей программой. Весь ядро ответа таково: VBSScript:
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "[path to the batch file which will run elevated]", "ELEV", "", "runas", 1
Довольно простой. Поэтому вместо пути к пакетному файлу я хочу использовать путь к файлу jar. Но это не похоже на работу:
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "AutoClient.jar", "ELEV", "", "runas", 1
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "javaw -jar AutoClient.jar", "ELEV", "", "runas", 1
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "javaw", "ELEV", "-jar AutoClient.jar", "runas", 1
Так хорошо, как я могу запустить баночку из файла VBS ? Оба файла имеют один и тот же каталог. Необходимо, чтобы рабочий каталог java-приложения был , который находится в каталоге.
Edit: Так что спасибо @MCND (и this) теперь я знаю, что аргументы в следующей последовательности:
path to executable to run
command line parameters sent to the program
working directory of the new process
'runas' command which invokes elevation
0 means do not show the window, 1 to show the window
И благодаря его коду:
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "javaw.exe", "-jar AutoClient.jar", "", "runas", 1
Я могу добавить другая ошибка в моей коллекции:
Я не использую Java, но вы не указываете полные пути. Вы не можете ожидать, что все будет работать надежно. Кроме того, что бы вы ни запускали, вам нужно будет щелкнуть правой кнопкой мыши меню «Запуск от имени администратора», потому что код VBS запускает эту команду меню, как если бы вы ее нажали. Если его там нет, вы не можете его щелкнуть. EXE есть. Поэтому укажите правильные пути как к Javaw, так и к файлу jar. – Trigger
Путь @Trigger к 'javaw.exe' зависит от системы. –
Точно. Поэтому вам нужно что-то сделать. См. Фильтр для пакетного файла, где я могу найти себя (https://skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121). Но главная проблема - файл jar, вы ** надеетесь, что он находится в текущем каталоге. – Trigger