導航:首頁 > 文件目錄 > vb文件路徑句柄

vb文件路徑句柄

發布時間:2024-09-05 23:58:59

⑴ 求VB取句柄對應全路徑文件名模塊

這個「句柄」指的是實例句柄hInstance吧...

用這個API:

Declare Function GetMoleFileName Lib "kernel32" Alias "GetMoleFileNameA" (ByVal hMole As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long

返回值Long,如執行成功,返回復制到lpFileName的實際字元數量;失敗時會返回0,並設置LastError
參數
hMole 一個模塊的句柄。可以是一個DLL模塊,或者是一個應用程序的實例句柄
lpFileName 指定一個字串緩沖區,要在其中容納文件的用NULL字元中止的路徑名,hMole模塊就是從這個文件裝載進來的
nSize 裝載到緩沖區lpFileName的最大字元數量

例如:

Dim msg As String * 1024
msg = ""
GetMoleFileName App.hInstance, msg, 1024
MsgBox msg

則得到當前運行的路徑+文件名.~
----------------------------------------------------------------------------------------

終於完成了- -```

用到這幾個API:

GetWindowThreadProcessId()
-- 根據hWnd獲取進程ID(PID)
OpenProcess()
--打開進程..返回值是進程句柄.
CloseHandle()
EnumProcessMoles()
--枚舉進程模塊(第一個模塊就是第一個模塊就是創建此進程的主exe程序
GetMoleFileNameExA()
取得模塊的文件名.~

API函數及常量聲明如下(去MSDN中找...API瀏覽器里好多都沒有的......):

Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function EnumProcessMoles Lib "psapi.dll" (ByVal hProcess As Long, ByRef lphMole As Long, ByVal cb As Long, ByRef cbNeeded As Long) As Long
Private Declare Function GetMoleFileNameExA Lib "psapi.dll" (ByVal hProcess As Long, ByVal hMole As Long, ByVal MoleName As String, ByVal nSize As Long) As Long
Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
Private Const SYNCHRONIZE = &H100000
Private Const PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED + SYNCHRONIZE + &HFFF

下面這個函數的返回值就是根據hWnd取得的文件名:

Private Function getName(ByVal hHWND As Long) As String
Dim pID As Long
Dim hProcess As Long
Dim Moles(200) As Long
Dim nSize As Integer
Dim lRet As Long
Dim MoleName As String
Dim cb As Long
GetWindowThreadProcessId hHWND, pID
hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pID)
lRet = EnumProcessMoles(hProcess, Moles(1), 200, cb)
If lRet <> 0 Then
MoleName = Space(255)
nSize = 255
lRet = GetMoleFileNameExA(hProcess, Moles(1), MoleName, nSize)
End If
CloseHandle hProcess
End Function

..........Q:531623560

閱讀全文

與vb文件路徑句柄相關的資料

熱點內容
js初始化載入圖片 瀏覽:616
哪些網站可以下文件 瀏覽:910
米64g網路怎麼開 瀏覽:502
2017互聯網java面試題 瀏覽:907
供求網站源碼 瀏覽:195
童程童美編程加盟怎麼樣 瀏覽:895
app美團如何下載 瀏覽:197
弄畫框用什麼app 瀏覽:814
java獲取網頁圖片 瀏覽:193
jsp集合對象轉json 瀏覽:231
文件櫃在cad裡面長啥樣 瀏覽:554
iphone手機文件保存在哪裡 瀏覽:817
解壓文件後要刷新 瀏覽:786
cc資料庫怎麼獲得時間 瀏覽:226
ug3d硬料開出怎麼編程 瀏覽:151
如何獲取文件Linux命令 瀏覽:981
大智慧軟體哪個版本最好 瀏覽:698
狼人殺自動主持app叫什麼 瀏覽:949
checkbox怎麼綁定資料庫 瀏覽:945
編程怎麼設置一分鍾開燈 瀏覽:754

友情鏈接