'Imports System 'Imports System.Runtime.InteropServices 'Imports System.Text Private Const MAX_PATH As Integer = 260 Private Const PROCESS_QUERY_INFORMATION As Integer = &H400 Private Const PROCESS_VM_READ As Integer = &H10 <DllImport("user32", SetLastError:=True)> _ Private Function GetWindowThreadProcessId(ByVal hWnd As IntPtr, ByRef lpdwProcessId As Integer) As Integer End Function <DllImport("kernel32", SetLastError:=True)> _ Private Function OpenProcess(ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Boolean, ByVal dwProcessId As Integer) As IntPtr End Function <DllImport("kernel32", SetLastError:=True)> _ Private Function CloseHandle(ByVal hObject As IntPtr) As Boolean End Function <DllImport("psapi", SetLastError:=True)> _ Private Function GetModuleFileNameEx(ByVal hProcess As IntPtr, ByVal hModule As IntPtr, ByVal lpFileName As StringBuilder, ByVal nSize As Integer) As Integer End Function Private Function GetExeFilePathFromHandle(ByVal Handle As IntPtr) As String Dim Buffer As New StringBuilder(MAX_PATH) Dim Pid As Integer Dim hProcess As IntPtr Call GetWindowThreadProcessId(Handle, Pid) hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, False, Pid) Buffer.Length = GetModuleFileNameEx(hProcess, IntPtr.Zero, Buffer, MAX_PATH) Call CloseHandle(hProcess) Return Buffer.ToString() End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.