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

外接的键盘没有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等杀毒软件认为是不必要的开机启动文件,注意别误删就行。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值