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

如何通过ctypes或PyWin32调用SHChangeNotify实现C示例代码同等功能

Python调用SHChangeNotify接口实现方案

下面提供两种常用的实现方式,效果与参考C代码完全一致:


方案一:使用Python自带ctypes实现(无需额外安装依赖)

import ctypes
from ctypes import wintypes

# 定义接口所需常量
SHCNE_UPDATEITEM = 0x00002000
SHCNF_PATH = 0x0001

# 加载系统shell32库
shell32 = ctypes.WinDLL('shell32.dll', use_last_error=True)
# 声明函数参数类型,避免调用出错
shell32.SHChangeNotify.argtypes = [
    wintypes.LONG,
    wintypes.UINT,
    wintypes.LPCVOID,
    wintypes.LPCVOID
]
shell32.SHChangeNotify.restype = None

# 替换为你需要更新的目标路径
target_path = r"C:\Your-Folder"
# 中文路径建议使用SHCNF_PATHW(值为0x0005),直接传Unicode字符串即可无需编码
shell32.SHChangeNotify(SHCNE_UPDATEITEM, SHCNF_PATH, target_path.encode('gbk'), None)

方案二:使用PyWin32库实现(接口封装更完善)

首先执行安装命令:
pip install pywin32

实现代码:

from win32com.shell import shell, shellcon

target_path = r"C:\Your-Folder"
shell.SHChangeNotify(
    shellcon.SHCNE_UPDATEITEM,
    shellcon.SHCNF_PATH,
    target_path,
    None
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:18:01