請問如何用ExtractIcon來取得檔案所對應的ICON呢? |
答題得分者是:RaynorPao
|
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問用ExtractIcon傳的每個參數...各代表什麼意思呢? 是否能附個範例呢???? paf 你好: (1)詳細的說明~~麻煩你自行參考 M$DN 中的說明 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Resources/Icons/IconReference/IconFunctions/ExtractIcon.asp (2)範例程式碼(執行完畢後,看你螢幕的左上角) > --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
引言:引言: 請問用ExtractIcon傳的每個參數...各代表什麼意思呢? 是否能附個範例呢????paf 你好: (1)詳細的說明~~麻煩你自行參考 M$DN 中的說明 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Resources/Icons/IconReference/IconFunctions/ExtractIcon.asp (2)範例程式碼(執行完畢後,看你螢幕的左上角) > -- >>< face="Verdana, Arial, Helvetica"> RaynorPao大大...感謝你的回答 請問一下..只能抓*.exe的icon 嗎??? 小弟我試抓*.mp3...好像不行耶... 還有....對於磁碟機裝置的圖示呢??還有資料夾的圖示.. 能夠用這個function抓出來嗎? |
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
引言:引言:小弟看了說明...好像只能抓*.exe和*.dll,*.ico的檔案而已.. 如果要抓其他檔名跟磁碟裝置.....該用什麼function呢???引言: 請問用ExtractIcon傳的每個參數...各代表什麼意思呢? 是否能附個範例呢????paf 你好: (1)詳細的說明~~麻煩你自行參考 M$DN 中的說明 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Resources/Icons/IconReference/IconFunctions/ExtractIcon.asp (2)範例程式碼(執行完畢後,看你螢幕的左上角) > -- >>< face="Verdana, Arial, Helvetica"> RaynorPao大大...感謝你的回答 請問一下..只能抓*.exe的icon 嗎??? 小弟我試抓*.mp3...好像不行耶... 還有....對於磁碟機裝置的圖示呢??還有資料夾的圖示.. 能夠用這個function抓出來嗎? |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
引言:引言: 小弟看了說明...好像只能抓*.exe和*.dll,*.ico的檔案而已.. 如果要抓其他檔名跟磁碟裝置.....該用什麼function呢???paf 你好: (1)對,照文件中的說法是這樣子的 ( > > -- >>< face="Verdana, Arial, Helvetica"> 小弟找了一下資料.... 找到SHGetFileInfo這個function....好像可以抓到 a file,a folder,a directory,or a drive root的資訊(包括icon) 但好像只能在NT的OS上用而已..... 難道真的沒有其他辦法能夠讓一般的OS能夠做到像SHGetFileInfo這樣的功能嗎? |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 找到SHGetFileInfo這個function....好像可以抓到 a file,a folder,a directory,or a drive root的資訊(包括icon) 但好像只能在NT的OS上用而已..... 難道真的沒有其他辦法能夠讓一般的OS能夠做到像SHGetFileInfo這樣的功能嗎?Requirements Version 4.00 and later of Shell32.dll Windows NT/2000: Requires Windows NT 4.0 or later. Windows 95/98/Me: Requires Windows 95 or later. Header: Declared in Shellapi.h. Import Library: Shell32.lib. -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
引言:感謝RaynorPao大大的回答... 請問哪可下載到v 4.00以上版本的Shell32.dll呢??? 還是每個Compile或OS都附有此dll呢?.....引言: 找到SHGetFileInfo這個function....好像可以抓到 a file,a folder,a directory,or a drive root的資訊(包括icon) 但好像只能在NT的OS上用而已..... 難道真的沒有其他辦法能夠讓一般的OS能夠做到像SHGetFileInfo這樣的功能嗎?Requirements Version 4.00 and later of Shell32.dll Windows NT/2000: Requires Windows NT 4.0 or later. Windows 95/98/Me: Requires Windows 95 or later. Header: Declared in Shellapi.h. Import Library: Shell32.lib. -- Enjoy Researching & Developing -- |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問哪可下載到v 4.00以上版本的Shell32.dll呢??? 還是每個Compile或OS都附有此dll呢?.....paf 你好: 基本上~~目前每個 Windows OS 都有這個檔案 如果是 Windows 9X/ME, 此檔案應該在 System 目錄下 如果是 Windows NT/2000/XP, 此檔案應該在 System32 目錄下 找到此檔案以後,按右鍵,選內容,就可以看到它的版本資訊了 --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
引言:引言: 請問哪可下載到v 4.00以上版本的Shell32.dll呢??? 還是每個Compile或OS都附有此dll呢?.....paf 你好: 基本上~~目前每個 Windows OS 都有這個檔案 如果是 Windows 9X/ME, 此檔案應該在 System 目錄下 如果是 Windows NT/2000/XP, 此檔案應該在 System32 目錄下 找到此檔案以後,按右鍵,選內容,就可以看到它的版本資訊了 -- >>< face="Verdana, Arial, Helvetica"> 意思就是說...只要有shell32.dll 那SHGetFileInfo就在任何OS都能使用囉? |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
引言:引言: 意思就是說...只要有shell32.dll 那SHGetFileInfo就在任何OS都能使用囉?理論上來說~~在 Windows95 之後的 OS 都能用 -- >>< face="Verdana, Arial, Helvetica"> 謝謝.....對了...再問一個問題..SHFILEINFO info; SHGetFileInfo("C:\\WINDOWS\\notepad.exe", &info, sizeof(info), SHGFI_ICON); DrawIcon(GetDC(0), 10, 10, info.hIcon); DestroyIcon(info.hIcon);上面的程式碼可以抓出ICON並且畫出來. 但是.要如何把這個ICON放到ImageList裡面. 讓其他的元件使用呢?? 煩請大大指教..謝謝!!!!!! |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 謝謝.....對了...再問一個問題..SHFILEINFO info; SHGetFileInfo("C:\\WINDOWS\\notepad.exe", &info, sizeof(info), SHGFI_ICON); DrawIcon(GetDC(0), 10, 10, info.hIcon); DestroyIcon(info.hIcon);上面的程式碼可以抓出ICON並且畫出來. 但是.要如何把這個ICON放到ImageList裡面. 讓其他的元件使用呢?? 煩請大大指教..謝謝!!!!!! >>< face="Verdana, Arial, Helvetica"> paf 你好: 請參考以下的做法 < class="code"> SHFILEINFO info; DWORD dwImageHandle=0; dwImageHandle=SHGetFileInfo("C:\\WINNT\\notepad.exe", 0, &info, sizeof(info), SHGFI_ICON | SHGFI_SHELLICONSIZE | SHGFI_SYSICONINDEX); if(dwImageHandle!=0) { ImageList2->Handle=dwImageHandle; ImageList2->ShareImages=true; } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
引言: paf 你好: 請參考以下的做法 < class="code"> SHFILEINFO info; DWORD dwImageHandle=0; dwImageHandle=SHGetFileInfo("C:\\WINNT\\notepad.exe", 0, &info, sizeof(info), SHGFI_ICON | SHGFI_SHELLICONSIZE | SHGFI_SYSICONINDEX); if(dwImageHandle!=0) { ImageList2->Handle=dwImageHandle; ImageList2->ShareImages=true; } -- Enjoy Researching & Developing --感謝大大的回答.... 但小弟試了..卻在ToolBar的Button上..出現一個手掌耶. 很奇怪. 程式碼真的沒問題嗎? |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 但小弟試了..卻在ToolBar的Button上..出現一個手掌耶. 很奇怪. 程式碼真的沒問題嗎?paf 你好: 你先試試看用以下方法做驗證 看是不是有 *. class="code"> SHFILEINFO info; DWORD dwImageHandle=0; void __fastcall TForm1::Button2Click(TObject *Sender) { dwImageHandle=SHGetFileInfo("C:\\WINNT\\notepad.exe", 0, &info, sizeof(info), SHGFI_ICON | SHGFI_SHELLICONSIZE | SHGFI_SYSICONINDEX); if(dwImageHandle!=0) { ShowMessage("Yes"); ImageList2->Handle=dwImageHandle; ImageList2->ShareImages=true; } for(int i=0; i
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
Londer
一般會員 發表:5 回覆:32 積分:7 註冊:2003-01-08 發送簡訊給我 |
|
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
引言: 試試看這樣是不是你要的功能: >>>>>>>< face="Verdana, Arial, Helvetica">SHFILEINFO info; DWORD a=0; TIcon* icon=new TIcon; a=SHGetFileInfo(".txt", 0, &info, sizeof(info), SHGFI_USEFILEATTRIBUTES|SHGFI_ICON | SHGFI_SHELLICONSIZE |SHGFI_SYSICONINDEX); if(a!=0) { icon->Handle=info.hIcon; ImageList1->AddIcon(icon); delete icon; icon=NULL; }以上是小弟寫的程式碼 謝謝二位大大的回答... 小弟結合二位大大的程式碼... 終於做出來了.... 實在非常感謝大大們的回答......謝謝^^ <> > > |
paf
初階會員 發表:36 回覆:70 積分:41 註冊:2002-12-27 發送簡訊給我 |
引言:SHFILEINFO info; DWORD a=0; TIcon* icon=new TIcon; a=SHGetFileInfo(".txt", 0, &info, sizeof(info), SHGFI_USEFILEATTRIBUTES|SHGFI_ICON | SHGFI_SHELLICONSIZE |SHGFI_SYSICONINDEX); if(a!=0) { icon->Handle=info.hIcon; ImageList1->AddIcon(icon); delete icon; icon=NULL; }以上是小弟寫的程式碼 謝謝二位大大的回答... 小弟結合二位大大的程式碼... 終於做出來了.... 實在非常感謝大大們的回答......謝謝^^ <> > > >>< face="Verdana, Arial, Helvetica"> 小弟已解決此問題了... 那問題..好像是Masked不夠完整.... 所以只要把ImageList中BkColor屬性改為clScrollBar就可以show漂亮的圖了 大家參考看看 在此感謝二位前輩的指教....小弟受獲不淺.......!!!! |
chtai
高階會員 發表:68 回覆:238 積分:116 註冊:2004-05-21 發送簡訊給我 |
請問要怎麼抓到磁碟機或是資料夾打開跟合起來的圖示呢 ?
===================引 用 文 章=================== SHFILEINFO info; DWORD a=0; TIcon* icon=new TIcon; a=SHGetFileInfo(".txt", 0, &info, sizeof(info), SHGFI_USEFILEATTRIBUTES|SHGFI_ICON | SHGFI_SHELLICONSIZE |SHGFI_SYSICONINDEX); if(a!=0) { icon->Handle=info.hIcon; ImageList1->AddIcon(icon); delete icon; icon=NULL; }以上是小弟寫的程式碼 謝謝二位大大的回答... 小弟結合二位大大的程式碼... 終於做出來了.... 實在非常感謝大大們的回答......謝謝^^ ps.但有一個怪怪的現象..就是..例如磁碟機.或是資料夾. 抓出來的圖案..在邊邊都會多出很多黑黑的現象(好像是xp style的圖都會如此) Londer大大的程式也會有如此的現象!!
------
My Web: http://nelson.csie.us My Blog: http://blog.nelson.csie.us |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |