如何制作运行时启动自定义Discord Rich Presence的Visual Studio Form
实现WinForm应用集成Discord Rich Presence 操作步骤
1. 前置准备工作
- 前往Discord开发者平台创建新应用,记录下你的应用ID,后续对接需要用到。你可以在应用的Rich Presence板块提前上传要展示的大小图标、配置预制的状态展示内容。
- 通过Visual Studio的NuGet包管理器安装
DiscordRichPresence封装库,无需自行开发底层Discord对接逻辑。
2. 核心代码实现
初始化RPC逻辑
你可以选择在主窗体的Load事件,或者Program.cs的程序入口处添加初始化逻辑,程序启动就会自动加载Rich Presence:
// 首先引入命名空间 using DiscordRichPresence; // 声明全局RPC客户端对象,建议放在窗体类或者Program类中 private DiscordRpcClient rpcClient; // 初始化方法 private void InitDiscordRPC() { // 替换参数为你之前记录的Discord应用ID rpcClient = new DiscordRpcClient("你的Discord应用ID"); rpcClient.Initialize(); // 配置要展示的Rich Presence内容 rpcClient.SetPresence(new RichPresence() { Details = "正在使用核心功能", // 状态第一行文案 State = "应用运行中", // 状态第二行文案 Assets = new Assets() { LargeImageKey = "你上传的大图键名", // 替换为Discord后台配置的大图key LargeImageText = "我的自定义WinForm应用", // 鼠标悬停大图的提示文字 SmallImageKey = "你上传的小图键名" // 可选,不需要可以删除该字段 } }); }
资源释放逻辑
在主窗体的FormClosing事件中添加资源释放代码,避免程序退出后残留进程:
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { if (rpcClient != null) { rpcClient.Dispose(); } }
3. 自启动配置
- 如果需要应用启动时自动加载Rich Presence,直接把
InitDiscordRPC()方法调用放在Program.cs的Main方法中,紧接在Application.Run(new 你的主窗体类());之前即可。 - 如果需要实现系统开机时自动启动你的WinForm应用,可以通过操作注册表实现,代码示例:
// 注册表操作,可放在设置页的自启动勾选逻辑中 RegistryKey runKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); // 开启开机自启 runKey.SetValue("你的应用名称", Application.ExecutablePath); // 关闭开机自启 // runKey.DeleteValue("你的应用名称", false);
注意事项
- 只有用户本地运行了Discord客户端时,Rich Presence才会正常展示,库本身对Discord未启动的场景做了兼容,不会抛出异常。
- 如果需要动态更新状态内容,在需要更新的逻辑节点重新调用
rpcClient.SetPresence()传入新的配置即可。 - 填写的图片键名必须和Discord开发者后台上传时设置的key完全一致,否则图片无法正常展示。
内容的提问来源于stack exchange,提问作者Professor Puddle
相关产品推荐
相关产品推荐

