Skip to content

hanjianqiao/qt-uri-scheme-handler

Repository files navigation

qt-uri-scheme-handler

通过浏览器启动Qt应用

实现原理(Windows)

参考Registering the Application Handling the Custom URI Scheme。 通过浏览器启动,需要修改注册表。本项目通过生成临时的.bat文件,然后调用ShellExecuteA(需要管理员权限)来修改注册表。

自带示例程序

image

  • 点击“设置handler”后会弹出权限确认,因为是通过修改windows注册表实现的功能,所以需要管理员权限。
  • 然后就可以通过浏览器输入:“myscheme:自带任意参数”,来启动当前的Qt应用。

image

  • 如果你是使用QtCreator运行本示例,应该会弹出找不到Qt*.dll的错误,这是正常的。因为直接运行.exe确实是找不到这些dll的。

image

API说明

// 注册handler。参考了MSDN的说明,但是其中displayName好像没起作用(感觉应该是浏览器弹出提示框显示的名称,但实际显示的还是exe文件名,在win11、chrome下)。
static Result setUriProtocolHandler(const QString &displayName, const QString &URIScheme);

// 取消handler。删除注册表。
static Result removeUriProtocolHandler(const QString &URIScheme);

About

通过浏览器地址(URI Scheme)启动Qt应用

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published