Foro de elhacker.net

Programación => .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
  1. 'veran en vb6 con esta api no tengo ningun problema :
  2.  
  3. Private Declare Function GetModuleFileNameExA Lib "PSAPI.DLL" (ByVal _  
  4.    hProcess As Long, _  
  5.    ByVal hModule As Long, ByVal _  
  6.    lpFilename As String, _  
  7.    ByVal nSize As Long) As Long

y adapte la api en .net de esta forma

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

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

Código
  1.        Dim Proceso As Process, ret As Integer, hola As String
  2.  
  3.        For Each Proceso In Process.GetProcesses
  4.  
  5.            If Proceso.ProcessName = "notepad" Then
  6.  
  7.                hola = Space(255)
  8.                ret = GetModuleFileNameExA(Proceso.Handle, 0, hola, 255)
  9.  
  10.                MsgBox(Len(Microsoft.VisualBasic.Left(hola, ret))) ' no optengo nada ??
  11.            Else
  12.  
  13.            End If
  14.  
  15.  
  16.        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
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  4.        Try
  5.            For Each p As Process In Process.GetProcesses()
  6.                Debug.WriteLine(p.Modules(0).FileName)
  7.            Next p
  8.        Catch p As Exception
  9.            Debug.WriteLine(p.ToString)
  10.        End Try
  11.    End Sub
  12. 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  ;-)