根據程序號獲取程序路徑函式(原創)

2021-04-01 01:06:39 字數 1826 閱讀 3868

這個問題在論壇上被很多人問過,我這裡寫個函式,公開源**:

對應csdn論壇帖子為:

源**:

private declare function openprocess lib "kernel32.dll" (byval dwdesiredaccess as long, byval binherithandle as long, byval dwprocessid as long) as long

private declare function enumproces**odules lib "psapi.dll" (byval hprocess as long, byref lphmodule as long, byval cb as long, byref cbneeded as long) as long

private declare function getmodulefilenameexa lib "psapi.dll" (byval hprocess as long, byval hmodule as long, byval modulename as string, byval nsize as long) as long

private declare function closehandle lib "kernel32.dll" (byval hobject as long) as long

'根據程序號獲取程序路徑函式,原創:

function getprocesspathbyprocessid(pid as long) as string

on error goto z

dim cbneeded as long

dim szbuf(1 to 250) as long

dim ret as long

dim szpathname as string

dim nsize as long

dim hprocess as long

hprocess = openprocess(&h400 or &h10, 0, pid)

if hprocess <> 0 then

ret = enumproces**odules(hprocess, szbuf(1), 250, cbneeded)

if ret <> 0 then

szpathname = space(260)

nsize = 500

ret = getmodulefilenameexa(hprocess, szbuf(1), szpathname, nsize)

getprocesspathbyprocessid = left(szpathname, ret)

end if

end if

ret = closehandle(hprocess)

if getprocesspathbyprocessid = "" then

getprocesspathbyprocessid = "system"

end if

exit function

z:end function

'我的系統vb程序id為1716

'下面的結果顯示了vb程序的路徑為:d:/microsoft visual studio/vb98/vb6.exe

private sub ***mand1_click()

msgbox getprocesspathbyprocessid(1716)

end sub

'-------------------------------------------

根據WHND獲取程序的完全路徑

dword dwpid 儲存程序識別符號 getwindowthreadprocessid hfocusw,dwpid 接受一個視窗控制代碼。dwpid儲存視窗的建立者的程序識別符號,getwindowthreadprocessid返回值是該建立者的執行緒識別符號 handle hbrowser o...

根據程序號獲取該程序所在客戶端的ip地址

create procedure dbo.sp spidtoip spid int as spid to mac lj declare mac as varchar 12 select mac address from master.sysprocesses where spid spid mac ...

C 根據程序名稱獲取程序的控制代碼?

c 根據程序名稱獲取程序的控制代碼或c 如何獲取其他程序的控制代碼?有時候標題名是動態變化的,所以不使用findwindow方法!structlayout layoutkind.sequential public struct processentry32 dllimport kernel32.dl...

Python 根據程序名獲取程序所佔記憶體的大小

需要安裝psutil庫,安裝請參考 python3 安裝psutil psutil pypi psutil github import psutil defgetmemsize pid 根據程序號來獲取程序的記憶體大小 process psutil.process pid meminfo proce...

C QT 獲取程序完整路徑

氣哭我了,我不就獲取一下程序路徑嘛,繞了好大一圈 主要是用到了getmodulefilenameex 函式 食用方式如下 handle hprocess openprocess process query limited information,0,pid 獲取程序控制代碼 tchar proces...