媒体键修复 SKSE 封面

媒体键修复 SKSE

上古卷轴5:天际特别版Bug修复

通过移除游戏对键盘的独占访问来修复媒体键(音量、播放/下一曲/静音、Windows 键、Alt+F4 等...)。有一个选项可修复死键 bug,并启用 Windows 键。

前置 Mod

详情

媒体键修复

问题

Skyrim 启动时会对键盘和鼠标进行独占访问,导致媒体键、Windows 键或任何其他不由 DirectInput 处理的按键都被忽略。这让用户的生活更麻烦,要调节音量就需要 ALT+TAB 或使用覆盖层。

解决方案

此 mod 修改 DirectInput 标志,使游戏不再以独占访问启动。但这会带来另一个问题:死键(用于变音符号)会被忽略,因此一些使用带重音符号键盘布局(例如 US-international)的用户无法在控制台中输入单引号或双引号。此 mod 也修复了这个副作用,但必须在 .INI 中启用该选项(DisableDeadKeys)。有关 DirectInput 独占/非独占访问的更多详细信息,请见此处。

游戏在后台时不会接收按键(每个游戏都应该如此),并且在前台获得焦点时也会正常工作。

需求

Skyrim Script Extender (SKSE)

Address Library for SKSE Plugins

配置

MediaKeysFix.ini 有以下选项:

--

[General]
;; Disable Windows key. Set to true to disable windows key.
DisableWindowsKey = true

;; Disable dead keys. When Skyrim doesn't have exclusive access to keyboard, dead keys stops working.
;;   Users with keyboards layout like US-International or any other that uses dead keys may experience
;;   difficulties to type characters like quotes in console. A way to fix this is effectively disable
;;   dead keys in game.
;; Set to true to disable dead keys.
DisableDeadKeys = false

;; Allow background access. STRONGLY RECOMMENDED TO BE SET = false, only useful for DEBUGGING.
;;   If background access is granted, the device can be acquired at any time,
;;   even when the associated window is not the active window.
;;   The game will receive input even if not active window!!
;; Set to true to allow background (replaces DISCL_FOREGROUND with DISCL_BACKGROUND)
BackgroundAccess = false

--

以上为默认值。如果你想让 Windows 键正常工作,请将选项 "DisableWindowsKey " 设为 false。如果你遇到死键问题,例如在 US-international 键盘中输入引号,请将选项 "DisableDeadKeys" 设为 true,这会让游戏不再忽略通常用于变音符号的按键。如果你希望游戏按预期运行,请不要使用 "BackgroundAccess",它仅用于调试。

一些用户报告说,当配置为 DisableWindowsKey=false 时,此 mod 修复了与 Alt+Shift(用于 Windows 语言切换)相关的问题。

兼容性

兼容 1.5.97、1.6.1170、1.6.1179 和 1.7.104。

行为

无论是否启用后台访问,此 mod 都会始终让 Skyrim 以 DISCL_NONEXCLUSIVE 运行。默认是 FOREGROUND,这意味着游戏在前台时会接收键盘输入。DisableDeadKeys 选项用于修复一个 bug,如果你使用带死键的键盘,也许你会想启用该选项。

按此 mod 的原本用途使用(禁用 BackgroundAccess),游戏会继续完全忽略 Windows 的鼠标配置(来自设置/控制面板)。

鼠标应该没有问题,游戏始终将鼠标设备设置为 DISCL_FOREGROUND 和 DISCL_EXCLUSIVE。此 mod 只更改键盘的 dwFlags。

源代码

https://github.com/epinter/MediaKeysFix

鸣谢

Bethesda 制作了这款游戏。

SKSE 团队制作了 Skyrim Script Extender。

CommonLibSSE-NG 作者制作了该库。

所有开源自己作品的开发者,我从阅读其他 mod 的代码中学到了很多。

meh321 制作了 Address Library。