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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Detectar lo escrito anteriormente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Detectar lo escrito anteriormente  (Leído 1,320 veces)
aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
Detectar lo escrito anteriormente
« en: 23 Julio 2008, 01:58 am »

Hola. Estoy creando una aplicación en la que necesito que, al escribir algo, aparezca un ToolTip que me de información sobre lo que escribo, al estilo de VB. ¿Alguien sabe como detectar si escribí una cierta palabra, y en ese caso mostrar un ToolTip?

P.D.: Lo del ToolTip puedo hacerlo yo.

Gracias de antemano.


En línea

gulabyte

Desconectado Desconectado

Mensajes: 97



Ver Perfil
Re: Detectar lo escrito anteriormente
« Respuesta #1 en: 23 Julio 2008, 02:31 am »


Aunque puede ser una chapuza se me ocurre que crees una especie de keylogger que capte lo que escribas con el tecledo en una variable y si se llega a crear alguna palabra que reaccione de algún modo.

Para capturar las teclas pulsadas puedes usar esto:

Código:
Dim KeyCode As Integer, Written As String

Do
DoEvents

For KeyCode = 8 To 255
        If GetAsyncKeyState(KeyCode) = -32767 Then 'Si la tecla está pulsada retornará el valor -32767
           
            Select Case KeyCode
                    ' carácteres según ASCII
                   
                    Case 32
                    Written = Written & " "
                    'Números (48-57)
                    Case 48
                        If GetShift = True Then
                            Written = Written & "="
                            Else: Written = Written & "0"
                        End If
                    Case 49
                        If GetShift = True Then
                            Written = Written & "!"
                            Else: Written = Written & "1"
                        End If
                    Case 50
                        If GetShift = True Then
                            Written = Written & "''"
                            Else: Written = Written & "2"
                        End If
                    Case 51
                        If GetShift = True Then
                            Written = Written & "·"
                            Else: Written = Written & "3"
                        End If
                    Case 52
                        If GetShift = True Then
                            Written = Written & "$"
                            Else: Written = Written & "4"
                        End If
                    Case 53
                        If GetShift = True Then
                            Written = Written & "%"
                            Else: Written = Written & "5"
                        End If
                    Case 54
                        If GetShift = True Then
                            Written = Written & "&"
                            Else: Written = Written & "6"
                        End If
                    Case 55
                        If GetShift = True Then
                            Written = Written & "/"
                            Else: Written = Written & "7"
                        End If
                    Case 56
                        If GetShift = True Then
                            Written = Written & "("
                            Else: Written = Written & "8"
                        End If
                    Case 57
                        If GetShift = True Then
                            Written = Written & ")"
                            Else: Written = Written & "9"
                        End If
                   
                    'Letras (65-90)
                    Case 65 To 90
                    If GetShift = True Then
                        Written = Written & UCase(Chr$(KeyCode))
                        Else: Written = Written & LCase(Chr$(KeyCode))
                    End If
                   
                    Case 188 'Koma
                    If GetShift = True Then
                        Written = Written & ";"
                        Else: Written = Written & ","
                    End If
                    Case 190 'Punto
                        Written = Written & "."
                    Case 192
                    If GetShift = True Then 'ñ
                        Written = Written & "Ñ"
                        Else: Written = Written & "ñ"
                    End If
                    Case 219 '?
                    If GetShift = True Then
                        Written = Written & "?"
                        Else: Written = Written & "'"
                    End If
                    Case 221 '¿
                     If GetShift = True Then
                        Written = Written & "¿"
                        Else: Written = Written & "¡"
                     End If
            End Select

Next KeyCode
DoEvents
Loop
Lo que hace es comprobar una a una si las teclas están pulsadas pero lo hace infinitesimalmente rápido, aunque escribas muuy rápido te las caza todas. Así puedes ir creando una variable (Written) y añadir la sentencia una sentencia If InStr:

If InStr(1, Written, "fiesta", 1) ' Comparamos los strings para ver si coinciden en algún trozo, si es así nos devolvera la posición donde empieza, y si no está en el string nos devolvera 0. Así vas comparando el string Written por cada letra que se escribe (por cada vez que se cumple la sentencia de GetAssyncKeyState, debajo de él). If Not InStr(1, Written, "fiesta", 1) = 0 Then [tooltiptext].
y te recomendaría crear también una sentencia para vaciar la variable written. If Len(Written) > 200 Then Written = "".

Es lo único que se me ha ocurrido, quiza sea algo parecido lo que hacen los de microsoft para que el visual responda al escribir palabras clave  :laugh: :laugh:, comenta algo si te funciona o no.

Salu10


En línea

aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
Re: Detectar lo escrito anteriormente
« Respuesta #2 en: 23 Julio 2008, 15:00 pm »

Gracis, gulabyte, pero estuve pensando y ahora utilizo este código:

Código
  1. Function Encontrado(Cadena As String, Letra As String) As Boolean
  2. Dim Texto As String
  3. Texto = StrReverse(Cadena)
  4. If Left(Texto, 1) = Letra Then
  5. Encontrado = True
  6. Else
  7. Encontrado = False
  8. End Function
  9.  

Gracias de nuevo y saludos.
« Última modificación: 23 Julio 2008, 15:03 pm por aaronduran2 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Algoritmo escrito en C
Programación C/C++
Kyon-san 7 5,663 Último mensaje 25 Noviembre 2010, 22:04 pm
por ace332
Pc anteriormente windows no Bootea.
Windows
nemx 2 2,177 Último mensaje 21 Agosto 2012, 04:43 am
por Luna71c0
Denuncia el hurto de un iPhone y le detienen por haberlo robado anteriormente
Noticias
wolfbcn 1 1,506 Último mensaje 28 Enero 2013, 13:53 pm
por crazykenny
Un poema escrito en C
Foro Libre
Usuario887 8 3,863 Último mensaje 2 Abril 2021, 14:40 pm
por kub0x
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines