Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ZEALOT

#11
Programación Visual Basic / Re: Sendkeys
20 Agosto 2005, 19:15 PM
como veo que no pudiste, pos ahi te mando los proyectos:
he agregado una que otra funcion adicional.

http://www.mundointeractivo.net/rpm/TODO.rar
#12
Programación Visual Basic / Re: Sendkeys
19 Agosto 2005, 23:04 PM
por cuestiones de tiempo he posteado a lo basto y no pude explicar que es lo que toca hacer, bueno entonces ahi va la explicacion:

en un pimer proyecto(programa1) pega el codigo que te he escrito en el form de ese proyecto pon un timer con un intervalo de 1000 y enabled=false, pon tambien un commad button y un label y por ultimo DEBES cambiarle el caption al formulario.

en el segundo proyecto(programa2) pon simplemente una caja de texto, y ponle el caption deseado al form, cuando hayas puesto caption al form, en el codigo del programa1(proyecto1) cambia donde dice: hWnd1 = FindWindow(vbNullString, "Form1")<---- "Form1" por tu caption del programa2.

luego arranca o ejecuta los dos programas y presiona el command button y saldra en el label si el programa1 ha encontrado la ventana del programa2, cada 1 segundo el timer del programa1 va revisar si esta la ventana del programa2 para espiar la caja de texto de este.

del codigo del modulo puedes quitar las siguientes lineas: "MsgBox "Bien3 " & jaja" Y "MsgBox "Bien2"  & nCount", como te digo apenas si alcancè a hacer el codigo y postear, me estaban hechando del computer  ;D en lo referente a "MsgBox "Bien4 " & texto.sItemText" la variable texto o mejor la estructura texto tiene un miembro que es sItemText por eso puse "texto.sItemText" como podras ver mas arriba està la declaracion de la estructura en el modulo:
Type LV_TEXT
    sItemText As String * 80
End Type

y mas abajo declaramos texto "texto As LV_TEXT", usted dira: porque hizo una estructura y no una variable tipo string?, pues facil si la pongo tipo string como casi todos sabemos en vb el tipo de datos string tiene un formato diferente al conocido en c/c++, y haciendo una estructura nos referimos a una direccion de memoria ni siquiera funcionaria poniendo StrPtr(varString) que es un puntero a string en vb, y este es otro programa diferente al que postee en el thread que le di, me voy porque otra vez me estan hechando otra vez  ::) :'(
#13
Programación Visual Basic / Re: Sendkeys
19 Agosto 2005, 19:04 PM
CitarEl problema está en que yo puedo ver si el número es correcto o no porque me lo dice el segundo Testbox del programa 1, pero el Programa 2 no se como hacer para que lea lo que pone en el segundo Textbox (que pone bien o mal).

¿Como puedo captar el valor del Textbox (programa 1) desde el programa 2?

este es mas o menos el codigo, para una explicacion mas detallada de esto ve a este thread donde explico un poco deestas apis: http://foro.elhacker.net/index.php/topic,82701.0.html

======EN UN MODULO======
Option Explicit
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Const WM_GETTEXT = &HD
Public Const WM_GETTEXTLENGTH = &HE
Type LV_TEXT
    sItemText As String * 80
End Type
Public CajaTexto As Long
Public Function Procesos(ByVal hWnd2 As Long, lParam As String) As Boolean
Dim Nombre As String * 255, nombreClase As String * 255
Dim Nombre2 As String, nombreClase2 As String, texto As LV_TEXT ' * 255
Dim X As Long, Y As Long, nCount As Long, jaja As Long
X = GetWindowText(hWnd2, Nombre, 255)
Y = GetClassName(hWnd2, nombreClase, 255)

Nombre = Left(Nombre, X)
nombreClase = Left(nombreClase, Y)
Nombre2 = Trim(Nombre)
nombreClase2 = Trim(nombreClase)
If nombreClase2 = "ThunderRT6TextBox" And Nombre2 = "Text1" Then
   MsgBox "Bien"
   CajaTexto = hWnd2
   nCount = SendMessage(hWnd2, WM_GETTEXTLENGTH, 0, 0&)
   MsgBox "Bien2 " & nCount
   If nCount = 0 Then Exit Function
   jaja = SendMessage(hWnd2, WM_GETTEXT, nCount + 1, texto)
   MsgBox "Bien3 " & jaja
   MsgBox "Bien4 " & texto.sItemText
   Exit Function
End If
If Nombre2 = "" And nombreClase2 = "" Then
Procesos = False
Else
Procesos = True
End If
End Function

=====EN UN FORM=======
Dim hWnd1 As Long

Private Sub Command1_Click()
hWnd1 = 0
If Ventana = True Then
    EnumChildWindows hWnd1, AddressOf Procesos, 1 'lParam
Else
    hWnd1 = 0
    CajaTexto = 0
End If
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
If hWnd1 <> 0 Then
    Label1.Caption = "Encontrada"
    Call Procesos(CajaTexto, 0)
    EnumChildWindows hWnd1, AddressOf Procesos, 1 'lParam
Else
    Label1.Caption = "PAILAS"
    hWnd1 = 0
    CajaTexto = 0
    Timer1.Enabled = False
    Call Command1_Click
End If
End Sub

Private Function Ventana() As Boolean
hWnd1 = FindWindow(vbNullString, "Form1")
If hWnd1 > 0 Then Ventana = True
End Function

=========================
poner un textbox, timer con intervalo de 1000 y enabled=false, y un boton, y haz otro programa cambiale a este el caption
bye
#14
recuerden que en el nuevo office los macros se manejan por medio de certificados y firmas de seguridad para podersen compartir con otros computadores, es por tal razon que desaparecieron los virus macros, pero si tienes un office antiguo pos es recomendable...

;)