为什么参数传递错误的注册表Windows

时间:2017-11-14 09:04:35

标签: windows registry

我在注册表Windows中注册了协议

REGEDIT4

[HKEY_CLASSES_ROOT\vnc]
@="URL:VNC Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\vnc\shell]

[HKEY_CLASSES_ROOT\vnc\shell\open]

[HKEY_CLASSES_ROOT\vnc\shell\open\command]
@="\"C:\\Program Files\\RealVNC\\VNC Viewer\\vncviewer.exe" "%1"

然后。我试着跑

enter image description here

但是程序运行不正确

enter image description here

而不是地址,它添加了单词vnc。我该如何删除这个单词?

2 个答案:

答案 0 :(得分:1)

它不起作用的原因是因为VNCViewer不理解“vnc:192.168.4.107”作为有效参数。

您需要创建一个自定义处理程序,删除vnc:并将其余字符串传递给可执行文件。

值得庆幸的是,UltraVNC论坛上有人already did this

ECHO OFF
SET S=%1
SET S=###%S%###
SET S=%S:"###=%
SET S=%S:###"=%
SET S=%S:###=%
SET S=%S:vnc:=%
start "VNCViewer" "C:\Program Files\UltraVNC\vncviewer.exe" -connect %S%

答案 1 :(得分:0)

2020年,UltraVNC论坛上的某人提供了无需附加批处理文件即可运行的解决方案: https://forum.ultravnc.net/viewtopic.php?f=3&t=29030#p107566

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\vnc]
@="URL:VNC Protocol"
"URL Protocol"="http://www.uvnc.com/"

[HKEY_CLASSES_ROOT\vnc\DefaultIcon]

[HKEY_CLASSES_ROOT\vnc\shell]

[HKEY_CLASSES_ROOT\vnc\shell\open]

[HKEY_CLASSES_ROOT\vnc\shell\open\command]
@="cmd.exe /V /C \"set URL=%1& start \"\" \"C:\\Program Files\\uvnc bvba\\UltraVNC\\vncviewer.exe\" !URL:*://=!\""