用脚本控制键盘大写锁定灯

wen 实用脚本 1

本文目录导读:

用脚本控制键盘大写锁定灯

  1. Windows (PowerShell)
  2. Windows (VBScript)
  3. Linux (使用 xdotool)
  4. Python (跨平台)
  5. C# (Windows)
  6. 检查当前状态 (Python)
  7. 简易批处理文件 (Windows)
  8. 使用建议

我来帮你创建控制键盘大写锁定(Caps Lock)灯的脚本,这里提供几个不同平台的解决方案:

Windows (PowerShell)

# 切换大写锁定灯
$wsh = New-Object -ComObject WScript.Shell
$wsh.SendKeys('{CAPSLOCK}')

保存为 toggle_capslock.ps1

Windows (VBScript)

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "{CAPSLOCK}"

保存为 toggle_capslock.vbs

Linux (使用 xdotool)

#!/bin/bash
# 切换大写锁定
xdotool key Caps_Lock
# 或者使用 setxkbmap
# setxkbmap -option caps:internal

安装 xdotool:

sudo apt-get install xdotool  # Debian/Ubuntu
sudo yum install xdotool      # CentOS/RHEL

Python (跨平台)

import ctypes
import time
def toggle_caps_lock():
    """切换大写锁定灯"""
    # Windows
    ctypes.windll.user32.keybd_event(0x14, 0, 0, 0)  # 按下
    time.sleep(0.1)
    ctypes.windll.user32.keybd_event(0x14, 0, 2, 0)  # 释放
if __name__ == "__main__":
    toggle_caps_lock()

C# (Windows)

using System;
using System.Runtime.InteropServices;
class Program
{
    [DllImport("user32.dll")]
    static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
    const uint KEYEVENTF_KEYUP = 0x0002;
    static void Main()
    {
        // 切换大写锁定
        keybd_event(0x14, 0, 0, UIntPtr.Zero);  // 按下
        keybd_event(0x14, 0, KEYEVENTF_KEYUP, UIntPtr.Zero);  // 释放
    }
}

检查当前状态 (Python)

import ctypes
def get_caps_lock_state():
    """获取大写锁定状态"""
    return ctypes.windll.user32.GetKeyState(0x14) & 1
# 使用示例
if get_caps_lock_state():
    print("大写锁定已开启")
else:
    print("大写锁定已关闭")

简易批处理文件 (Windows)

@echo off
:: 创建VBS脚本来控制
echo Set WshShell = WScript.CreateObject("WScript.Shell") > %temp%\caps.vbs
echo WshShell.SendKeys "{CAPSLOCK}" >> %temp%\caps.vbs
cscript //nologo %temp%\caps.vbs
del %temp%\caps.vbs

保存为 capslock_toggle.bat

使用建议

  1. Windows 用户:推荐使用 VBScript 或 PowerShell 版本
  2. Linux 用户:使用 xdotool 版本
  3. 开发用途:使用 Python 版本,便于扩展功能

这些脚本可以轻松集成到热键自动化和批量脚本中,需要特定的功能(如定时控制、状态监控等)我可以帮你扩展。

抱歉,评论功能暂时关闭!