edit:我想我找到了所需的函数,但我不知道如何捕捉这个IShellWindows::OnNavigate,这不是我调用的函数,而是一个被调用的函数。
在写我的问题时,我在类似的问题中发现了这一点,这正是我需要的
SHOpenFolder并选择资源管理器更换程序的项目
IShellWindows::RegisterPending
类型:VARIANT*
VT_VARIANT|VT_BYREF类型的变量。将pvarloc的值设置为指定要注册的窗口的绝对PIDL(PIDLIST_absolute(。
我以前只使用过SHParseDisplayName,它会给出PIDL,但这是针对文件路径的,我如何获得窗口的PIDL?窗口的PIDL是什么意思?
这个注册是做什么的?以及我如何在注册后获得要选择/聚焦的文件?调用SHOpenFolderAndSelectItems时是否会调用函数/事件?
我以前在ahk论坛上问过这个问题,因为我正在ahk中编写文件管理器,我想在ahk中调用这些dll函数。这是我在阿尝试过的。
我不确定:GetCurrentThreadId是否为long lThreadId
提供了正确的线程ID?
几年后我可以回答我的问题
https://github.com/FuPeiJiang/just_SHOpenFolderAndSelectItems
代码在那里,但解释不完全是
取自c++版本(我现在明白了(解释很多((
https://github.com/derceg/explorerplusplus/commit/67c3687f3012330d802d70028f36968788d80aff
将for registry (single).ah2
添加到注册表然后使用目录路径运行test run SHOpenFolderAndSelectItems.ah2
HKEY_CLASSES_ROOT\文件夹\外壳->(默认(AnythingYouWant
HKEY_CLASSES_ROOT\Folder\shell\AnythingYouWant\命令->(默认("C:AutoHotkey_2.0-beta.3AutoHotkey64.exe" "C:for registry (single).ah2" "%1 "