通过浏览器启动Qt应用
参考Registering the Application Handling the Custom URI Scheme。
通过浏览器启动,需要修改注册表。本项目通过生成临时的.bat文件,然后调用ShellExecuteA
(需要管理员权限)来修改注册表。
- 点击“设置handler”后会弹出权限确认,因为是通过修改windows注册表实现的功能,所以需要管理员权限。
- 然后就可以通过浏览器输入:“myscheme:自带任意参数”,来启动当前的Qt应用。
- 如果你是使用QtCreator运行本示例,应该会弹出找不到Qt*.dll的错误,这是正常的。因为直接运行.exe确实是找不到这些dll的。
// 注册handler。参考了MSDN的说明,但是其中displayName好像没起作用(感觉应该是浏览器弹出提示框显示的名称,但实际显示的还是exe文件名,在win11、chrome下)。
static Result setUriProtocolHandler(const QString &displayName, const QString &URIScheme);
// 取消handler。删除注册表。
static Result removeUriProtocolHandler(const QString &URIScheme);