Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: rembolso en 15 Marzo 2012, 19:46 PM

Título: problemas con GetModuleFileNameExA.
Publicado por: rembolso en 15 Marzo 2012, 19:46 PM
hola. e decido jugar con algunas apis, para eso quiese enlistar en un listview los procesos, sus pid, y su ruta pero tengo un inconveniente con la ruta ...
Código (vb) [Seleccionar]
'veran en vb6 con esta api no tengo ningun problema :

Private Declare Function GetModuleFileNameExA Lib "PSAPI.DLL" (ByVal _  
   hProcess As Long, _  
   ByVal hModule As Long, ByVal _  
   lpFilename As String, _  
   ByVal nSize As Long) As Long


y adapte la api en .net de esta forma

Código (vbnet) [Seleccionar]
<System.Runtime.InteropServices.DllImport("PSAPI.DLL")> _
   Private Shared Function GetModuleFileNameExA(ByVal hWnd As System.IntPtr, ByVal hModule As Int32, ByVal lpFilename As String, ByVal nSize As Int32) As Integer
   End Function


pero al querer adquirir la ruta de cierto proceso no sale nada  porque sera ?
mi codigo

Código (vbnet) [Seleccionar]

       Dim Proceso As Process, ret As Integer, hola As String

       For Each Proceso In Process.GetProcesses

           If Proceso.ProcessName = "notepad" Then

               hola = Space(255)
               ret = GetModuleFileNameExA(Proceso.Handle, 0, hola, 255)
             
               MsgBox(Len(Microsoft.VisualBasic.Left(hola, ret))) ' no optengo nada ??
           Else
             
           End If


       Next


Alguna sugerencia. gracias ..
:( :( :( :(
Título: Re: problemas con GetModuleFileNameExA.
Publicado por: seba123neo en 15 Marzo 2012, 19:51 PM
no hace falta usar api para eso:

Código (vbnet) [Seleccionar]
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            For Each p As Process In Process.GetProcesses()
                Debug.WriteLine(p.Modules(0).FileName)
            Next p
        Catch p As Exception
            Debug.WriteLine(p.ToString)
        End Try
    End Sub
End Class


saludos.
Título: Re: problemas con GetModuleFileNameExA.
Publicado por: rembolso en 15 Marzo 2012, 19:57 PM
a ok . muchas gracias. pero  lo que pasa de esa forma esque cuando lo invoco tengo el mensaje de permiso denegado . por eso me tiro mas a las apis  ;-)