在网页调起windows本地应用

2021-01-25  本文已影响0人  叶迎宪

主要参考
https://zhuanlan.zhihu.com/p/66145921

不过这个里面没有提及到,如何向本地应用传递参数。最简单的一种方式,就是把url通过命令行传递给应用程序。稍微改一下注册表文件

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ptl]
@="URL:ptl Protocol Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\ptl\shell]
[HKEY_CLASSES_ROOT\ptl\shell\open]
[HKEY_CLASSES_ROOT\ptl\shell\open\command]
@="E:\Projects\test\Debug\test.exe  \"%1\""

修改一下调用的网页

<body>
    <a href="ptl://123">tim</a>
</body>

写一个最简单的命令行程序test.exe作为测试

int main(int argc, char *argv[])
{
    printf("%d %s", argc, argc > 1 ? argv[1] : argv[0]);

    int i;
    scanf("%d", &i);
}

加入scanf一行是防止程序一下子退出了,看不到printf结果。运行结果为

2 ptl://123/

似乎系统总会在url的最后加上一个“/”。不过url传参方式,对参数的长度有限制,不能传太长。要传更多的参数,最好在exe程序起一个websocket的服务端,和网页进行websocket通信

上一篇 下一篇

猜你喜欢

热点阅读