怎么得到已经打开的文件的句柄

来源:百度知道 编辑:UC知道 时间:2024/04/30 01:49:07
我想在自己的程序中打开一个正在使用的文件,比如记事本或word打开的文件,不知道怎么做,请大家不吝赐教。

FindWindow 获得窗口句柄
OpenProcess 获得进程句柄
具体参数查看MSDN

用CreateFile, 返回的HANDLE就是要打开的文件句柄.
这个是函数原形.
HANDLE WINAPI CreateFile(
__in LPCTSTR lpFileName, //文件名字,例如TEXT("c:\\a.txt")
__in DWORD dwDesiredAccess, //打开方式, 这边用GENERIC_READ,表示读取
__in DWORD dwShareMode, //分享模式, 这边用FILE_SHARE_READ|FILE_SHARE_WRITE表示别的程序也可以读写
__in LPSECURITY_ATTRIBUTES lpSecurityAttributes, //安全性, 这边用NULL, 表示默认安全性
__in DWORD dwCreationDisposition, //创建方式, 这边用OPEN_EXISTING, 表示打开一个已有的文件. ********这个很关键*********
__in DWORD dwFlagsAndAttributes, //文件属性, 系统会忽略, 添NULL就可以了
__in HANDLE hTemplateFile //系统也会忽略, 填NULL
);

可以啊,你打开它不要紧

也没有规定说正在使用的文件就不允许打开

ifstream infile("filename",ios::in);

FILE *fp = fopen("filename","r");

试试再说