我在Windows中注册了一个自定义URL处理程序,以便能够从URL启动本地程序。在MSND文档之后,我在注册表中插入了以下值:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\TestLaunch]
@="URL:TestLaunch Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\TestLaunch\DefaultIcon]
@="\"c:\\temp\\test.bat\""

[HKEY_CLASSES_ROOT\TestLaunch\shell]

[HKEY_CLASSES_ROOT\TestLaunch\shell\open]

[HKEY_CLASSES_ROOT\TestLaunch\shell\open\command]
@="\"c:\\temp\\test.bat\" %1"

这可行,但是当我单击TestLaunch:链接并启动批处理文件时,我可以看到控制台窗口出现。由于批处理文件的作用只是解析参数url并启动另一个应用程序,因此我希望控制台不会出现(或至少已最小化),即使只是一秒钟的时间也是如此。

我唯一想到的是创建一个指向批处理文件(test.bat.lnk)的链接,并将其设置为最小化启动,但这是行不通的。
还有其他想法吗?我愿意使用批处理文件的替代方法,但我想坚持使用Windows提供的功能

最佳答案

您可以使用VBS吗?

@="\"WSCRIPT c:\\temp\\test.vbs\" %1"

使用
if wscript.arguments.length > 0 then
     wscript.createobject( "WScript.Shell" ).run("app.exe " & wscript.arguments(0))
end if

10-01 21:59