50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
|
|
# 该模块定义了一些通用的功能接口
|
|||
|
|
|
|||
|
|
# 声明全局功能类
|
|||
|
|
class CCommon:
|
|||
|
|
# 获取屏幕的分辨率
|
|||
|
|
@staticmethod
|
|||
|
|
def fnGetScreenRate() -> tuple[int, int]:
|
|||
|
|
import pyautogui
|
|||
|
|
nScreenWidth, nScreenHeight = pyautogui.size()
|
|||
|
|
return nScreenWidth, nScreenHeight
|
|||
|
|
|
|||
|
|
# 获取当前时间,'xxxx/xx/xx xx:xx:xx'
|
|||
|
|
@staticmethod
|
|||
|
|
def fnGetCurrentTime() -> str:
|
|||
|
|
from datetime import datetime
|
|||
|
|
# 获取当前本地时间(datetime对象)
|
|||
|
|
local_time = datetime.now()
|
|||
|
|
# 格式化输出为字符串
|
|||
|
|
return local_time.strftime("%Y-%m-%d %H:%M:%S")
|
|||
|
|
|
|||
|
|
# 判断内容是否符合限制要求
|
|||
|
|
@staticmethod
|
|||
|
|
def fnCheckInputValid(key, modifier, key_char) -> bool:
|
|||
|
|
# 允许的控制键:退格、删除、方向键、Ctrl+A/C/V/X(全选/粘贴/剪切)
|
|||
|
|
allowed_control_keys = (
|
|||
|
|
0x01000003, # 退格
|
|||
|
|
0x01000007, # 删除
|
|||
|
|
0x01000012, # 左方向键
|
|||
|
|
0x01000014, # 右方向键
|
|||
|
|
0x01000013, # 上方向键
|
|||
|
|
0x01000015, # 下方向键
|
|||
|
|
0x01000010, # 首页键
|
|||
|
|
0x01000011, # 尾页键
|
|||
|
|
)
|
|||
|
|
# 允许的功能快捷键(Ctrl+A/C/V/X)
|
|||
|
|
if modifier == 0x04000000: # Qt.ControlModifier
|
|||
|
|
if key in (0x41, 0x43, 0x56, 0x58): # [Qt.Key_A, Qt.Key_C, Qt.Key_V, Qt.Key_X]:
|
|||
|
|
return True
|
|||
|
|
# 放行控制键
|
|||
|
|
if key in allowed_control_keys:
|
|||
|
|
return True
|
|||
|
|
# 允许的可打印字符:大小写字母、数字、下划线
|
|||
|
|
# 获取按键对应的字符
|
|||
|
|
if key_char:
|
|||
|
|
# 判断字符是否符合规则:字母(大小写)、数字、下划线
|
|||
|
|
if key_char.isalnum() or key_char == "_":
|
|||
|
|
return True
|
|||
|
|
# 其他按键一律拦截(返回True表示不处理该事件)
|
|||
|
|
return False
|