请问我得到窗口句柄之后,如何得到它打开的文件名称。 ( 积分: 100 )

  • 主题发起人 主题发起人 UnFireSniper
  • 开始时间 开始时间
U

UnFireSniper

Unregistered / Unconfirmed
GUEST, unregistred user!
兄弟们好啊,我有个问题,就是我得到了窗口句柄之后,怎么能得到它所打开的文件名称,最好是全名阿。比如:我用notepad打开 c:/a.txt ,我得到了notepad的窗口句柄,怎么才能得到c:/a.txt? 高手们教教我啊!!
 
基本上是没办法的。特别是读入后就关闭的。
 
是不是这样的,根据窗口句柄,得到其进程ID,然后根据此ID得到其EXE文件名?
 
var
h: THandle;
szName: Array[0..256] of Char;

h := OpenProcess(PROCESS_ALL_ACCESS, 0, uiID);

GetModuleFileName((HMODULE)h,szName, Sizeof(szName));
 
To:xxj0828
不是,这个我知道,这个得到的是可执行文件的信息。
但是我是要得到应用程序所打开的文件内容。类似“a.txt”,请问有办法吗?
 
可能没有什么办法
可不可以根据打开的文件名,读文件流?
 
HOOK notepad CreateFile可以,这样很难写程序,白河愁有HOOK代码
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部