[WIN32]GetModuleFileNameEx获取当前窗口的可执行文件路径

55 篇文章 7 订阅
38 篇文章 0 订阅

DWORD GetModuleFileNameEx(HANDLE hProcess,HMODULE hModule,LPTSTR lpFilename,DWORD nSize)

参数:

hProcess是目标进程的句柄、

hModule是目标模块的句柄(当此参数为NULL时函数返回的是进程可执行文件的路径)、

lpFilename是存放路径的字符串缓冲区、

nSize表示缓冲区的大小。


方案一:dllcall

WinGet,PID,PID,A
NowRoute:=GetModuleFileNameEx(PID)
SplitPath,NowRoute,NowFile,NowDir
Run,% "Explorer.exe /select, " NowRoute 
Return
;~ ========= 获取进程路径 =========
GetModuleFileNameEx( p_pid )
{
   if A_OSVersion in WIN_95,WIN_98,WIN_ME
   {
      MsgBox, This Windows version (%A_OSVersion%) is not supported.
      return
   }

   h_process := DllCall( "OpenProcess", "uint", 0x10|0x400, "int", false, "uint", p_pid )
   if ( ErrorLevel or h_process = 0 )
      return

   name_size = 255
   VarSetCapacity( name, name_size )

   result := DllCall( "psapi.dll\GetModuleFileNameExW", "uint", h_process, "uint", 0, "str", name, "uint", name_size )

   DllCall( "CloseHandle", h_process )

   return, name
}

方案二:AutoHotkey的简单之美

  WinGet, _ProcessPath, ProcessPath, A
  Run,% "Explorer.exe /select, " _ProcessPath 
  return


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值