以下のサンプルコードを参考にしてください。
レジストリからOS上の特別なフォルダ(デスクトップやProgram Filesなど)を取得します。
TRegistryを使用しているので、「Registry」をusesに追加するのを忘れないでください。
const cShellAppData = 'AppData'; cShellCache = 'Cache'; cShellCookies = 'Cookies'; cShellDesktop = 'Desktop'; cShellFavorites = 'Favorites'; cShellFonts = 'Fonts'; cShellHistory = 'History'; cShellLocalApp = 'Local AppData'; cShellNetHood = 'NetHood'; cShellPersonal = 'Personal'; cShellPrintHood = 'PrintHood'; cShellPrograms = 'Programs'; cShellRecent = 'Recent'; cShellSendTo = 'SendTo'; cShellStartMenu = 'Start Menu'; cShellStartUp = 'Startup'; cShellTemplates = 'Templates'; function GetShellFolder (const folder: string): string; const cWin32 = 'SOFTWAREMicrosoftWindowsCurrentVersion'; cSHellPrefix = 'ExplorerShell Folders'; var reg: TRegistry; begin Result:= ''; reg:= TRegistry.Create; try reg.Rootkey := 'HKEY_CURRENT_USER'; // NTと95/98で違いはありません if reg.OpenKey (cWin32 + cShellPrefix, false) then begin Result:= reg.ReadString(folder) + ''; end; finally reg.Free; end; end;
以下のように使用します。(Program Filesを取得する場合)
folder := GetShellFolder(cShellPrograms);
以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。