作者UNARYvvv (有趣生活)
看板C_and_CPP
标题Re: [问题] MFC C++ 的open file
时间Sat May 13 00:00:38 2006
※ 引述《theee (系子)》之铭言:
: ※ 引述《invers0412 (异议あり)》之铭言:
: : 如果你是自己程式里的open file,就自己作储存纪录
: : 如果你是在档案总管选,但是要在自己程式列出来,就去找"我最近开启的文件"目录
: : 如果你不想去找"我最近开启的文件",那麽就是自己作hook之类的动作,撷取开启的档案
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 我是要在档案总管选,自己程式可以整理出出最常用的程式(类似我的最爱),直接
: 就可以在我自己写的程式开启这些档案程式,不用再去别的资料夹开启!
: 所以我才希望我可以抓到每次我开启过档案的位置(在滑鼠点选的时候),把每个位置
: 都记录下来,我就可以把最常用的link存起来,然後以後我自己写的程式就可以利用
: ShellExecute的方法开启他们~~
: 那请问一下您说的Hook大概要怎麽处理呢? 还有我最近开的文件他的位置是在哪?
: 我只在开始--->我最近的文件找的到,多谢您的回答
为了找出「我最近的文件」资料夹,其实是不需要动用到 hook 啦~
其实是能够透过写程式来找出「我最近的文件」资料夹
这样做能找出最近开启的文件,也不用涉及到 hook 的技术罗..
我没学 MFC
只单纯用 win32 API 写一个列出「我最近的文件」里面档案的小程式
不过根据这个你应该能够自己改成 MFC 版了
希望对你有帮助
#include <windows.h>
#include <shlobj.h>
#include <stdio.h>
int main(){
char path[MAX_PATH+1];
WIN32_FIND_DATA fd;
HANDLE hFind;
if (SHGetSpecialFolderPath(NULL,path,CSIDL_RECENT,FALSE)){
printf("%s\n\n",path);
lstrcat(path,"\\*.*");
hFind = FindFirstFile(path,&fd);
path[lstrlen(path)-3]=0;
do {
printf("%s%s\n",path,fd.cFileName);
} while (FindNextFile(hFind,&fd));
if (hFind!=INVALID_HANDLE_VALUE)
FindClose(hFind);
}
return 0;
}
======
output
======
C:\Documents and Settings\UNARY\Recent
C:\Documents and Settings\UNARY\Recent\.
C:\Documents and Settings\UNARY\Recent\..
C:\Documents and Settings\UNARY\Recent\Desktop.ini
C:\Documents and Settings\UNARY\Recent\嵌入式系统微算专题实验三.doc.lnk
C:\Documents and Settings\UNARY\Recent\donut.wmv.lnk
C:\Documents and Settings\UNARY\Recent\04.rm.lnk
C:\Documents and Settings\UNARY\Recent\新增文字文件.txt.lnk
C:\Documents and Settings\UNARY\Recent\Cd2.lnk
C:\Documents and Settings\UNARY\Recent\Software.lnk
C:\Documents and Settings\UNARY\Recent\W32.ppt.lnk
C:\Documents and Settings\UNARY\Recent\jta26.jar.lnk
C:\Documents and Settings\UNARY\Recent\Catherine.doc.lnk
C:\Documents and Settings\UNARY\Recent\dmt-match-cd2.rar.lnk
C:\Documents and Settings\UNARY\Recent\两猫看夜景.jpg.lnk
C:\Documents and Settings\UNARY\Recent\000.lnk
C:\Documents and Settings\UNARY\Recent\GetKeyInfo.vbp.lnk
C:\Documents and Settings\UNARY\Recent\最游记[1-50全].lnk
C:\Documents and Settings\UNARY\Recent\必看说明.txt.lnk
C:\Documents and Settings\UNARY\Recent\000 (3).lnk
C:\Documents and Settings\UNARY\Recent\光碟机.lnk
C:\Documents and Settings\UNARY\Recent\lab1.qpf.lnk
C:\Documents and Settings\UNARY\Recent\uCOS-II-V276.zip.lnk
........太多了,略..........XD
试试看罗~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.70.137.117
※ 编辑: UNARYvvv 来自: 61.70.137.117 (05/13 01:10)
1F:推 theee:很感谢你 .... >"< ..... 05/13 13:02
2F:推 around0423:推,好文! 04/29 17:14