以下几个是获取程序本身的函数:
ExtractFilePath(ParamStr(0));//后加了"\"了 如:"c:\" ExtractFilePath(Application.ExeName);//后同样加了"\" 如:"c:\" Application.ExeName;//获取到的是完整的目录+程序文件名 如:"c:.exe" GetCurrentDir //获取到的程序目录 没有加"\" 如:"c:" ExtractFilePath(’c:.exe‘) 获取到的是 1.exe
下面是获取系统常见目录的路径函数:
先在uses 中加入 registry
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'; cShellAdmTools = 'Administrative Tools'; cShellLocalSet = 'Local Settings'; cShellMyPic = 'My Pictures'; //定义若干常量 function GetShellFolder (const folder: string):string; const cWin32='SOFTWARE\Microsoft\Windows\CurrentVersion'; cSHellPrefix = '\Explorer\Shell Folders'; var r:TRegistry; begin Result:=''; r:=TRegistry.Create; //创建对象 try r.Rootkey:=HKEY_CURRENT_USER; //只要是Windows95及其以后版本,此处都一样 if r.OpenKey (cWin32 + cShellPrefix, False) then //打开键,开始读取 Result:= r.ReadString (folder) + '\'; finally r.Free; //释放创建的对象 end; end;
调用方法:
GetShellFolder(上面定义的常量);
不知道到底是什么目录,就自己全部测试一下!
标签:delphi
发表评论