自定义键盘快捷键调节电脑音量

news2024/11/15 4:52:17

外接的键盘没有Fn。。。也没有调音量的键😅于是想自己弄一个

方法一:修改注册表键盘映射

新建记事本文件打开,粘贴如下内容:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,20,E0,3b,00,2E,E0,3c,00,30,E0,3d,00,00,00,00,00

修改文件名后缀为.reg,双击运行会在注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout路径下新建Scancode Map,重启电脑后即可生效。

以上代码的内容为:F1静音或开启,F2降低音量,F3提高音量(注意生效之后原先和F1F2F3有关的其他快捷键就失效了)

 映射数目是4是因为还要加上用作结尾的00,00,00,00,以此类推如果要修改4个键那应该写05,00,00,00

之后的格式为:(映射之后的扫描码)XX,XX,(原扫描码)XX,XX,最后以00,00,00,00结束

其他键位的扫描码如下:

如果想取消该映射,将"Scancode Map"=hex:后的内容删除再运行,再重启即可。

也可以直接Win+R输入regedit打开注册表,打开对应路径,把Scancode Map删了再重启。

方法二:自定义快捷键

方法一相当于把键盘上的键直接改为映射后的键,所以如果原先有其他软件的快捷键为ctrl+F1之类的组合,也都会被覆盖。

如果不满足要求,可以像这样自定义快捷键:

#include <iostream>
#include <Windows.h>
using namespace std;
const int SLEEP_DURATION = 32;
bool pressing(int vKey) {
    return GetAsyncKeyState(vKey) >> 15;
}
void pressDown(int key) {
    if (key == 1) {
        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); // 鼠标左键按下 
    } else if (key == 2) {
        mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
    } else if (key == 4) {
        mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0);
    } else {
        keybd_event(key, 0, 0, 0);
    }
}
void pressUp(int key) {
    if (key == 1) {
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    } else if (key == 2) {
        mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
    } else if (key == 4) {
        mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0);
    } else {
        keybd_event(key, 0, 2, 0);
    }
}
void press(int key) {
    pressDown(key);
    Sleep(SLEEP_DURATION);
    pressUp(key);
}
int main() {
    while (1) {
        if (pressing(VK_MENU)) { // 按住ALT
            if (pressing(VK_DIVIDE)) { // 同时按住小键盘除号
                press(VK_VOLUME_MUTE); // 静音或开启
            } else if (pressing(VK_SUBTRACT)) { // 小键盘减号
                press(VK_VOLUME_DOWN); // 降低音量
            } else if (pressing(VK_ADD)) { // 小键盘加号
                press(VK_VOLUME_UP); // 提高音量
            }
        }
        Sleep(SLEEP_DURATION);
    }
    return 0;
}

运行后即可按ALT+小键盘除号静音或开启,ALT+小键盘减号降低音量,ALT+小键盘加号提高音量,然后编写脚本开机自启挂后台:

set obj = getobject("winmgmts:\\.\root\cimv2")
set v = obj.execquery("select ProcessID from win32_process where name='VK_VOLUME.exe'")
if v.Count > 0 then 
    for each i in v
        i.terminate()
    next
end if
dir = "D:\FileRecv\batFolder\"
CreateObject("wscript.shell").run dir + "VK_VOLUME.exe", 0

dir为编译后可执行文件的目录,文件命名为VK_VOLUME.exe,建议右键属性设为管理员运行,否则在游戏内可能不会生效。

把该脚本命名为XXX.vbs,放到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp路径下,即可开机自启。(第一次可以手动双击运行不用重启)

该脚本可能被360等杀毒软件认为是不必要的开机启动文件,注意别误删就行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/79091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Idea 调试自定义 AbstractProcessor 程序

我们常使用的 Lombok 可以自动生成 gettr 和 setter 方法,使用起来非常方便;有时候我们也要去实现自己的注解处理器,实现一些在编译阶段需要执行的逻辑,例如我之前写的 spring cloud 自动生成 openfeign 的Fallback 降级方法;自动生成 openfeign 的Fallback 但是自定义注…

JavaEE进阶:SpringBoot概念、创建和运⾏

文章目录一、Spring Boot 优点二、Spring Boot 项⽬创建1、使用 Idea 创建① 准备工作② 创建项目③ 注意事项2、网页版创建&#xff08;了解&#xff09;三、项目目录介绍和运行1、运行项目2、输出 Hello world四、注意事项&#xff1a;包路径错误1、正确路径2、小结&#xff…

第十四届蓝桥杯集训——JavaC组第九篇——三元运算符

第十四届蓝桥杯集训——JavaC组第九篇——三元运算符 一元运算符(一元运算符有1个操作数) &#xff0c;- -都是运算符&#xff0c;- -可分为前&#xff0c;后&#xff0b;和前-&#xff0c;后减如果在后面&#xff0c;如&#xff1a;num 10&#xff1b;先参与运算&#xff0c;然…

基于混合NSGA II-MOPSO算法的热电联合经济排放调度(Matlab代码实现)【混合多目标遗传算法-多目标粒子群算法】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f680;支持&#xff1a;&#x1f381;&#x1f381;&#x1f381;如果觉得博主的文章还不错或者您用得到的话&…

游戏开发43课 移动游戏性能优化1

1. 前言 很多年前就想将这些年工作中积累的优化经验撰写成文章&#xff0c;但懒癌缠身&#xff0c;迟迟未动手&#xff0c;近期总算潜下心写成文章。 涉及到具体优化技巧时&#xff0c;博主会尽量阐述原理和依据&#xff0c;让读者知其然也知其所以然。要完全读懂这篇文章&am…

尚医通MyBatis-Plus入门、添加、主键策略(二)

目录&#xff1a; &#xff08;1&#xff09;MyBatis-Plus入门案例 &#xff08;2&#xff09;MyBatis-Plus-添加和主键生成策略 &#xff08;1&#xff09;MyBatis-Plus入门案例 简介&#xff1a; MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&a…

c51单片机烧录程序 控制台显示正在检测目标单片机

问题 c51单片机烧录程序 控制台显示正在检测目标单片机 详细问题 笔者使用单片机型号STC89C52&#xff0c; 进行程序烧录。控制台显示正在检测目标单片机 解决方案 将单片机型号由STC89C52更改为STC89C52RC 即 原因 STC89C52与STC89C52RC属于不同型号&#xff0c;STC89C…

NoSQL数据库原理与应用综合项目——起始篇

NoSQL数据库原理与应用综合项目——起始篇 文章目录NoSQL数据库原理与应用综合项目——起始篇0、 写在前面1、项目说明1.1 项目背景1.2 项目功能2、数据集和数据预处理2.1 数据集2.2 数据预处理2.2.1 图书出版日期字段的处理2.2.2 添加id字段2.2.3 价格字段的处理2.2.4 打折字段…

chatgpt接入微信

背景 chatgpt是一个有趣的、聪明的AI机器人。很多人希望可以把这个机器人接入微信群聊里面。 介绍 本项目&#xff0c;使用python制作了一个微信群聊机器人。 微信群聊机器人群聊里面&#xff0c;被艾特后&#xff0c;会基于被艾特的内容&#xff0c;发送对应的文本。可以使…

CVE-2019-15107 webmin RCE漏洞复现

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是CVE-2019-15107 webadmin RCE漏洞复现。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xf…

【测绘程序设计】——椭球面弧长计算

椭球面弧长计算主要指——①根据纬度计算子午线弧长(B→X);②由子午线弧长求大地纬度(X→B)。它们主要用在高斯投影之中。本文分享了测绘程序设计——椭球面弧长计算(C#版与Python版),相关源代码(绝对完整,直接运行)及使用示例如下。 目录 Part.Ⅰ 使用示例Chap.Ⅰ …

redis基础

redis是一个基于内存的Key-Value数据库 1.基于内存存储&#xff0c;读写性能高 2.适合存储热点数据&#xff08;热点商品、咨询、新闻&#xff09; 3.NoSQL&#xff0c;不仅仅是SQL&#xff0c;泛指关系数据库 关系型数据库 Mysql Oracle DB2 SQLServer 非关系型数据…

参数化集成测试

我们在开发项目的过程中遇到了复杂的业务需求&#xff0c;测试同学没有办法帮我们覆盖每一个场景&#xff1b;或者是我们自己在做代码功能升级、技改&#xff0c;而不是业务需求的时候&#xff0c;可能没有测试资源帮我们做测试&#xff0c;那这个时候就需要依靠自己的单元测试…

数据结构之树相关概念的知识铺垫

文章目录前言1.树的相关介绍2. 树的表示3.二叉树概念及结构4.二叉树的性质5.二叉树相关概念练习6.总结前言 之前对数组结构中线性结构进行了相关的介绍&#xff0c;本文将开始对非线性结构进行相关的介绍&#xff0c;首先介绍的是树&#xff0c;会围绕树的相关概念进行初步的简…

记住这三个方法,让你的钱越花越多

小狗钱钱 关于作者 本书作者博多•舍费尔&#xff0c;是德国著名的投资 家、企业家、演说家以及畅销书作家。他 人生中曾出现过严重的财务危机&#xff0c;但他凭 着自己的努力&#xff0c;重新获得了财务自甶。这 段经历让他产生了和更多人分享理财知识 的想法&#xff0c;《…

玩以太坊链上项目的必备技能(类型-映射类型-Solidity之旅四)

映射&#xff08;Mapping&#xff09; 说到映射&#xff08;Mapping&#xff09;&#xff0c;有过其它编程语言经验的您&#xff0c;对这是再熟悉不过了。Solidity 中的映射&#xff08;Mapping&#xff09; 与Java的Map、Go里的Map以及javascript的JSON等众多编程语言中的Map…

考虑柔性负荷的综合能源系统低碳经济优化调度【考虑碳交易机制】(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

【大数据入门核心技术-ElasticSearch】(一)ElasticSearch介绍

目录 一、什么是Elasticsearch? 二、核心概念 1.倒排索引&#xff08;Inverted Index&#xff09; 2.节点 & 集群&#xff08;Node & Cluster&#xff09; 3.索引&#xff08;Index&#xff09; 4.文档&#xff08;Document&#xff09; 5.类型&#xff08;type…

游戏开发50课 性能优化8

4.2 渲染状态优化 4.2.1 状态缓存 在引擎侧&#xff0c;可以使用状态缓存减少渲染管线的切换。伪代码&#xff1a; class RenderStateCache { public:void InitRenderStates();{for (RenderStateType tRenderStateType.begin; t<RenderStateType.end; i){_renderStateCac…

[附源码]计算机毕业设计基于微信小程序的网络办公系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…