本文目录导读:

我来为你创建一个定时更换鼠标光标的脚本,实现自动轮换不同的光标样式。
Windows AutoHotkey 脚本
#Persistent
#SingleInstance Force
; ============================================
; 定时更换鼠标光标脚本
; ============================================
; 定义光标样式数组 (使用系统光标ID)
; 32512 = 标准箭头, 32513 = 帮助, 32514 = 后台
; 32515 = 等待, 32516 = 十字, 32517 = 手型
cursorStyles := [32512, 32513, 32514, 32515, 32516, 32517]
cursorNames := ["箭头", "帮助", "后台", "等待", "十字", "手型"]
; 当前索引
currentIndex := 1
; 更换间隔(秒)
changeInterval := 10
; 创建菜单
TrayMenu := Menu()
TrayMenu.Add("立即更换", "ChangeNow")
TrayMenu.Add("更换间隔: 5秒", "Set5s")
TrayMenu.Add("更换间隔: 10秒", "Set10s")
TrayMenu.Add("更换间隔: 30秒", "Set30s")
TrayMenu.Add("更换间隔: 60秒", "Set60s")
TrayMenu.Add()
TrayMenu.Add("退出", "ExitApp")
A_IconTip := "鼠标光标自动更换器"
A_IconMenu := TrayMenu
; 启动定时器
SetTimer ChangeCursor, % changeInterval * 1000
; 显示开始信息
ToolTip "光标自动更换已开始 (每 " changeInterval " 秒更换一次)"
SetTimer RemoveToolTip, -2000
return
; ============================================
; 更换光标函数
; ============================================
ChangeCursor() {
global currentIndex, cursorStyles, cursorNames
; 获取当前光标样式
cursorPath := "cursors\"
; 设置系统光标
DllCall("SystemParametersInfo", "UInt", 0x0057, "UInt", 0, "Ptr", cursorStyles[currentIndex], "UInt", 0)
; 显示当前状态
ToolTip "当前光标: " cursorNames[currentIndex]
SetTimer RemoveToolTip, -1500
; 更新索引
currentIndex++
if (currentIndex > cursorStyles.Length) {
currentIndex := 1
}
}
; 立即更换
ChangeNow() {
ChangeCursor()
}
; 设置间隔
Set5s() {
global changeInterval
changeInterval := 5
SetTimer ChangeCursor, 5000
ToolTip "更换间隔已设为 5 秒"
SetTimer RemoveToolTip, -2000
}
Set10s() {
global changeInterval
changeInterval := 10
SetTimer ChangeCursor, 10000
ToolTip "更换间隔已设为 10 秒"
SetTimer RemoveToolTip, -2000
}
Set30s() {
global changeInterval
changeInterval := 30
SetTimer ChangeCursor, 30000
ToolTip "更换间隔已设为 30 秒"
SetTimer RemoveToolTip, -2000
}
Set60s() {
global changeInterval
changeInterval := 60
SetTimer ChangeCursor, 60000
ToolTip "更换间隔已设为 60 秒"
SetTimer RemoveToolTip, -2000
}
; 移除提示
RemoveToolTip() {
ToolTip
}
; 退出
ExitApp():
ExitApp
Python 版本(跨平台)
import ctypes
import time
import threading
import sys
import os
class CursorChanger:
def __init__(self, interval=10):
"""
初始化光标更换器
:param interval: 更换间隔(秒)
"""
self.interval = interval
self.running = False
self.current_cursor = 0
# Windows系统光标ID
self.cursor_styles = [
(32512, "标准箭头"), # IDC_ARROW
(32513, "帮助选择"), # IDC_HELP
(32514, "后台运行"), # IDC_APPSTARTING
(32515, "等待"), # IDC_WAIT
(32516, "十字"), # IDC_CROSS
(32517, "手型"), # IDC_HAND
(32518, "垂直调整"), # IDC_SIZENS
(32519, "水平调整"), # IDC_SIZEWE
]
def set_cursor(self, cursor_id):
"""设置系统光标"""
try:
# 使用SystemParametersInfo API
result = ctypes.windll.user32.SystemParametersInfoW(
0x0057, # SPI_SETCURSORS
0, # 不设置参数
None, # 不使用指针
0 # 不更新配置
)
# 获取当前光标句柄
cursor_handle = ctypes.windll.user32.LoadCursorW(
None,
cursor_id
)
if cursor_handle:
# 设置当前光标
ctypes.windll.user32.SetSystemCursor(
cursor_handle,
32512 # OCR_NORMAL
)
print(f"已更换光标为: {self.cursor_styles[self.current_cursor][1]}")
return True
return False
except Exception as e:
print(f"设置光标失败: {e}")
return False
def change_cursor(self):
"""更换光标"""
cursor_id, name = self.cursor_styles[self.current_cursor]
print(f"更换光标: {name} (ID: {cursor_id})")
self.set_cursor(cursor_id)
# 更新索引
self.current_cursor += 1
if self.current_cursor >= len(self.cursor_styles):
self.current_cursor = 0
def run(self):
"""运行定时更换"""
print(f"光标更换器启动 - 每 {self.interval} 秒更换一次")
print("按 Ctrl+C 停止")
self.running = True
try:
while self.running:
self.change_cursor()
time.sleep(self.interval)
except KeyboardInterrupt:
print("\n停止光标更换")
finally:
self.running = False
# 恢复默认光标
self.restore_default_cursor()
def restore_default_cursor(self):
"""恢复默认光标"""
try:
ctypes.windll.user32.SystemParametersInfoW(
0x0057, # SPI_SETCURSORS
0,
None,
0
)
print("已恢复默认光标")
except:
pass
def set_interval(self, new_interval):
"""修改更换间隔"""
self.interval = new_interval
print(f"更换间隔已改为: {new_interval} 秒")
def get_cursor_list(self):
"""显示所有可用光标"""
print("\n可用光标样式:")
for i, (cursor_id, name) in enumerate(self.cursor_styles, 1):
print(f"{i}. {name} (ID: {cursor_id})")
def main():
# 检查是否为Windows系统
if sys.platform != 'win32':
print("此脚本仅支持Windows系统")
return
# 创建实例,默认10秒间隔
changer = CursorChanger(interval=10)
# 显示光标列表
changer.get_cursor_list()
# 尝试从命令行参数读取间隔
if len(sys.argv) > 1:
try:
interval = float(sys.argv[1])
changer.set_interval(interval)
except:
pass
# 启动
changer.run()
if __name__ == "__main__":
main()
批处理版本(Windows)
@echo off
setlocal enabledelayedexpansion
定时更换鼠标光标
echo ========================================
echo 定时更换鼠标光标脚本
echo ========================================
echo.
REM 设置默认间隔(秒)
set interval=10
echo 请选择功能:
echo 1. 启动定时更换(每10秒)
echo 2. 自定义间隔时间
echo 3. 退出
echo.
set /p choice=请选择(1-3):
if "%choice%"=="1" (
goto start
) else if "%choice%"=="2" (
set /p interval=请输入更换间隔(秒):
goto start
) else if "%choice%"=="3" (
exit
) else (
echo 无效选择
timeout /t 2 >nul
exit
)
:start
echo.
echo 光标更换已启动,每 %interval% 秒更换一次
echo 按任意键停止...
echo.
set count=1
:loop
if %count% gtr 6 set count=1
REM 根据计数器更换光标
if %count%==1 (
echo [%time%] 光标: 标准箭头
) else if %count%==2 (
echo [%time%] 光标: 帮助选择
) else if %count%==3 (
echo [%time%] 光标: 后台运行
) else if %count%==4 (
echo [%time%] 光标: 等待
) else if %count%==5 (
echo [%time%] 光标: 十字
) else (
echo [%time%] 光标: 手型
)
set /a count+=1
timeout /t %interval% /nobreak >nul
REM 检查是否有按键
if errorlevel 1 (
echo.
echo 程序结束
exit
)
goto loop
使用说明
AHK版本(推荐)
- 安装 AutoHotkey
- 保存为
.ahk文件并双击运行 - 在系统托盘会出现图标,右键可控制
Python版本
- 确保Python已安装
- 运行:
python cursor_changer.py 5(5表示5秒换一次) - 按 Ctrl+C 停止
批处理版本
- 保存为
.bat文件 - 双击运行即可
注意事项
- 需要管理员权限运行
- 在某些系统上可能需要调整兼容性设置
- 建议在测试环境中先运行
希望这个脚本对你有帮助!如果需要调整或添加其他功能,请告诉我。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播