# FancyInput

FancyInput 图标

FancyInput 是一款面向 Windows 的游戏输入可视化叠层与输入宏工具。它可以在游戏画面上实时显示键盘、鼠标和手柄输入,也支持自定义叠层布局、虚拟手柄映射以及宏录制与回放。 ## 功能 - 实时可视化键盘、鼠标和手柄输入 - 支持 XInput、SDL3、RawInput 和 MouseKeyHook 输入后端 - 自定义叠层元素、位置、大小、透明度和布局 - 支持 PNG/GIF 图像资源与图像编辑 - 键盘到虚拟 Xbox 360 手柄的映射 - 输入宏录制、编辑和回放 - 支持命令、键盘、鼠标、延迟等宏动作 - 支持 Once、Hold、Toggle 等触发模式 - 宏项目可保存为 `.fipm` 文件并批量加载 - 系统托盘、内置 Cmd/PowerShell 终端和在线更新 ## 系统要求 - Windows 10 或更高版本 - .NET 8 Desktop Runtime(运行已发布版本时) - 使用虚拟手柄功能时,需要安装 ViGEmBus,并提供 ViGEm 客户端组件 - 使用 HidHide 隐藏真实手柄时,需要安装 HidHide,并以管理员身份运行程序 虚拟手柄和 HidHide 都是可选功能,不影响基本的输入叠层使用。 ## 构建 ### 开发环境 - Visual Studio 2022,安装“.NET 桌面开发”工作负载 - .NET 8 SDK - Windows 操作系统 ### 从源码构建 ```powershell dotnet restore FancyInput.sln dotnet build FancyInput.sln --configuration Release ``` 构建输出位于 `FancyInput/bin/Release/`。也可以使用 Visual Studio 打开 `FancyInput.sln`,选择 `Debug` 或 `Release` 配置后运行项目。 ## 使用说明 启动程序后,可以从主窗口进入以下功能: - **读取**:打开已有的叠层项目或配置文件 - **创建**:创建新的输入叠层布局 - **管理**:管理已有项目和布局 - **工坊**:创建、编辑、录制和运行输入宏 - **设置**:配置输入后端、运行权限和其他选项 使用全局输入监听、虚拟手柄或 HidHide 功能时,请确认程序拥有必要的 Windows 权限。请勿在不清楚宏动作含义的情况下运行来自他人的宏文件或命令。 ## 项目结构 ```text FancyInput/ ├── Common/ 通用工具、枚举和行为 ├── Models/ 输入处理、宏、叠层和设备管理 ├── ViewModels/ MVVM 视图模型 ├── Views/ WPF 窗口、页面和控件 └── Resources/ 图标、二维码和样式资源 ``` ## 第三方组件 项目使用了多个第三方组件,包括: - Hardcodet.NotifyIcon.Wpf - MouseKeyHook - SDL3-CS / SDL3-CS.Native - SharpDX.XInput - WpfAnimatedGif 第三方组件的版权和许可归各自作者所有。使用或重新发布包含这些组件的程序时,请同时遵守其各自许可证。相关项目地址如下: - [Hardcodet.NotifyIcon.Wpf](https://github.com/hardcodet/wpf-notifyicon) - [MouseKeyHook](https://github.com/gmamaladze/globalmousekeyhook) - [SDL3-CS](https://github.com/edwardgushchin/SDL3-CS) - [SharpDX](https://github.com/sharpdx/SharpDX) - [WpfAnimatedGif](https://github.com/XamlAnimatedGif/WpfAnimatedGif) ## 许可证 FancyInput 仓库中的源代码采用 [MIT License](LICENSE) 授权。该许可证允许使用、复制、修改和分发源代码,但必须保留版权声明和许可证文本。 官方编译版如附带单独的终端用户协议,则以该发行版随附的协议为准;第三方组件不受 FancyInput 的源代码许可证替代。 ## 联系方式 - 作者:XLworkspace - 邮箱:contact@xlworkspace.com - 微信公众号:星览工作站(微信号:XLWorkspace)