如何挂钩到Windows中的资源管理器目录调用以确定何时打开新目录?

时间:2017-03-29 20:08:36

标签: c# winapi

如果您使用Process Monitor之类的工具,则可以看到当打开目录时,explorer.exe会执行DirectoryQuery。我不知道DirectoryQuery是否特定于procmon,但我想知道我是否可以在C#中捕获这些调用。或者确定是否有任何Win32 API我可以PInvoke来获取此信息。

enter image description here

还有其他工具,如Clover也可以这样做。我试图复制的功能与Clover基本相同。我将新目录重定向到我的应用程序而不是资源管理器。

如果有人能指出我正确的方向,我将非常感激。

1 个答案:

答案 0 :(得分:0)

如果您想编写自己的文件资源管理器应用程序,那么您可以使用IExplorerBrowser对象为您完成90%的工作。 Register ssh# Use a *literal* here-doc to read the script into a *variable*. # Note how the script references parameter $1 instead of # local variable $count. read -d '' -r script <<'EOF' [[ $1 == '0' ]] && output='zero' || output='nonzero' echo "$output" EOF # The variable whose value to pass as a parameter. # With value 0, the script will echo 'zero', otherwise 'nonzero'. count=0 # Use `set -- '$<local-var>'...;` to pass the local variables as # positional parameters, followed by the script code. ssh localhost "set -- '$count'; $script" ProgIds的新默认动词。

如果要挂钩到Explorers文件资源管理器窗口,则必须实现browser helper objectC# if you must)和tweak it so it only loads in Explorer

DWebBrowserEvents2将告诉您有关导航事件的信息。