ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

告别Alt+Tab黑屏:无边框游戏工具Borderless Gaming完整使用指南

告别Alt+Tab黑屏:无边框游戏工具Borderless Gaming完整使用指南 告别AltTab黑屏无边框游戏工具Borderless Gaming完整使用指南【免费下载链接】Borderless-GamingPlay your favorite games in a borderless window; no more time consuming alt-tabs.项目地址: https://gitcode.com/gh_mirrors/bo/Borderless-GamingBorderless Gaming 是一款开源的 Windows 小工具专门把窗口模式的游戏改造成无边框窗口游戏看起来仍是全屏、没有标题栏但本质上还是一款普通窗口随时能切走、随时能切回来。它要解决的正是全屏游戏玩家最熟悉的那段黑屏——以及那段黑屏里发生的所有悲剧。我的角色死在两次黑屏之间想象一个很普通的晚上。你开着全屏游戏队友喊你查个攻略你按 AltTab屏幕黑了两秒后回到桌面查完再按一次又黑两秒游戏才重新亮起来。如果你玩的是需要实时操作的游戏这两秒足够让角色死一次。我最初以为这是全屏的代价——想沉浸就得忍受切换延迟。直到我翻到 Borderless Gaming 的源码才发现自己一直有个误区沉浸感和快速切换根本不需要二选一。游戏窗口完全可以看起来是全屏实际上是窗口这正是这个项目做的事情。它的描述只有一句话Play your favorite games in a borderless window; no more time consuming alt-tabs.——用无边框窗口玩你喜欢的游戏不再有耗时的 AltTab。窗口其实是一栋可以拆装修的房子要理解 Borderless Gaming 为什么能做到这件事先要理解一个 Windows 窗口的真实构造。每个普通窗口都像一栋房子标题栏是挂招牌的门脸边框是外墙系统菜单右上角的最小化、最大化、关闭按钮是门上的把手。Windows 为房子的每一部分都配了一个样式位——它是一串二进制标记用WS_CAPTION、WS_THICKFRAME、WS_SYSMENU这样的常量名存储。关键点在于这栋房子的主体也就是游戏渲染的画面区域和这些装修是分离的。所以只要把外墙和招牌拆掉、再把窗户拉到显示器边缘你就得到了一栋没墙的房子——画面还是那么多但整栋房子只占了屏幕的每一个像素。这就是全屏的视觉效果。Borderless Gaming 的核心代码在BorderlessGaming.Logic/Windows/Manipulation.cs它做的事简单得让人意外——读取窗口样式按位清除边框相关的标记再写回去// 读取窗口当前的标准样式和扩展样式 var style Native.GetWindowLong(hWnd, WindowLongIndex.Style); var exStyle Native.GetWindowLong(hWnd, WindowLongIndex.ExtendedStyle); // 把标题栏、粗边框、系统菜单这些装修全部去掉 style ~(WindowStyleFlags.Caption | WindowStyleFlags.ThickFrame | WindowStyleFlags.SystemMenu); // 扩展样式里跟边框有关的位也一并清掉 exStyle ~(WindowStyleFlags.ExtendedClientEdge | WindowStyleFlags.ExtendedWindowEdge); // 写回新样式窗口立刻拆装修 Native.SetWindowLong(hWnd, WindowLongIndex.Style, style); Native.SetWindowLong(hWnd, WindowLongIndex.ExtendedStyle, exStyle);这是简化版源码里清理的样式位更多但思路完全一致。更贴心的是Manipulation.RestoreWindow在动手前会把每个窗口的原始样式和原始位置存档所以恢复边框不是重新装修而是把存档原样贴回去。三分钟上手拆掉第一扇窗的边框从源码编译其实不难用 Visual Studio 打开BorderlessGaming.sln把配置切到 Release生成后到输出目录就能拿到可执行文件。当然最快的办法是直接下载官方发行版。启动后你会看到主窗口MainWindow左侧是当前带窗口的进程列表右侧是收藏列表。第一次使用走四步就够把游戏设成窗口模式启动让它出现在左侧列表里点选游戏进程点击Make Borderless按钮瞬间标题栏和边框消失窗口自动铺满屏幕想恢复原状点旁边的Restore按钮。如果你懒得每次打开主界面直接按Win F6——这是源码里写死的全局热键对当前活动窗口执行开/关无边框的切换。程序还会检查活动窗口是不是它自己避免你把工具本身也拆了边框。整个过程为什么这么快因为ProcessWatcher在后台每 3 秒枚举一次系统窗口Windows.cs里的EnumWindows把新出现的窗口实时推到列表里你几乎不需要手动刷新。让它记住你的游戏收藏的三种认人方式手动拆一次边框不难难的是每次启动游戏都拆一次。Borderless Gaming 的收藏Favorites功能就是为了解决这个重复劳动你只需把游戏加入收藏之后ProcessWatcher每轮扫描时都会自动把匹配的窗口变成无边框全程不用碰鼠标。认人的依据有三种正好覆盖不同的游戏启动方式匹配方式识别依据适合的场景进程名可执行文件名如game.exe每个游戏有独立 exe 的常规情况窗口标题窗口标题栏的文字多个启动器共用同一个 exe都是launcher.exe时正则表达式用正则匹配窗口标题标题每次都变如带版本号、服务器名的游戏匹配逻辑在BorderlessGaming.Logic/Models/Favorite.cs精简后就是这几行public bool Matches(ProcessDetails pd) { return Type FavoriteType.Process pd.BinaryName SearchText || Type FavoriteType.Title pd.WindowTitle SearchText || Type FavoriteType.Regex Regex.IsMatch(pd.WindowTitle, SearchText); }一个实用建议如果同一个 exe 会被多个游戏共用别用进程名收藏改用窗口标题或正则否则可能误伤。比如你收藏了client.exe的进程名某天另一个也靠client.exe启动的程序开了窗它也会被自动拆掉边框。从手动到全自动它能替你做的远不止拆边框收藏不只是记住一个游戏它还是一套完整的自动化规则。在收藏项上点右键你会发现一长串选项每个都对应一个真实存在的功能选项效果Full Screen窗口铺满整个屏幕默认行为Auto-Maximize进一步调用系统最大化Adjust Window Bounds微调四条边的偏移像素解决个别游戏画面溢出问题Always On Top游戏窗口始终置顶Delay Borderless延迟 10 秒再拆边框等游戏完全进入渲染循环Hide Windows Taskbar进入游戏时自动隐藏任务栏Hide Mouse Cursor用系统 API 换成透明光标隐藏鼠标Remove Menus移除窗口菜单栏Mute In Background切走时自动静音游戏切回来自动恢复声音Select Favorite Screen指定在哪个显示器上应用无边框其中后台静音的实现尤其聪明。ForegroundManager.cs里注册了一个系统事件钩子SetWinEventHook只要前台窗口一变化它就检查如果切走的是你的收藏游戏就调MuteProcess静音它切回来再UnMuteProcess恢复。这让边打游戏边看视频变成了现实——游戏在后台时安静得像没开一样。另外热键也不止 F6 一个。在选项里勾选后你能用上这三组功能热键说明无边框切换Win F6对当前活动窗口开/关无边框鼠标锁定Scroll Lock把鼠标圈在游戏窗口区域内防止甩出去鼠标隐藏Win Scroll Lock隐藏/恢复鼠标光标鼠标锁定用的是Cursor.Clip——把光标的可移动范围限制在窗口客户区矩形里玩射击类或 RTS 游戏时很实用视角不会再因为光标滑出边界而失控。当游戏不配合引擎延迟、慢速检测与几件需要注意的事不是所有游戏都乖乖配合。源码里有一段专门的白名单逻辑NeedsDelay会检查窗口的类名如果属于 Unreal 引擎类名包含 unreal或 GameMaker类名 YYGameMakerYY就先只调整位置、把样式修改延后 4 秒。这是因为这两类引擎在窗口创建早期会重写样式你刚拆完它又装回去了等它稳定下来再动手才能生效。收藏里的 Delay Borderless 选项也是同一思路只是把延迟交给用户自己控制。还有几件值得知道的事Remove Menus 是不可逆的。源码注释里写得很直白菜单一旦移除就很难加回来所以这个选项默认不勾选。别好奇手滑勾上除非你确定不需要那个游戏的菜单栏。隐藏任务栏后程序会拒绝退出。MainWindow_FormClosing里有个防呆逻辑只要它帮你隐藏了任务栏就不允许你退出程序防止任务栏不见了、程序也没了、鼠标还找不到的尴尬。正确做法是先恢复任务栏或者用全局热键把鼠标、任务栏都还原。隐藏鼠标后退出会自动恢复。程序退出时会强制把系统光标还原成正常指针避免你把鼠标弄丢在系统里。如果你的电脑配置比较老可以在选项里勾选 Use Slower Window Detection——把后台扫描从每 3 秒一次降到 10 秒一次CPU 占用更低。反过来如果某进程你不希望它出现在列表里右键选择 Hide This Process 即可它会被写进排除列表扫描时直接跳过。双屏玩家的福利SuperSize 与跨屏无边框在多显示器环境下Borderless Gaming 还有一手隐藏大招。右键进程或收藏项时如果系统检测到不止一块屏幕会出现一个子菜单让你选择把游戏无边框到哪块屏幕上——主屏、副屏都可以。更夸张的是菜单底部的SuperSize它会把所有屏幕的外接矩形合并成一个大矩形然后把窗口无边框地铺满整个矩形横跨全部显示器。这对赛车、飞行模拟或者多窗口协作场景是实实在在的便利三块屏幕拼成一整块超宽屏中间没有边框隔断。我自己用双屏测试过副屏放攻略、主屏无边框游戏切换的瞬间没有任何黑屏——因为游戏根本就没离开过桌面渲染。让它安静地在后台工作启动参数、托盘与多语言Borderless Gaming 考虑得很周到的一点是存在感越低越好。它支持两个启动参数--minimize启动即最小化到托盘和--silent静默启动不弹提示。在选项里勾选开机自启时AutoStart注册的正是--silent --minimize组合——意思是开机后它悄悄住在系统托盘里直到你的收藏游戏启动才出手你几乎感觉不到它的存在。托盘还有两个贴心设计最小化时显示气泡提醒可关闭勾选关闭到托盘后点关闭按钮也只是最小化而不是退出。国际化方面语言文件放在Languages/目录采用key|value的简单格式目前自带 12 种语言简体中文、繁体中文都在其中。想改成自己的语言包复制一份en-US.lang改内容、另存为对应区域名即可改完在Select Language菜单里切换。它改变的不是画质而是切换的手感回头再看那个死在黑屏里的角色你会发现 Borderless Gaming 解决的其实不是一个技术问题而是一个心态问题全屏模式给了你沉浸感却用黑屏惩罚你的每一次分心。而这个工具做的只是把全屏和窗口之间那道看不见的门拆掉——你在游戏和桌面之间走动的每一步都变得和切换浏览器标签一样自然。如果你也受够了 AltTab 的黑屏不妨拿一款常玩的窗口模式游戏试试运行工具选中进程按下 Win F6。你会发现沉浸和自由本来就不是对立的。想从源码开始折腾可以克隆这个仓库自己编译git clone https://gitcode.com/gh_mirrors/bo/Borderless-Gaming打开BorderlessGaming.sln构建 Release剩下的就交给你的下一局游戏了。【免费下载链接】Borderless-GamingPlay your favorite games in a borderless window; no more time consuming alt-tabs.项目地址: https://gitcode.com/gh_mirrors/bo/Borderless-Gaming创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表