本文目录导读:

- Python(最流行、跨平台)
- Windows 专用(AutoHotkey/VBScript/PowerShell)
- macOS / Linux
- JavaScript (在浏览器环境中)
- C 语言(Windows API,最底层)
- 重要提示(务必注意)
是的,实用脚本可以自动模拟键盘输入,这在自动化测试、游戏辅助、办公自动化等领域很常见,实现方式取决于你使用的操作系统和编程语言。
以下是几种常见的方法:
Python(最流行、跨平台)
Python 有几个库可以轻松实现键盘模拟。
使用 pyautogui(推荐,功能全面)
可以模拟键盘按键、组合键和输入文本。
import pyautogui
import time
# 先等待5秒,让你切换到目标窗口
time.sleep(5)
# 输入文本(直接输入字符串)
pyautogui.write('Hello, world!', interval=0.1) # interval是每个字符的间隔秒数
# 按下单个键
pyautogui.press('enter')
# 按下组合键(如 Ctrl+C)
pyautogui.hotkey('ctrl', 'c')
# 按住和释放键
pyautogui.keyDown('shift')
pyautogui.write('uppercase')
pyautogui.keyUp('shift')
使用 keyboard(更底层、监听能力更强)
可以录制、模拟和监听全局按键。
import keyboard
# 模拟输入文本
keyboard.write('Hello from keyboard!')
# 模拟按下回车键
keyboard.press_and_release('enter')
# 模拟组合键
keyboard.press_and_release('ctrl+c')
# 按住键
keyboard.press('shift')
keyboard.write('hello')
keyboard.release('shift')
Windows 专用(AutoHotkey/VBScript/PowerShell)
如果你主要使用 Windows,AutoHotkey 是王者级别的存在。
AutoHotkey (AHK) 脚本示例
; 模拟输入文本
Send, Hello, world!{Enter}
; 模拟组合键
Send, ^c ; Ctrl+C
Send, ^v ; Ctrl+V
; 模拟功能键
Send, {F5} ; 刷新
AHK 脚本可以编译成 .exe,非常便携。
PowerShell(无需安装额外软件)
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.SendKeys]::SendWait("Hello, world!{ENTER}")
macOS / Linux
- AppleScript (macOS):
tell application "System Events" to keystroke "text" - xdotool (Linux):
xdotool type "Hello, world!"或xdotool key Return
JavaScript (在浏览器环境中)
在浏览器 Console 里可以模拟,但仅限于当前页面。
// 模拟键盘事件
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'a' }));
C 语言(Windows API,最底层)
通过 SendInput 或 keybd_event 函数。
#include <windows.h>
// 模拟按下'A'键
void SimulateKeyPress() {
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0;
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
// 按下A键
ip.ki.wVk = 'A';
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
// 释放A键
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
}
重要提示(务必注意)
- 安全与权限:某些应用(如密码框、游戏反作弊系统)会阻止脚本向它们发送模拟键盘事件,系统可能需要授予辅助功能权限(macOS需在“安全性与隐私”中允许,Windows较新版本可能需要以管理员身份运行)。
- 法律与道德:不要用脚本进行违规操作,如自动刷单、游戏外挂、自动发送垃圾信息等。
- 后台运行:大部分模拟方法只对前台活动窗口有效,如果想在“后台”模拟输入(即游戏最小化时仍能发送按键),通常需要更底层的方法(如Windows的
SendMessage/PostMessage),但实现更复杂。
如果你刚开始,推荐用 Python + pyautogui,代码简单、跨平台、功能足够,如果需要复杂热键或Windows自动化,则用 AutoHotkey。