You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows资源管理器中模拟选中文件的双击或回车操作?

解决方案

方法一:用pyautogui模拟回车操作

这是最简洁的实现方式,通过模拟系统按键触发选中文件的打开动作:

  1. 先安装依赖包:
pip install pyautogui
  1. 完整代码:
import subprocess
import pyautogui
import time
import os

target_dir = "C:/Users/***/***/DeforumStableDiffusionLocal"
os.chdir(target_dir)

# 打开资源管理器并定位到目标文件
subprocess.Popen(f'explorer /select, "{target_dir}/run_still.bat"')
# 等待窗口加载完成(可根据电脑性能调整等待时长)
time.sleep(1)

# 模拟按下回车(资源管理器窗口默认会处于激活状态,若未激活可先调用窗口激活)
pyautogui.press('enter')

如果资源管理器窗口未自动激活,可补充窗口激活逻辑:

# 获取对应文件夹窗口并激活
window = pyautogui.getWindowsWithTitle("DeforumStableDiffusionLocal")[0]
window.activate()
time.sleep(0.5)
pyautogui.press('enter')

方法二:用win32api精准控制窗口与按键

通过Windows API直接操作窗口句柄,避免其他窗口干扰,稳定性更强:

  1. 安装依赖包:
pip install pywin32
  1. 完整代码:
import subprocess
import time
import os
import win32gui
import win32api
import win32con

def get_explorer_window_handle(folder_name):
    return win32gui.FindWindow(None, folder_name)

target_dir = "C:/Users/***/***/DeforumStableDiffusionLocal"
folder_name = os.path.basename(target_dir)
os.chdir(target_dir)

# 启动资源管理器并选中目标文件
subprocess.Popen(f'explorer /select, "{target_dir}/run_still.bat"')
time.sleep(1)

# 获取窗口句柄并激活
hwnd = get_explorer_window_handle(folder_name)
if hwnd:
    win32gui.SetForegroundWindow(hwnd)
    time.sleep(0.5)
    # 模拟按下并释放回车键
    win32api.keybd_event(win32con.VK_RETURN, 0, 0, 0)
    win32api.keybd_event(win32con.VK_RETURN, 0, win32con.KEYEVENTF_KEYUP, 0)

关键说明

直接用subprocess运行脚本出现SSL错误,而资源管理器双击正常,本质是两种运行方式的环境上下文(如环境变量、用户权限、系统关联执行上下文)不同。模拟双击相当于复用了桌面用户的运行环境,从而避开SSL问题。

内容的提问来源于stack exchange,提问作者forbiddenn14

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:31:13