You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现点击邮件链接启动用户设备上已安装的WPF应用?

实现WPF应用通过邮件链接自动启动的方案

完全可以实现,核心是给你的WPF应用注册自定义URL协议,让Windows系统识别并关联到你的应用。下面是具体实现步骤:

1. 注册自定义URL协议

你需要在Windows注册表中添加协议关联,告诉系统当点击特定格式的链接时启动你的应用。这一步可以通过安装程序(比如WiX、Inno Setup)完成,也可以在应用首次启动时自动写入注册表(需要管理员权限)。

举个注册表配置示例(假设自定义协议名为mywpfapp):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\mywpfapp]
@="URL:My WPF App Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\mywpfapp\shell]

[HKEY_CLASSES_ROOT\mywpfapp\shell\open]

[HKEY_CLASSES_ROOT\mywpfapp\shell\open\command]
@="\"C:\\绝对路径\\到你的\\WpfApp.exe\" \"%1\""

这段配置的作用是:当用户点击mywpfapp://xxx格式的链接时,系统会启动指定路径的WPF应用,并把完整链接作为参数传递给应用。

2. 在WPF应用中处理启动参数

应用启动时需要读取传入的URL链接,你可以在App.xaml.cs中重写OnStartup方法来处理:

protected override void OnStartup(StartupEventArgs e)
{
    base.OnStartup(e);
    
    // 检查是否有启动参数(即点击的链接)
    if (e.Args.Length > 0)
    {
        string clickedUrl = e.Args[0];
        // 这里可以解析链接中的参数,比如从mywpfapp://promotion?id=123中提取活动ID
        // 然后执行对应的业务逻辑,比如跳转到活动页面、加载专属内容等
    }
    
    // 正常启动主窗口
    MainWindow = new MainWindow();
    MainWindow.Show();
}

3. 邮件中使用自定义链接

在推广邮件里直接使用自定义协议的链接,比如:

点击参与活动:mywpfapp://summer-promotion?user=xxx

额外注意点

  • 权限问题:写入注册表需要管理员权限,建议通过安装程序配置,避免让用户手动操作。
  • 未安装应用的 fallback:如果用户没装你的应用,点击链接会弹出“无法打开”的提示,所以邮件里最好同时附上应用下载链接,引导用户安装。
  • 协议名称唯一性:自定义协议名要尽量独特,别和已有的协议(比如http、ftp)冲突,比如用你的应用英文名或品牌名。

内容的提问来源于stack exchange,提问作者May Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 10:12:34