elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  No logro encontrar handle a SysListView32 de taskmanager
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: No logro encontrar handle a SysListView32 de taskmanager  (Leído 5,633 veces)
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
No logro encontrar handle a SysListView32 de taskmanager
« en: 9 Julio 2011, 02:52 am »

hola buenas pues tengo un problema  :-\ estoy trabajando con un code para obtener informacion del syslistview del taskmanager :P
logro obtener el handle del task y logro obtener la clase de ventana ( "#32770" ) que es la del taskmanager :P pero a la hora de obtener los sub item no los puedo obtener noc enque estoy fallando  :(

en esta parte fallo :/

Código
  1. Case "#32770"
  2. i = FindWindowEx(lparam, 0, "#32770", "")
  3. i = FindWindowEx(i, 0, "SysListView32", "")
  4.  
ahora un select case para ver si es la ventana del taskmanager obteniendo la clase ( "#32770" ) luego lparam es el handle de la ventana, yo estoy utilizando un hook a las ventanas para obtenerlo :P luego uso la api findwindowex pero me devuelve 0 ayudaaaa :(
yo lo que quiero es obtener el handle de la syslistview para tener acceso a los items de la lista :P

e buscado en el foro encontre un codigo pero la forma es distinta y esta en c++ y no es con hooks :(
gracias
 


En línea

Sanlegas

Desconectado Desconectado

Mensajes: 131


https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-


Ver Perfil
Re: No logro encontrar handle a SysListView32 de taskmanager
« Respuesta #1 en: 9 Julio 2011, 03:13 am »

Por que no buscas otra forma de obtener los procesos mediante apis... si por X razón el administrador de tareas no esta abierto/disponible no podrias obtener los procesos,
podrias dejar el enlace de c++ para ver que se puede hacer.
Y otra cosa... lo que estas intentando hacer NO es un hook  :-X


En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: No logro encontrar handle a SysListView32 de taskmanager
« Respuesta #2 en: 9 Julio 2011, 03:20 am »

hola  ;D pues no estoy haciendo un hook el hook ya lo tengo hecho y es para ventanas bueno mi idea era obtener el nombre de un proceso o de mi proceso cualquier de las dos cosas para poder cambiarlo el nombre  :-\ y tambien noce quisiera usar ese metodo  :P
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: No logro encontrar handle a SysListView32 de taskmanager
« Respuesta #3 en: 9 Julio 2011, 03:45 am »

i = FindWindowEx(lparam, 0, "#32770", "")

Hola supuestamente el lparam es l handle de la ventana asi que no devias buscar la ventana  "#32770"  en caso que vos no tengas el lparam utilizas findwindow (no findwindowEx)

syslistivew32= FindWindowEx(lparam, ByVal 0&, "SysListView32", vbNullString)


te dejo un link que te va a sevir
http://www.recursosvisualbasic.com.ar/htm/listado-api/70-ocultar-administrador-tareas.htm
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: No logro encontrar handle a SysListView32 de taskmanager
« Respuesta #4 en: 9 Julio 2011, 04:09 am »

hola pana gracias pero no e podido arreglar mi problema  :-\
use esta linea que m dejaste:

Código:
syslistivew32= FindWindowEx(lparam, ByVal 0&, "SysListView32", vbNullString)
y tampoco siempre me devuelve 0 :P
y uso findwindowex noce si estoy mal pero para obtener el handle de los subitem de la ventana ( lparam) me puede explicar por favor
y vi tu codigo pero hace un gancho de proceso:
Código:
Public Function Procesos(ByVal hWnd2 As Long, _  
                         lParam As String) As Boolean 

y no para de ejecutarse y yo no quiero q no pare de ejecutarse :P gracias!
En línea

Hasseds

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: No logro encontrar handle a SysListView32 de taskmanager
« Respuesta #5 en: 9 Julio 2011, 04:44 am »

Hola, una pregunta, de que SyslistView32 queres obtener el Hwnd... el de aplicaciones o el de Procesos ? 
En línea

Sergio Desanti
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: No logro encontrar handle a SysListView32 de taskmanager
« Respuesta #6 en: 9 Julio 2011, 04:47 am »

el de procesos bro :P
En línea

Hasseds

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: No logro encontrar handle a SysListView32 de taskmanager
« Respuesta #7 en: 9 Julio 2011, 04:53 am »

Form

Código
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Form_Load()
  5.  
  6.  AutoRedraw = True
  7.  Call SetTimer(hwnd, &H0, &H14, AddressOf TimerProc)
  8.  
  9. End Sub
  10.  
  11.  
  12.  

Modulo

Código
  1.  
  2. Option Explicit
  3.  
  4. 'Modulo: HwndTask
  5. 'Autor: Sergio Desanti (Hasseds)
  6. 'Test: XP (32 BIT) & W7/UAC (32 BIT)
  7. 'Retorno:  Hwnd del administrador de tareas
  8.  
  9. Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
  10. Private Declare Function EnumChildWindows Lib "user32" (ByVal hwndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
  11. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal wIndx As Long) As Long
  12. Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
  13. Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwprocessid As Long) As Long
  14.  
  15. Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
  16. Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
  17.  
  18. Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  19. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  20. Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
  21.  
  22. Dim RetEnumHwndParent As Long
  23. Dim RetEnumHwndChilds As String
  24.  
  25. Public Function HwndTask() As Long
  26.   Call EnumWindows(AddressOf EnumHwndParent, ByVal &H0)
  27.   HwndTask = RetEnumHwndParent
  28. End Function
  29.  
  30. Private Function EnumHwndParent(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
  31.   RetEnumHwndParent = 0
  32.   RetEnumHwndChilds = ""
  33.   If Not IsWinBorder(hwnd) = False And GetClase(hwnd) = "#32770" Then
  34.     Call EnumChildWindows(hwnd, AddressOf EnumHwndChilds, ByVal &H0)
  35.     If RetEnumHwndChilds = "DavesFrameClass" Then
  36.       RetEnumHwndParent = hwnd
  37.       Exit Function
  38.     End If
  39.   End If
  40.   EnumHwndParent = True
  41. End Function
  42.  
  43. Private Function EnumHwndChilds(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
  44.   RetEnumHwndChilds = GetClase(hwnd)
  45.   If RetEnumHwndChilds = "DavesFrameClass" Then Exit Function
  46.   EnumHwndChilds = True
  47. End Function
  48.  
  49. Private Function GetClase(ByVal hwnd As Long) As String
  50.   GetClase = Space$(&H10) '
  51.   GetClase = Left$(GetClase, GetClassName(hwnd, GetClase, &H10))
  52. End Function
  53.  
  54. Private Function IsWinBorder(ByVal hwnd As Long) As Boolean
  55.   If (GetWindowLong(hwnd, &HFFF0) And &H800000) = &H800000 Then IsWinBorder = True
  56. End Function
  57.  
  58. Public Function PidFrontHwnd(ByVal hwnd As Long) As Long
  59.    Call GetWindowThreadProcessId(hwnd, PidFrontHwnd)
  60. End Function
  61.  
  62. Public Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
  63.  
  64.   Dim HwTask As Long
  65.   Dim HwChild As Long
  66.   Dim HwTab As Long
  67.   Dim HwLv As Long
  68.  
  69.   HwTask = HwndTask
  70.  
  71.   If HwTask <> 0 Then
  72.     HwTab = FindWindowEx(HwTask, 0, "SysTabControl32", vbNullString)
  73.     If SendMessage(HwTab, &H130B, 0, 0) = 1 Then
  74.       HwChild = FindWindowEx(HwTask, 0, "#32770", vbNullString)
  75.       HwLv = FindWindowEx(HwChild, 0, "SyslistView32", vbNullString)
  76.     End If
  77.   End If
  78.  
  79.   Form1.Cls
  80.   Form1.Print HwTask
  81.   Form1.Print HwLv
  82.  
  83. End Sub
  84.  
  85.  
  86.  


« Última modificación: 29 Agosto 2011, 04:02 am por Hasseds » En línea

Sergio Desanti
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: No logro encontrar handle a SysListView32 de taskmanager
« Respuesta #8 en: 9 Julio 2011, 05:52 am »



PANA GRACIAS!!! SOLUCIONADO! solo una duda :P  :xD
que constante es esta que no defines? :P

Código:
 If SendMessage(HwTab, &H1300 + 11, 0, 0) = 1 Then
En línea

Hasseds

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: No logro encontrar handle a SysListView32 de taskmanager
« Respuesta #9 en: 9 Julio 2011, 06:01 am »

Estoy chequeando que el Tab Control es 1 (procesos)

el de Aplicaciones por ejemplo sería  0 (cero)
If SendMessage(HwTab, &H1300 + 11, 0, 0) = 0 Then



Private Const TCM_FIRST = &H1300  
Private Const TCM_GETCURSEL = (TCM_FIRST + 11)

« Última modificación: 9 Julio 2011, 06:07 am por Hasseds » En línea

Sergio Desanti
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda con mi app dentro del TaskManager
Programación Visual Basic
Anteros 0 962 Último mensaje 10 Marzo 2007, 14:36 pm
por Anteros
ayuda con comandos de msdos y taskmanager
Programación Visual Basic
Proxy Lainux 3 3,801 Último mensaje 31 Mayo 2008, 00:12 am
por Ch3ck
Como desactivar los tooltips de los SysListView32??
Programación Visual Basic
<[(x)]> 2 2,107 Último mensaje 10 Julio 2009, 23:17 pm
por <[(x)]>
Ayuda, no logro encontrar el nombre de administrador.
Nivel Web
Kaosk. 2 3,287 Último mensaje 19 Agosto 2010, 09:54 am
por Kaosk.
problema para encontrar el handle de una ventana
.NET (C#, VB.NET, ASP)
CH4ØZ 3 3,566 Último mensaje 10 Septiembre 2010, 02:08 am
por CH4ØZ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines