Windows7 如何用vbs脚本让explorer打开一个文件
Windows 7 how to make explorer open a file with a vbs script
我 运行在 windows 7 上使用 openjdk,没有管理员权限
我通过资源管理器 "open-with" 对话 select java 作为 "open" .jar 文件的程序。
通过(双击)单击 运行 .jar 文件,windows 执行类似
的操作
java (filename).jar
但是,java 需要参数 -jar,即:
java -jar (filename).jar
要进行此设置,用户需要管理员权限才能使用 assoc 和 ftype,
或按照以下答案中的说明实施寄存器编辑。
另一种解决方法是使用批处理文件,例如javastart.bat:
列表javastart.jar
start java -jar %1
通过资源管理器 "open with" 对话后,这有效。
单击 jar 文件将打开命令 window,这将启动 java。
但是java在运行ning的同时,命令-window也打开了,很丑
编辑
javaw.exe必须调用,命令-windows会关闭:
start javaw.exe -jar %1
关闭命令不需要以下脚本window
编辑结束
为了解决这个问题,我启动了一个 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 的命令 window 的短暂闪烁,然后 windowless vbs 脚本启动 java 和 jar 文件。
然而,当我直接用startjar.vbs打开jar文件时(右击jar文件,而不是通过对话框打开),jar文件的名称没有作为参数传递给vbs,但 windows 尝试直接 运行 jar 文件(并给出错误:"the .jar file is not a valid win32-application")。
为什么 windows 资源管理器不将文件名作为参数发送给 vbs 脚本?
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"=""
我 运行在 windows 7 上使用 openjdk,没有管理员权限
我通过资源管理器 "open-with" 对话 select java 作为 "open" .jar 文件的程序。 通过(双击)单击 运行 .jar 文件,windows 执行类似
的操作java (filename).jar
但是,java 需要参数 -jar,即:
java -jar (filename).jar
要进行此设置,用户需要管理员权限才能使用 assoc 和 ftype,
或按照以下答案中的说明实施寄存器编辑。
另一种解决方法是使用批处理文件,例如javastart.bat:
列表javastart.jar
start java -jar %1
通过资源管理器 "open with" 对话后,这有效。 单击 jar 文件将打开命令 window,这将启动 java。
但是java在运行ning的同时,命令-window也打开了,很丑
编辑
javaw.exe必须调用,命令-windows会关闭:
start javaw.exe -jar %1
关闭命令不需要以下脚本window
编辑结束
为了解决这个问题,我启动了一个 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 的命令 window 的短暂闪烁,然后 windowless vbs 脚本启动 java 和 jar 文件。
然而,当我直接用startjar.vbs打开jar文件时(右击jar文件,而不是通过对话框打开),jar文件的名称没有作为参数传递给vbs,但 windows 尝试直接 运行 jar 文件(并给出错误:"the .jar file is not a valid win32-application")。
为什么 windows 资源管理器不将文件名作为参数发送给 vbs 脚本?
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"=""