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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Ejemplo para enviar comandos a otras aplicaciones con SendMessage
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejemplo para enviar comandos a otras aplicaciones con SendMessage  (Leído 2,359 veces)
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Ejemplo para enviar comandos a otras aplicaciones con SendMessage
« en: 11 Marzo 2015, 11:59 am »

Hola

Esto es un ejemplo de uso de SendMessage para enviar comandos a otras aplicaciones. Se necesita el Handle de la otra aplicación y un código que hace referencia a una acción o evento determinado. Los códigos se pueden encontrar usando la herramienta Spy++ incluida en VB y VB.Net

Este programita permite cambiar las vistas de los iconos del escritorio como si fuera un ListView y también cambia las vistas del Explorador de windows.  Es como hacer "clic" en 'Vistas' del Explorador de Windows pero se hace remotamente desde el programa.

Intrucciones:

- Crea un array con dos controles OptionButton, 5 de cada uno: Option1 y Option2

En un formulario meter esto:

Código
  1. Option Explicit
  2. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  3. (ByVal hwnd As Long, _
  4. ByVal wMsg As Long, _
  5. ByVal wParam As Long, _
  6. lParam As Any) As Long
  7.  
  8. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
  9. (ByVal lpClassName As String, _
  10. ByVal lpWindowName As String) As Long
  11.  
  12. Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
  13. (ByVal hWnd1 As Long, _
  14. ByVal hWnd2 As Long, _
  15. ByVal lpsz1 As String, _
  16. ByVal lpsz2 As String) As Long
  17.  
  18. Private Const WM_COMMAND = &H111
  19.  
  20. Private Sub Form_Load()
  21. Option1.Item(0).Caption = "Vista Miniatura"
  22. Option1.Item(1).Caption = "Mosaico"
  23. Option1.Item(2).Caption = "Iconos"
  24. Option1.Item(3).Caption = "Lista"
  25. Option1.Item(4).Caption = "Detalle"
  26.  
  27. Option2.Item(0).Caption = "Vista Miniatura"
  28. Option2.Item(1).Caption = "Mosaico"
  29. Option2.Item(2).Caption = "Iconos"
  30. Option2.Item(3).Caption = "Lista"
  31. Option2.Item(4).Caption = "Detalle"
  32. End Sub
  33.  
  34. Public Function VistasEscritorio(ByVal Code As Long)
  35. Dim hwProgMan As Long
  36. Dim hwDesktop As Long
  37. hwProgMan = FindWindow("Progman", "Program Manager")
  38. hwDesktop = FindWindowEx(hwProgMan, &H0, "SHELLDLL_DefView", vbNullString)
  39. SendMessage hwDesktop, WM_COMMAND, Code, &H0
  40. End Function
  41.  
  42. Public Function VistasExplorador(ByVal Code As Long)
  43. Dim hwExplorer As Long
  44. Dim ListView As Long
  45.  
  46. 'Para XP
  47. hwExplorer = FindWindow("ExploreWClass", vbNullString)
  48. ListView = FindWindowEx(hwExplorer, &H0, "SHELLDLL_DefView", vbNullString)
  49. SendMessage ListView, WM_COMMAND, Code, &H0
  50.  
  51. 'Para Vista/...
  52. hwExplorer = FindWindow("CabinetWClass", vbNullString)
  53. ListView = FindWindowEx(hwExplorer, &H0, "ShellTabWindowClass", vbNullString)
  54. SendMessage ListView, WM_COMMAND, Code, &H0
  55. End Function
  56.  
  57. Private Sub Option1_Click(Index As Integer)
  58. Dim Code As Long
  59. Select Case Index
  60. Case 0: Code = 28717 'Vista Miniatura
  61. Case 1: Code = 28718 'Mosaico
  62. Case 2: Code = 28713 'Iconos
  63. Case 3: Code = 28715 'Lista
  64. Case 4: Code = 28716 'Detalles
  65. End Select
  66. Call VistasEscritorio(Code)
  67. End Sub
  68. Private Sub Option2_Click(Index As Integer)
  69. Dim Code As Long
  70. Select Case Index
  71. Case 0: Code = 28717 'Vista Miniatura
  72. Case 1: Code = 28718 'Mosaico
  73. Case 2: Code = 28713 'Iconos
  74. Case 3: Code = 28715 'Lista
  75. Case 4: Code = 28716 'Detalles
  76. End Select
  77. Call VistasExplorador(Code)
  78. End Sub


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines