ICopyHook接口就行了啊,DLL编译出来后,需要在注册表里添加指定的项以便EXPLORER加载它,具体位置参见一下MSDN,大概是这个
HKEY_CLASSES_ROOT
Directory
Shellex
CopyHookHandlers
your_copyhook
(Default)
= {copyhook CLSID value}
如果不能实时生效,重启一下EXPLORER就好,一般建议在虚拟机里调试,省得各种崩溃麻烦
循环读取,要命要监视注册表,很简单,会API钩子么?挂RegOpenKeyEx, RegQueryValueEx, RegSetValueEx等注册表 *** 作API函数的钩子即可。
主要是 RegSetValueEx函数。监视其参数。
你能枚举出来,肯定能得到进程名称或进程pid吧?原型:
int WINAPI icePub_getProcessPathByName(char *strProcessName,char *strPath)
输入:strProcessName 进程名
输出:strPath 进程带路径文件名
原型:
int WINAPI icePub_getProcessPathByPid(int pid,char *strPath)
输入:pid 进程PID
输出:strPath 进程带路径文件名
这两个函数能得到进程的带路径的文件名,你
icePub_open(strPath)
即可
原型:
int WINAPI icePub_open(char *strPath)
输入:strPath 待打开(运行)文件名或链接或文件夹
输出:
下边参考资料里有文档下载
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)