OBS 基础 之 添加自己的热键、快捷键

57 篇文章 ¥39.90 ¥99.00
本文档详细介绍了如何在OBS中添加自定义快捷键和全局热键。通过QT库中的QShortcut和QAction实现简单快捷键,以及利用QAbstractNativeEventFilter实现全局热键,即使窗口失去焦点也能响应。文章还涵盖了注册、安装事件过滤器以及在退出时取消热键注册的流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OBS有自己的快捷键逻辑,但是相当复杂,如果想单纯的添加个快捷键实现自定义功能,可以通过自己添加快捷健的方式实现。

本篇章介绍 添加快捷健、热键方法。

自定义快捷键比较复杂,涉及到对话框资源添加、QKey  VKey 转换,自定义Edit等内容,如果想了解添加自定义的热键方法,则在OBS进阶专栏有介绍 ,OBS 进阶 之 可自定义的全局热键。自定义快捷键,就是怕快捷键与别的软件的快捷键冲突,所以可以随时切换快捷键组合。

目录

一、热键设置

1、简单的快捷键

1) 、按键消息中添加快捷键方法

2)、QT中提供的快捷健方法

2.1)、单纯的加快捷健的话,可以使用QShortcut

2.2)给QAction添加快捷健

2、全局热键

1)、QAbstractNativeEventFilter

2)、OBSAPP,继承 QAbstractNativeEventFilter

3)、全局热键事件处理

4)、注册快捷键

5)、封装优化后的 注册过程

5.1)、封装函数

5.2)、注册、安装事件过滤器

5.3)、退出时,取消热键注册


一、热键设置

1、简单的快捷键

### C# 使用 WebSocket 控制本地 OBS 快捷键的实现方法 要在 C# 中通过 WebSocket 实现对本地 OBS 快捷键的控制,可以借助 OBS 提供的 WebSocket API 插件(OBS Websocket Plugin)。以下是具体的技术细节: #### 1. 安装并配置 OBS WebSocket 插件 首先需要安装 OBS Studio 并启用其 WebSocket 插件。该插件允许外部应用程序通过 WebSocket 接口与 OBS 进行通信。确保在 OBS 设置中启用了 WebSocket 功能,并记录下设置的端口号和密码。 #### 2. 创建 C# WebSocket 客户端 C# 可以使用 `System.Net.WebSockets` 或第三方库如 `WebSocketSharp` 来创建 WebSocket 客户端连接。以下是一个简单的客户端示例代码片段[^2]: ```csharp using System; using System.Text; using System.Threading.Tasks; using WebSocketSharp; class Program { static void Main(string[] args) { using (var ws = new WebSocket("ws://localhost:4444")) // 替换为实际地址 { ws.OnMessage += (sender, e) => Console.WriteLine(e.Data); ws.Connect(); string jsonRequest = "{\"request-type\": \"SetCurrentScene\", \"scene-name\": \"YourSceneName\", \"message-id\": \"1\"}"; ws.Send(jsonRequest); // 发送请求切换场景 Task.Delay(5000).Wait(); // 延迟等待一段时间后再关闭连接 ws.Close(); } } } ``` 上述代码展示了如何建立一个基本的 WebSocket 链接并与 OBS 交互。注意替换 URL 和 JSON 请求内容以匹配具体的 OBS WebSocket API 调用需求。 #### 3. 构造 OBS WebSocket API 请求 OBS WebSocket 支持多种命令来操作直播软件的功能,比如更改场景、触发热键等。对于控制快捷键的操作,可使用 `TriggerHotkeyByName` 或者 `TriggerHotkeyBySequence` 方法[^3]。下面是一些常用的 JSON 格式的请求体例子: - **按名称触发热键** ```json { "request-type": "TriggerHotkeyByName", "hotkey-name": "obs.raw.toggle_mute", "message-id": "your_unique_id" } ``` - **通过按键序列触发热键** ```json { "request-type": "TriggerHotkeyBySequence", "sequence": [ {"type":"KEY_DOWN","name":"VK_CONTROL"}, {"type":"KEY_UP","name":"VK_CONTROL"} ], "message-id": "another_unique_id" } ``` 这些 JSON 数据包可以直接作为字符串形式传递给 WebSocket 的 Send 方法完成相应的功能调用。 #### 4. 处理安全认证 如果设置了密码保护,则每次发起新的会话前都需要先验证身份。可以通过向服务器发送如下格式的身份验证消息来进行授权[^4]: ```json { "op": 1, "d":{ "rpcVersion":1, "eventSubscriptions":0, "authenticationToken":"generated_token_value" } } ``` 其中 `"authenticationToken"` 应依据官方文档说明计算得出。 --- ### 总结 以上介绍了利用 C# 编程语言配合 WebSocket 技术去远程操控运行于同一台计算机上的 OBS 软件的方法。这不仅限于简单地模拟按下某个特定组合键的行为,还可以扩展至更多复杂的互动逻辑之中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水迎朝阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值