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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46
371  Programación / Programación Visual Basic / Interceptar Click "ajenos" con SendMessage (Ejemplo) en: 20 Enero 2009, 01:42 am
Este es un simple ejemplo de como interceptar Clcks en botones de una aplicación externa, en este caso la calculadora de windows XP (en vista y seven hay que cambiar las clases) usando la constante BM_GETSTATE para SendMessage cuyo valor de retorno es de 512 si el button recibe un click, retorno de 620 si el button tiene el foco y retono 0 si no tiene foco, son retornos "especiales" para la calculadora ya que los retornos de casi todos los button de otras aplicaciones son de 44 si reciben el click o de 108 si el click se provoca con la barra espaciadora. se pueden saber los retornos con:

MsgBox SendMessage(Hndl, BM_GETSTATE, 0, 0) 

otras constantes para aprovechar

Private Const BM_GETSTATE = &HF2
Private Const WM_SETFOCUS = &H7
Private Const WM_KILLFOCUS = &H8
Private Const WM_ENABLE = &HA

Código:

Option Explicit

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long


Private Const BM_GETSTATE = &HF2

Private Sub Form_Load()
' cierro las calculadodas abiertas
While FindWindow("SciCalc", vbNullString) <> 0
Call SendMessage(FindWindow("SciCalc", vbNullString), &H112, &HF060&, 0)
Wend
Shell "calc"
Timer1.Interval = 100
End Sub

Private Sub Form_Unload(Cancel As Integer)
' cierro las calculadodas abiertas
While FindWindow("SciCalc", vbNullString) <> 0
Call SendMessage(FindWindow("SciCalc", vbNullString), &H112, &HF060&, 0)
Wend
End Sub

Private Sub Form_DblClick()
Shell "calc"
End Sub

Private Sub Timer1_Timer()

Call SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, &H2 Or &H1)

Dim Hndl As Long: Dim i As Long: Dim x As Long
Dim H(0 To 9) As Long: Dim ch(0 To 9) As Long

Hndl = FindWindow("scicalc", vbNullString)
If Hndl <> 0 Then
   
  For i = 0 To 9
    H(i) = FindWindowEx(Hndl, 0, vbNullString, i)
    ch(i) = SendMessage(H(i), BM_GETSTATE, 0, 0)
    If ch(i) = 512 Then Me.Cls: Me.Print "FOCO BOTON " & i
    If ch(i) = 620 Then
      Me.Cls: Me.Print "CLICK EN BOTON " & i
      x = GetTickCount: While GetTickCount < x + 450: DoEvents: Wend
    End If
  DoEvents
  Next i
   
  If ch(0) = 0 And ch(1) = 0 And ch(2) = 0 And ch(3) = 0 And ch(4) = 0 _
  And ch(5) = 0 And ch(6) = 0 And ch(7) = 0 And ch(8) = 0 And ch(9) = 0 _
  Then Me.Cls: Me.Print "NINGUN BOTON NUMÉRICO TIENE FOCO"
 
Else
   Me.Cls: Me.Print "CALCULADORA CERRADA"
End If

End Sub



Saludos

   
372  Programación / Programación Visual Basic / Re: Enviar Instrucciones a una ventana en: 19 Enero 2009, 16:38 pm
Vamos por partes, primero FindWindows para obtener el Hwnd de la ventana, segundo FindWindowsEx para obtener el Hwnd del boton, caja de texto, etc, y tercero con este Hwnd y SendMessage mandas las intrucciones, si analisas el último codigo que te puse te puede facilitar la tarea.

Saludos

373  Programación / Programación Visual Basic / Re: Enviar Instrucciones a una ventana en: 19 Enero 2009, 16:15 pm
Código:

Option Explicit

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Type POINTAPI: x As Long: y As Long: End Type

Private Sub Form_Load(): Timer1.Interval = 100: End Sub

Private Sub Timer1_Timer()

Call SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, &H2 Or &H1)

Dim Cor As POINTAPI: Dim retorno As Long: retorno = GetCursorPos(Cor)
Dim Handle As Long: Handle = WindowFromPoint(Cor.x, Cor.y)

Dim nombre As String: nombre = String(GetWindowTextLength(Handle), Chr$(0))
Call GetWindowText(Handle, nombre, 100)

Dim ClassName As String: ClassName = Space(256)
Dim ret As Long: ret = GetClassName(Handle, ClassName, 256)
ClassName = Left$(ClassName, ret)


Me.Cls: Me.Print "Nombre control: " & nombre: Me.Print "Nombre Classe: " & ClassName


End Sub




Hacktor, solo pasá el puntero del mouse por donde quieras
 ;)
374  Programación / Programación Visual Basic / Re: Enviar Instrucciones a una ventana en: 19 Enero 2009, 16:03 pm
Gracias por la ayuda, pero ahora otra preguntita mas :D


Como es posible detectar los nombres de Botones, ComboBox, TextBox, ETC de las  aplicaciones que quiero manipular con sendmessage?

Karcrack , quiere saber el nombre de los controles, no la clase

GetWindowText, no GetClassName
375  Programación / Programación Visual Basic / Re: Enviar Instrucciones a una ventana en: 19 Enero 2009, 15:31 pm
'Estas 2 funciones obtienen el Caption de la ventana o control
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" ( _
    ByVal hwnd As Long, _
    ByVal lpString As String, _
    ByVal cch As Long) As Long

' Retorna la cantidad de caracteres del caption de la ventana

Private Declare Function GetWindowTextLength Lib "user32" _
Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long


Código:

Option Explicit

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal Hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal Hwnd As Long) As Long

Private Sub Form_Load()
Me.Caption = "Nombre de ventanas o controles"
End Sub

Private Sub Command1_Click()
Dim nombre As String
nombre = String(GetWindowTextLength(Me.Hwnd), Chr$(0))
Call GetWindowText(Me.Hwnd, nombre, 100)
MsgBox nombre
End Sub


Saludos
376  Programación / Programación Visual Basic / Re: Detect Jmp en: 18 Enero 2009, 01:21 am
Una pregunta, este foro no es español, que se yó , simpre me pareció partició una falta de respeto participar en un foro con idioma "cambiado", pero deben ser "películas" mías.

Saludos

 
377  Programación / Programación Visual Basic / Re: ayuda eliminar archivo varias veces.. en: 17 Enero 2009, 21:14 pm
Para eso estamos, pero es de destacar que Seba siempre aporta codes y de los buenos.

si Seba va para "Jefe del foro", lo votamos, saludos

 
378  Programación / Programación Visual Basic / Re: ayuda eliminar archivo varias veces.. en: 17 Enero 2009, 20:47 pm
Hola, lo que te indica seba está perfecto, pero con la funcion Dir en un timer (5000) no es suficiente ?

If Dir("C:\archivo.txt") <> "" Then Kill "C:\archivo.txt"

Saludos



379  Programación / Programación Visual Basic / Re: PeekMessage, WaitMessage (Ejemplo) en: 12 Enero 2009, 00:13 am
Son buenas, no las conocía.

saludos
380  Programación / Programación Visual Basic / Re: Windows7 (Beta1) y VB 6.0 en: 11 Enero 2009, 22:53 pm
-   NOTICIAS ENERO DE 2009  -
11-01-09
Microsoft ha levantado el límite de 2.5 millones de descargas para la beta de Windows 7
El 9 de enero Microsoft publicó la beta de forma oficial para las primeras 2.5 millones personas que accedieran al enlace de descarga.

Muchas personas quisieron descargar, y los servidores se saturaron, dejando a muchos sin su copia del sistema operativo.

Microsoft, con buen criterio, levantó el límite para que cualquiera pueda descargar su copia de Windows 7 Beta sin problemas y sin limitaciones hasta el 24 de enero. Los enlaces de descarga directa los teneis en las noticias del 10/01/09.

Claves de activación para Windos 7 beta 1
para todos los que habeis descargado la beta 1 de Windows 7, y para los que pensais descargarlos os dejo unas cuantas claves facilitadas por Microsoft para activar la beta 1 hasta agosto de 2009

Estos datos y las claves de activación figuran en el siguiente sitio en las noticias del día 11/01/2009

http://www.mundowindows.com/

'---------------------------------------------------------------
'---------------------------------------------------------------
'---------------------------------------------------------------
EDIT: Activé perfectamente con una de esas claves
'---------------------------------------------------------------
'---------------------------------------------------------------
'---------------------------------------------------------------

 
Páginas: 1 ... 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines