特殊フォルダパスの取得(U) <TOP>
特殊フォルダパスを取得します。
SHGetSpecialFolderPath 特殊フォルダのパスを取得
ListBoxの項目をクリックするとTextBoxにフォルダパスが表示されます。
参照
'================================================================ '= 特殊フォルダのパス名等の取得 '= (SHGetSpecialFolderPath.bas)
'================================================================ #include "Windows.bi" ' 特殊フォルダのパスを取得 Declare Function Api_SHGetSpecialFolderPath& Lib "shell32" Alias "SHGetSpecialFolderPathA" (ByVal hwndOwner&, ByVal lpszPath$, ByVal nFolder&, ByVal fCreate&) #define CSIDL_ADMINTOOLS &H30 '管理ツール #define CSIDL_ALTSTARTUP &H1D '非ローカライズスタートアップ #define CSIDL_APPDATA &H1A 'アプリケーションデータ #define CSIDL_BITBUCKET &HA 'ゴミ箱(仮想フォルダ) #define CSIDL_CONNECTIONS &H31 'ネットワーク接続 #define CSIDL_CONTROLS &H3 'コントロールパネル(仮想フォルダ) #define CSIDL_COOKIES &H21 'クッキー(IE) #define CSIDL_DESKTOP &H0 'デスクトップ #define CSIDL_DESKTOPDIRECTORY &H10 'デスクトップ上のファイルオブジェクトを格納するフォルダ(ファイルシステムディレクトリ) #define CSIDL_DRIVES &H11 'マイコンピュータ(仮想フォルダ) #define CSIDL_FAVORITES &H6 'お気に入り(ファイルシステムディレクトリ) #define CSIDL_FONTS &H14 'Fonts(フォントを含む仮想フォルダ) #define CSIDL_HISTORY &H22 '履歴(IE) #define CSIDL_INTERNET &H1 'InternetExplorer(仮想フォルダ) #define CSIDL_INTERNET_CACHE &H20 'インターネットキャッシュ #define CSIDL_LOCAL_APPDATA &H1C 'ローカルアプリケーションデータ #define CSIDL_MYMUSIC &HD 'マイミュージック(ファイルシステムディレクトリ) #define CSIDL_MYPICTURES &H27 'マイピクチャ #define CSIDL_MYVIDEO &HE 'マイビデオ #define CSIDL_NETHOOD &H13 'NetHood(ファイルシステムディレクトリ) #define CSIDL_NETWORK &H12 'ネットワークコンピュータ(仮想フォルダ) #define CSIDL_PERSONAL &H5 'マイドキュメント(ファイルシステムディレクトリ) #define CSIDL_PRINTERS &H4 'プリンタ(仮想フォルダ) #define CSIDL_PRINTHOOD &H1B 'プリンタ #define CSIDL_PROFILE &H28 'プロファイル #define CSIDL_PROGRAM_FILES &H26 'ProgramFilesフォルダ #define CSIDL_PROGRAMS &H2 'プログラム(ファイルシステムディレクトリ) #define CSIDL_RECENT &H8 '最近使ったファイル(ファイルシステムディレクトリ) #define CSIDL_SENDTO &H9 'SEndTo(ファイルシステムディレクトリ) #define CSIDL_STARTMENU &HB 'スタートメニュー(ファイルシステムディレクトリ) #define CSIDL_STARTUP &H7 'スタートアップ(ファイルシステムディレクトリ) #define CSIDL_SYSTEM &H25 'WindowsSystemディレクトリ #define CSIDL_TEMPLATES &H15 'ドキュメントテンプレートが格納されるフォルダ(ファイルシステムディレクトリ) #define CSIDL_WINDOWS &H24 'Windowsディレクトリ #define MAX_PATH 260 Var Shared List1 As Object Var Shared Text1 As Object List1.Attach GetDlgItem("List1") : List1.SetFontSize 14 Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub List1_Click edecl () Sub List1_Click() Var FolderNo As Integer Var Buff As String Var lFolder As Long Var Ret As Long Text1.SetWindowText "" FolderNo = List1.GetCursel Select Case FolderNo Case 0 lFolder = CSIDL_ADMINTOOLS Case 1 lFolder = CSIDL_ALTSTARTUP Case 2 lFolder = CSIDL_APPDATA Case 3 lFolder = CSIDL_BITBUCKET Case 4 lFolder = CSIDL_CONNECTIONS Case 5 lFolder = CSIDL_CONTROLS Case 6 lFolder = CSIDL_COOKIES Case 7 lFolder = CSIDL_DESKTOP Case 8 lFolder = CSIDL_DESKTOPDIRECTORY Case 9 lFolder = CSIDL_DRIVES Case 10 lFolder = CSIDL_FAVORITES Case 11 lFolder = CSIDL_FONTS Case 12 lFolder = CSIDL_HISTORY Case 13 lFolder = CSIDL_INTERNET Case 14 lFolder = CSIDL_INTERNET_CACHE Case 15 lFolder = CSIDL_LOCAL_APPDATA Case 16 lFolder = CSIDL_MYMUSIC Case 17 lFolder = CSIDL_MYPICTURES Case 18 lFolder = CSIDL_MYVIDEO Case 19 lFolder = CSIDL_NETHOOD Case 20 lFolder = CSIDL_NETWORK Case 21 lFolder = CSIDL_PERSONAL Case 22 lFolder = CSIDL_PRINTERS Case 23 lFolder = CSIDL_PRINTHOOD Case 24 lFolder = CSIDL_PROFILE Case 25 lFolder = CSIDL_PROGRAM_FILES Case 26 lFolder = CSIDL_PROGRAMS Case 27 lFolder = CSIDL_RECENT Case 28 lFolder = CSIDL_SENDTO Case 29 lFolder = CSIDL_STARTMENU Case 30 lFolder = CSIDL_STARTUP Case 31 lFolder = CSIDL_SYSTEM Case 32 lFolder = CSIDL_TEMPLATES Case 33 lFolder = CSIDL_WINDOWS End Select Buff = String$(MAX_PATH, Chr$(0)) Ret = Api_SHGetSpecialFolderPath(0, Buff, lFolder, 0) Text1.SetWindowText Left$(Buff, InStr(Buff, Chr$(0)) - 1) End Sub '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() List1.AddString "CSIDL_ADMINTOOLS" List1.AddString "CSIDL_ALTSTARTUP" List1.AddString "CSIDL_APPDATA" List1.AddString "CSIDL_BITBUCKET" List1.AddString "CSIDL_CONNECTIONS" List1.AddString "CSIDL_CONTROLS" List1.AddString "CSIDL_COOKIES" List1.AddString "CSIDL_DESKTOP" List1.AddString "CSIDL_DESKTOPDIRECTORY" List1.AddString "CSIDL_DRIVES" List1.AddString "CSIDL_FAVORITES" List1.AddString "CSIDL_FONTS" List1.AddString "CSIDL_HISTORY" List1.AddString "CSIDL_INTERNET" List1.AddString "CSIDL_INTERNET_CACHE" List1.AddString "CSIDL_LOCAL_APPDATA" List1.AddString "CSIDL_MYMUSIC" List1.AddString "CSIDL_MYPICTURES" List1.AddString "CSIDL_MYVIDEO" List1.AddString "CSIDL_NETHOOD" List1.AddString "CSIDL_NETWORK" List1.AddString "CSIDL_PERSONAL" List1.AddString "CSIDL_PRINTERS" List1.AddString "CSIDL_PRINTHOOD" List1.AddString "CSIDL_PROFILE" List1.AddString "CSIDL_PROGRAM_FILES" List1.AddString "CSIDL_PROGRAMS" List1.AddString "CSIDL_RECENT" List1.AddString "CSIDL_SENDTO" List1.AddString "CSIDL_STARTMENU" List1.AddString "CSIDL_STARTUP" List1.AddString "CSIDL_SYSTEM" List1.AddString "CSIDL_TEMPLATES" List1.AddString "CSIDL_WINDOWS" End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End