Re: [問題] MFC C++ 的open file
※ 引述《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)
推
05/13 13:02, , 1F
05/13 13:02, 1F
推
04/29 17:14, , 2F
04/29 17:14, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章