タイトル | : Re^7: ショートカットフォルダのアイコン取得 |
記事No | : 8611 |
投稿日 | : 2009/01/20(Tue) 22:50 |
投稿者 | : のぶ |
オショウさん、何度も丁寧にすいません。
なかなかうまく説明できず…。 今、指定したフォルダのサブフォルダのアイコンを取得できるものをつくってます。 サブフォルダは shell.application で取得を実施しています。
下記は C:\Documents and Settings\userName\ 配下のサブフォルダを取得しようとしてます。 取得するとこのようなサブフォルダ名で取得されます。
My Documents UserData WINDOWS デスクトップ お気に入り
この時に、C:\Documents and Settings\userName\お気に入り\ の際にアイコンの 取得ができないのです。 なので、 If InStr(sName2.name, "お気に入り") > 0 Then fName = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Favorites) End If を入れて仮対処はしているのですが・・・。 なんとか、お気に入りだったらという条件をシステムフォルダだったらの条件にして System.Environment.SpecialFolder.Favorites を編集できるようにしたいんです。 objShell2 = CreateObject("Shell.Application") fol2 = objShell2.NameSpace("C:\Documents and Settings\userName\") fc2 = fol2.Items()
Dim hImgSmall As IntPtr Dim fName As String Dim shinfo As SHFILEINFO shinfo = New SHFILEINFO()
For Each sName2 In fc2 aaa = sName2.Name fName = e.Node.FullPath & "\" & sName2.name & "\"
If InStr(sName2.name, "お気に入り") > 0 Then fName = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Favorites) End If
'--- アイコンの取得・表示 ListView1.SmallImageList = ImageList1 ListView1.LargeImageList = ImageList1
shinfo.szDisplayName = New String(Chr(0), 260) shinfo.szTypeName = New String(Chr(0), 80) hImgSmall = SHGetFileInfo(fName, 0, shinfo, Marshal.SizeOf(shinfo), _ SHGFI_ICON Or SHGFI_SMALLICON Or SHGFI_SYSICONINDEX) Dim myIcon As System.Drawing.Icon myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon) ImageList1.Images.Add(sName2.name, myIcon) nIndex = nIndex + 1 item1.ImageKey = sName2.name ListView1.Items.Add(item1)
Next
長くなってしまい、大変申し訳ありません。 何か、なおしたほうが良い点がありましたらご教授願います。
|