我做了一个程序,我想用一些协议启动例如:proto 从浏览器调用类似proto:// 122122。Autoit注册一个协议和执行程序
当用户点击链接时,它会打开我的程序,并将它作为某个变量或某物发送给它。
我对C基本知识++但在这个主题上没有的知识 感谢
我做了一个程序,我想用一些协议启动例如:proto 从浏览器调用类似proto:// 122122。Autoit注册一个协议和执行程序
当用户点击链接时,它会打开我的程序,并将它作为某个变量或某物发送给它。
我对C基本知识++但在这个主题上没有的知识 感谢
您需要将协议添加到注册表中,HKEY_CLASSES_ROOT
。
特别是你需要创建以下注册表项:
[HKCR\proto]
@="URL:My Protocol"
"Url Protocol"=""
[HKCR\proto\shell\open\command]
@="Path\To\My\Program.exe '%1'"
然后打开proto://122122
将执行Program.exe
,并且数字将在$CmdLine[1]
可用(假设你使用的AutoIt,因为你标记它这样的,但根本不要提及它)。
编辑:
以编程方式做以上的AutoIt,你需要查看注册表的功能,特别是RegWrite。上述懒,给了一个.reg
文件一样的答案,但在AutoIt的它看起来是这样的:
Local $sProtoName = "proto"
RegWrite("HKCR\" & $sProtoName)
RegWrite("HKCR\" & $sProtoName, "", "REG_SZ", "URL:My Protocol")
RegWrite("HKCR\" & $sProtoName, "Url Protocol", "REG_SZ", "")
RegWrite("HKCR\" & $sProtoName & "\shell\open\command")
RegWrite("HKCR\" & $sProtoName & "\shell\open\command", "", "REG_SZ", "Path\To\My\Program.exe '%1'")
正如所有的东西注册表,不这样做,如果你不知道自己在做什么。修改HKCR是相对安全的。最糟糕的情况是你会覆盖一些其他的协议,这是一个可以撤消的痛苦,但我仍然建议先做一些阅读。 Google和往常一样是你最好的朋友,但像this one这样的小朋友可能是个好主意。
要删除上面的代码,只需删除整个“HKCR \ proto”键即可。
哦,对不起,我忘了输入,因为我用我的手机创建。我在哪里添加?我的意思是注册在哪里对不起,我没有任何这方面的知识。 xk – kritya 2012-04-02 17:32:09
@kritya,它并不重要,因为同样的原则适用于任何其他语言。我可以写'argv [1]',它会是一样的。 – Matt 2012-04-02 17:35:28
你没让我说得对。我的意思是我如何将我的协议添加到HKEY_CLASSES_ROOT? – kritya 2012-04-03 09:39:26