Delphi GetModuleFileName函数的用法(可以获取项目的路径,桌面的路径,我的文档的路径)


本文整理自网络,侵删。

 
function GetModuleFileName(Module: HMODULE; Buffer: PChar; BufLen: Integer): Integer;
Module模块的句柄模块,其文件名是必需的。
Buffer是一个缓冲区,它接收文件的名称。
BufLen是在缓冲区的字节数。
GetModuleFileName返回写入缓冲区的字节数。
警告:GetModuleFileName并不总是成功的。在应用程序调用方式,在/ proc文件系统的存在,以及其他因素的不同,有些时候可能会返回GetModuleFileName一个不完全合格的名称,或在某些情况下,没有在所有的文件名。请务必在使用前要检查这个返回值函数的结果。

{当前项目的路径}
  function GetCurrPath(IsAutoGetDll: boolean = true): string;
  {当前项目的全部的路径(包括exe)}
  function GetCurrDllpath: string;
  {获取桌面}
  function GetDeskeptPath: string;
  {获取我的文档}
  function GetMyDoumentpath: string;
{-------------------------------------------------------------------------------
  过程名:    GetCurrPath
  作者:      张志峰
  日期:      2010.11.23
  参数:      无
  返回值:    String
  说明:      获取当前项目的路径
-------------------------------------------------------------------------------}
function GetCurrPath(IsAutoGetDll: boolean = true): string;
var
  ModName: array[0..MAX_PATH] of Char;
begin
  if ModuleIsLib and IsAutoGetDll then begin
    GetModuleFileName(HInstance, ModName, SizeOf(ModName));   // 取得当前项目的路径
    Result := ExtractFilePath(ModName);
  end
  else
    Result := ExtractFilePath(ParamStr(0));
end;
{-------------------------------------------------------------------------------
  过程名:    GetCurrDllpath
  作者:      张志峰
  日期:      2010.11.23
  参数:      无
  返回值:    String
  说明:      获取当前项目的路径包括exe
-------------------------------------------------------------------------------}
function GetCurrDllpath: string;
var
  p: pchar;
begin
  getmem(p, 255);
  try
    getmodulefilename(hinstance, p, 255);
    result := trim(strpas(p));
  finally
    freemem(p, 255);
  end;
end;
function GetShellFolders(strDir: string): string;
const
  regPath = '\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders';
var
  Reg: TRegistry;
  strFolders: string;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    if Reg.OpenKey(regPath, false) then begin
      strFolders := Reg.ReadString(strDir);
    end;
  finally
    Reg.Free;
  end;
  result := strFolders;
end;
{获取桌面}
function GetDeskeptPath: string;
begin
  Result := GetShellFolders('Desktop'); //是取得桌面文件夹的路径
end;
{获取我的文档}
function GetMyDoumentpath: string;
begin
  Result := GetShellFolders('Personal'); //我的文档
end;

相关阅读 >>

简单的rs232c/ttl电平转换和串口取电

Delphi 让窗口一直置顶,并且焦点也不移出

Delphi多线程图片转换类实现

Delphi tdictionary 泛型如何排序

Delphi xe datasnap服务器获取客户端ip地址

Delphi让tedit控件的内容居中或右对齐,限制位数,仅允许输入数字

Delphi 获取当前进程的父进程

Delphi10.3.2安卓sdk安装

Delphi webbrowser1 execwb 复制 新建 打开

如何在 Delphi 中静态链接 sqlite

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...