Windows 7 как сделать так, чтобы проводник открывал файл с помощью скрипта VBS - PullRequest
0 голосов
/ 02 декабря 2018

Я запускаю openjdk в Windows 7 без прав администратора

Я прошел через диалоговое окно проводника «open-with», чтобы выбрать java в качестве программы для «открытия» файла .jar.Для запуска файла .jar (двойным щелчком) Windows выполняет что-то вроде

java (имя файла) .jar

Однако для java необходим аргумент -jar, т.е.:

java -jar (имя файла) .jar

Для настройки этого пользователя необходимы права администратора для использования ассоциаций и ftype,

или реализациирегистр редактируется, как объяснено в ответе ниже.

Другой обходной путь - использование пакетного файла, например, javastart.bat:

Листинг javastart.jar

start java -jar %1

ПослеПроходя через проводник «открыть с» диалог, это работает.Щелчок по файлу jar откроет командное окно, и это запустит java.

Однако во время работы java командное окно также открыто, что ужасно.

Edit

Должен быть вызван javaw.exe, и окна команд закроются:

start javaw.exe -jar %1

следующий скрипт не нужен для закрытия окна команд

Конец редактирования

Чтобы решить эту проблему, я запускаю скрипт vbs.

Новый список javastart.jar

start startjar.vbs %1

И startjar.vbs:

Set args = Wscript.Arguments
cmd = "java -jar " & chr(34) & args(0) & chr(34)
Set WshShell = CreateObject("WScript.Shell")
CreateObject("Wscript.Shell").Run cmd, 0, True

Это работает: теперь я получаю короткую вспышку командного окна, запускающего vbs, а затем vbs-скрипт без окон запускает java и jar-файл.

Однако, когдаЯ напрямую открываю файл jar с помощью startjar.vbs (щелкните файл jar правой кнопкой мыши, затем перейдите в диалог открытия с помощью), имя файла jar не передается в качестве аргумента vbs, но Windows пытается запустить jarфайл (и выдает ошибку: «файл .jar не является допустимым приложением win32»)).

Почему проводник Windows не отправляет имя файла в качестве аргумента сценарию vbs?

1 Ответ

0 голосов
/ 02 декабря 2018

Настройки в HKCR происходят из HKCU \ Software \ Classes и HKLM \ Software \ Classes.Вы, безусловно, можете редактировать настройки HKCU, так как они ваши.Если они существуют, они переопределяют точно такие же настройки HKLM.Под HKCR вы увидите объединенное представление обоих с CU, переопределяющим любые настройки LM.

Это началось как настройки блокнота. Исправьте путь к файлу javaw.exe. .

. Файлы jar теперь находятся в Новом меню, их поиск выполняется с помощью поиска Windows, обрабатывается как текстовые файлы, поэтому редактируйте меню правой кнопкой мыши, но открывайте какфайл программы.

Если вы не являетесь администратором, используйте команду reg для объединения ( после исправления пути ).Если вы администратор, дважды щелкните по нему.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\jarfile]
@="Java Program File"

[HKEY_CURRENT_USER\SOFTWARE\Classes\jarfile\shell]

[HKEY_CURRENT_USER\SOFTWARE\Classes\jarfile\shell\open]

[HKEY_CURRENT_USER\SOFTWARE\Classes\jarfile\shell\open\command]
@="C:\\Folder\\javaw.exe -jar \"%1\""

[HKEY_CURRENT_USER\SOFTWARE\Classes\.jar]
@="jarfile"
"Content Type"="text/plain"
"PerceivedType"="text"

[HKEY_CURRENT_USER\SOFTWARE\Classes\.jar\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"

[HKEY_CURRENT_USER\SOFTWARE\Classes\.jar\ShellNew]
"ItemName"=hex(2):6a,00,61,00,72,00,66,00,69,00,6c,00,65,00,00,00
"NullFile"=""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...