delphi WinAPI: GetModuleHandle - 获取一个模块(exe 或 dll)的句柄  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi WinAPI: GetModuleHandle - 获取一个模块(exe 或 dll)的句柄


定义:
GetModuleHandle(
  lpModuleName: PChar {模块名; 只能是映射到当前进程的模块}
): HMODULE;           {返回模块句柄; 0 表示失败}

举例:
//获取当前模块的句柄
var
  s: string;
  h: Cardinal;
begin
  {先取得模块名}
  s := Application.ExeName;
  s := ExtractFileName(s);

  {获取参数只要模块名就够了; 不需要路径(测试中有路径也可以)}
  h := GetModuleHandle(PChar(s));
  ShowMessage(IntToStr(h));       {4194304}
end;


//用 nil 做参数即可获取当前模块的句柄
var
  h: Cardinal;
begin
  h := GetModuleHandle(nil);
  ShowMessage(IntToStr(h));  {4194304}
end;


//获取系统骨干模块 Gdi32.dll 的句柄
var
  h: Cardinal;
begin
  h := GetModuleHandle('Gdi32.dll');
  ShowMessage(IntToStr(h));  {2012151808}
end;


//能不能获取记事本的句柄?
var
  h: Cardinal;
begin
  h := GetModuleHandle('notepad.exe');
  ShowMessage(IntToStr(h));  {0; 失败}

{因为当前进程和记事本的进程是相互独立的;     }
{如果用能够冲破进程、面向全局的 dll 应该可以.}
end;

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.54513597488403 seconds