怎么获得打开的记事本文件的具体路径

maocanmao 2013-04-27 12:29:35
比如我打开了d:\aa\a.txt 我想获取这个路径。
我现在使用了GetModuleFileNameEx,但获取的都是nodepad.exe 。
怎么做呢,请赐教~~
...全文
533 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
贪食蛇男 2013-04-28
  • 打赏
  • 举报
回复
引用 6 楼 jamseyang 的回复:
[quote=引用 5 楼 hiroyukki 的回复:] 事实上,当文件被打开后根本没有确定可行的手段获取打开的文件名,所以如果想获取,用户态可以走APIHOOK路线,内核态可以走filemon路线,其中APIHOOK CreateFileW 简单易行,只是想知道打开哪些文件的话也很容易做稳定
人家文件已经打开了,Hook不了。ProcessExplorer有这个功能,好像是枚举进程句柄的,然后根据句柄转换为文件名等信息的。[/quote] 你提前HOOK啊,枚举进程句柄完全不行,比如NOTEPAD,CreateFile读完文件会马上CloseHandle。 枚举句柄只对WINOWRD之类的打开后不关闭句柄的有用
杀意已决 2013-04-28
  • 打赏
  • 举报
回复
GetCurrentDirectory
maocanmao 2013-04-28
  • 打赏
  • 举报
回复
引用 5 楼 hiroyukki 的回复:
事实上,当文件被打开后根本没有确定可行的手段获取打开的文件名,所以如果想获取,用户态可以走APIHOOK路线,内核态可以走filemon路线,其中APIHOOK CreateFileW 简单易行,只是想知道打开哪些文件的话也很容易做稳定
多谢了 ,虽然没有搞懂,但还是谢谢你。
jamseyang 2013-04-28
  • 打赏
  • 举报
回复
引用 5 楼 hiroyukki 的回复:
事实上,当文件被打开后根本没有确定可行的手段获取打开的文件名,所以如果想获取,用户态可以走APIHOOK路线,内核态可以走filemon路线,其中APIHOOK CreateFileW 简单易行,只是想知道打开哪些文件的话也很容易做稳定
人家文件已经打开了,Hook不了。ProcessExplorer有这个功能,好像是枚举进程句柄的,然后根据句柄转换为文件名等信息的。
threenewbee 2013-04-27
  • 打赏
  • 举报
回复
需要ReadProcessMemory读取进程获取了。不同版本的记事本可能不同 你可以用http://download.csdn.net/detail/caozhy/1859731 这个工具先调试。
贪食蛇男 2013-04-27
  • 打赏
  • 举报
回复
事实上,当文件被打开后根本没有确定可行的手段获取打开的文件名,所以如果想获取,用户态可以走APIHOOK路线,内核态可以走filemon路线,其中APIHOOK CreateFileW 简单易行,只是想知道打开哪些文件的话也很容易做稳定
maocanmao 2013-04-27
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
需要ReadProcessMemory读取进程获取了。不同版本的记事本可能不同 你可以用http://download.csdn.net/detail/caozhy/1859731 这个工具先调试。
那对于word,excel等原理是否相同?
maocanmao 2013-04-27
  • 打赏
  • 举报
回复
引用 2 楼 lianzhirong123 的回复:
你怎么打开的,如果CFileDialog对话框选择文件,选择结束时就可以获取到路径,
你理解错我的意思了。记事本是在windows中直接打开的,而我需要用程序获取打开的这个txt文件的路径。
曾有一个人 2013-04-27
  • 打赏
  • 举报
回复
你怎么打开的,如果CFileDialog对话框选择文件,选择结束时就可以获取到路径,

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧