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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Enviar mensaje a la consola
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Enviar mensaje a la consola  (Leído 7,987 veces)
seba123neo


Desconectado Desconectado

Mensajes: 3.621


"No quiero creer, quiero saber" - Carl Sagan


Ver Perfil WWW
Re: Enviar mensaje a la consola
« Respuesta #10 en: 8 Agosto 2010, 02:05 am »

Hola, proba esto:

Código
  1. Public Class Form1
  2.  
  3.    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
  4.    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
  5.    Private Const WM_CHAR = &H102
  6.  
  7.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  8.        Dim vHwnd As Integer
  9.        Dim vTexto As String = "Holaaaaaaaaaaaaaaaa como va?"
  10.  
  11.        vHwnd = FindWindow("ConsoleWindowClass", vbNullString)
  12.  
  13.        For i As Integer = 1 To Len(vTexto)
  14.            PostMessage(vHwnd, WM_CHAR, Asc(Mid(vTexto, i, 1)), 0&)
  15.        Next i
  16.  
  17.        PostMessage(vHwnd, WM_CHAR, Asc(vbCr), 0&)
  18.        PostMessage(vHwnd, WM_CHAR, Asc(vbLf), 0&)
  19.    End Sub
  20. End Class

saludos.


En línea

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson
CH4ØZ

Desconectado Desconectado

Mensajes: 108



Ver Perfil
Re: Enviar mensaje a la consola
« Respuesta #11 en: 8 Agosto 2010, 11:59 am »

no anda seba, a pesar de que cambie el "Dim vHwnd As Integer" por "As Long"  me  sigue diciendo que se proboca un desbordamiento en:
"PostMessage(vHwnd, WM_CHAR, Asc(Mid(vTexto, i, 1)), 0&)"

y no termino de entender porque.

alguien tiene otra idea?


En línea

no me juzguen si no me conocen
Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: Enviar mensaje a la consola
« Respuesta #12 en: 8 Agosto 2010, 17:27 pm »

Si estás en Vb.Net las declaraciones de las api's son diferentes, prueba así, ya a mi me funciono, deberia servir ._.

Código
  1. Imports System.Runtime.InteropServices
  2.  
  3. Public Class Form1
  4.  
  5.    <DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)> _
  6. Private Shared Function FindWindowByClass( _
  7. ByVal lpClassName As String, _
  8. ByVal zero As IntPtr) As IntPtr
  9.    End Function
  10.  
  11.    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
  12. Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As String, ByVal lParam As String) As IntPtr
  13.    End Function
  14.  
  15.    Private WM_SETTEXT As Long = &HC
  16.  
  17.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  18.  
  19.        Dim ConsoleHandle As IntPtr = FindWindowByClass("ConsoleWindowClass", IntPtr.Zero)
  20.  
  21.        If ConsoleHandle <> IntPtr.Zero Then
  22.            SendMessage(ConsoleHandle, WM_SETTEXT, 0, "Hello")
  23.        End If
  24.  
  25.    End Sub
  26.  
  27. End Class

En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Enviar mensaje a la consola
« Respuesta #13 en: 8 Agosto 2010, 17:48 pm »

Sï, probé el code de seba123neo y funciona bien, lo que hace es emular el teclado, yo lo que intentaba era mandarle el texto completo. xD

Buena idea seba!

Saludos!
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621


"No quiero creer, quiero saber" - Carl Sagan


Ver Perfil WWW
Re: Enviar mensaje a la consola
« Respuesta #14 en: 8 Agosto 2010, 22:06 pm »

no anda seba, a pesar de que cambie el "Dim vHwnd As Integer" por "As Long"  me  sigue diciendo que se proboca un desbordamiento en:
"PostMessage(vHwnd, WM_CHAR, Asc(Mid(vTexto, i, 1)), 0&)"

y no termino de entender porque.

alguien tiene otra idea?

mira a mi me funciona bien, no cambies las declaraciones ni nada porque asi como estan , estan bien, As Long ya no es necesario ahora lo que antes era Long en visual basic 6 se pones As Integer ya que cambiaron los tipos de datos, lo mismo para las api's...por curiosidad que windows tenes?

saludos.
En línea

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson
CH4ØZ

Desconectado Desconectado

Mensajes: 108



Ver Perfil
Re: Enviar mensaje a la consola
« Respuesta #15 en: 9 Agosto 2010, 04:05 am »

XP 9.5, lo probe en una aplicacion de 0 y funciona perfecto, asi que voy a ver que puedo tener mal en la otra. gracias seba.

solo me quedo una duda, cual es la diferencia entre SendMessage y PostMessage
« Última modificación: 9 Agosto 2010, 04:08 am por CH4ØZ » En línea

no me juzguen si no me conocen
[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Enviar mensaje a la consola
« Respuesta #16 en: 9 Agosto 2010, 04:56 am »

Usando SendMessage se espera hasta que la ventana a donde enviaste el mensaje lo procese. En cambio PostMessage no espera a que procesen el mensaje.

Saludos.
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621


"No quiero creer, quiero saber" - Carl Sagan


Ver Perfil WWW
Re: Enviar mensaje a la consola
« Respuesta #17 en: 9 Agosto 2010, 05:08 am »

serian iguales, solo que cuando envias un mensaje con Sendmessage este no retorna el valor hasta que la ventana procesa el mensaje y entonces ahi te devuelve el resultado, en cambio PostMesaage envia el mensaje dejandolo en la cola de mensajes y no espera por la respuesta del mensaje lo retorna inmediatamente.

lo podes ver todo en la MSDN:

SendMessage Function

PostMessage Function

saludos.
En línea

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson
CH4ØZ

Desconectado Desconectado

Mensajes: 108



Ver Perfil
Re: Enviar mensaje a la consola
« Respuesta #18 en: 9 Agosto 2010, 05:15 am »

muchas gracias a todos por su ayuda. pueden cerrar el topic si quieren.
En línea

no me juzguen si no me conocen
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[c++]Code mensaje en consola vertical [Arreglado]
Programación C/C++
anonimo12121 2 5,149 Último mensaje 1 Marzo 2011, 16:33 pm
por anonimo12121
Enviar mensaje sockets
Programación C/C++
Stereo 0 1,686 Último mensaje 19 Noviembre 2011, 12:20 pm
por Stereo
Validar ingreso correcto con mensaje en consola...
.NET (C#, VB.NET, ASP)
DanielPy 3 2,371 Último mensaje 13 Mayo 2013, 19:37 pm
por DanielPy
Mensaje personalizado modo consola en c#
.NET (C#, VB.NET, ASP)
DanielPy 2 1,498 Último mensaje 18 Julio 2013, 17:58 pm
por DanielPy
¿Cómo puedo leer el mensaje de un email y mostrarlo en la consola?
.NET (C#, VB.NET, ASP)
Meta 1 911 Último mensaje 12 Junio 2019, 06:58 am
por Meta
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines