From 3b8630b91fada08fb57a0190e3e64326d75b0f7f Mon Sep 17 00:00:00 2001 From: LZY <2217445143@qq.com> Date: Wed, 25 Feb 2026 17:35:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo.xls | Bin 20992 -> 0 bytes init.py | 45 ------------------ main1.py | 42 ---------------- .../main.py" | 0 4 files changed, 87 deletions(-) delete mode 100644 demo.xls delete mode 100644 init.py delete mode 100644 main1.py rename "\345\267\246\344\270\212\350\247\222/\345\267\246\344\270\212\350\247\222.py" => "\345\267\246\344\270\212\350\247\222/main.py" (100%) diff --git a/demo.xls b/demo.xls deleted file mode 100644 index dd5e863d6dfe237a20e7f408953744a1349ea704..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20992 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 Yu=RwkA82@iz7NO-fW!*{{~w3{0&!dL0ssI2 diff --git a/init.py b/init.py deleted file mode 100644 index 1491ec9..0000000 --- a/init.py +++ /dev/null @@ -1,45 +0,0 @@ -# setup_helper.py -import urllib.request -from pathlib import Path - -VIRTUAL_DESKTOP_URL = "https://github.com/MScholtes/VirtualDesktop/releases/download/V1.21/VirtualDesktop11-24H2.exe" -BIN_DIR = Path(__file__).parent / "bin" # 项目根目录/bin - -def download_virtual_desktop(): - """下载 VirtualDesktop11-24H2.exe 到项目根目录的 bin/ 文件夹""" - print("=" * 70) - print("开始下载 VirtualDesktop 工具...") - print(f"目标路径: {BIN_DIR}") - print("=" * 70) - - # 确保 bin 目录存在 - BIN_DIR.mkdir(parents=True, exist_ok=True) - - # 从 URL 中提取原始文件名(不更改文件名!) - from urllib.parse import urlparse - original_filename = urlparse(VIRTUAL_DESKTOP_URL).path.split('/')[-1] - - # 完整文件路径(保持原文件名) - exe_path = BIN_DIR / original_filename - - # 检查是否已存在 - if exe_path.exists(): - print(f"⚠️ {exe_path} 已存在,跳过下载") - return exe_path - - try: - # 下载文件(文件名保持为 VirtualDesktop11-24H2.exe) - print(f"📥 正在下载 {original_filename}...") - urllib.request.urlretrieve(VIRTUAL_DESKTOP_URL, exe_path) - - print(f"✅ 下载成功: {exe_path}") - print(f"文件大小: {exe_path.stat().st_size:,} bytes") - return exe_path - - except Exception as e: - print(f"❌ 下载失败: {e}") - raise - -if __name__ == "__main__": - download_virtual_desktop() - print("\n下载完成!") \ No newline at end of file diff --git a/main1.py b/main1.py deleted file mode 100644 index b22f158..0000000 --- a/main1.py +++ /dev/null @@ -1,42 +0,0 @@ -import ctypes -import psutil - -kernel32 = ctypes.windll.kernel32 - -class MEMORY_BASIC_INFORMATION(ctypes.Structure): - _fields_ = [ - ("BaseAddress", ctypes.c_void_p), - ("AllocationBase", ctypes.c_void_p), - ("AllocationProtect", ctypes.c_ulong), - ("RegionSize", ctypes.c_size_t), - ("State", ctypes.c_ulong), - ("Protect", ctypes.c_ulong), - ("Type", ctypes.c_ulong), - ] - - -def check_memory(pid, address): - h_process = kernel32.OpenProcess(0x10, False, pid) - mbi = MEMORY_BASIC_INFORMATION() - - res = kernel32.VirtualQueryEx( - h_process, - ctypes.c_void_p(address), - ctypes.byref(mbi), - ctypes.sizeof(mbi) - ) - - if res: - print("内存基址:", hex(mbi.BaseAddress)) - print("保护属性 Protect:", hex(mbi.Protect)) - print("类型 Type:", hex(mbi.Type)) - else: - print("查询失败") - - kernel32.CloseHandle(h_process) - - -# 调用 -pid = 13500 -addr = 0x15F75FC3244 -check_memory(pid, addr) \ No newline at end of file diff --git "a/\345\267\246\344\270\212\350\247\222/\345\267\246\344\270\212\350\247\222.py" "b/\345\267\246\344\270\212\350\247\222/main.py" similarity index 100% rename from "\345\267\246\344\270\212\350\247\222/\345\267\246\344\270\212\350\247\222.py" rename to "\345\267\246\344\270\212\350\247\222/main.py" -- Gitee From d3f33ab233a8a502443eab8286f61889b353d002 Mon Sep 17 00:00:00 2001 From: LZY <2217445143@qq.com> Date: Wed, 25 Feb 2026 17:39:34 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=BE=AE=E8=B0=83=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cursor_direction.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\351\274\240\346\240\207\346\211\213\345\212\277/cursor_direction.py" "b/\351\274\240\346\240\207\346\211\213\345\212\277/cursor_direction.py" index b53439c..9311b76 100644 --- "a/\351\274\240\346\240\207\346\211\213\345\212\277/cursor_direction.py" +++ "b/\351\274\240\346\240\207\346\211\213\345\212\277/cursor_direction.py" @@ -46,7 +46,7 @@ def calculate_cumulative_movement(sample_interval=0.01, duration=0.2): return main_direction, total_distance -def wait_for_large_movement(up_th=350, down_th=400, left_th=500, right_th=550, +def wait_for_large_movement(up_th=400, down_th=400, left_th=500, right_th=550, sample_interval=0.002, duration=0.03): """ 循环检测鼠标累计移动,超过阈值时返回方向 -- Gitee