Re: [問題] MFC C++ 的open file

看板C_and_CPP (C/C++)作者 (有趣生活)時間18年前 (2006/05/12 23:44), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
※ 引述《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
文章代碼(AID): #14PArxj7 (C_and_CPP)
文章代碼(AID): #14PArxj7 (C_and_CPP)