| 
	
		|  Autor | Tema: Enviar mensaje a la consola  (Leído 11,963 veces) |  
	| 
			| 
					
						| seba123neo | 
 
Hola, proba esto: Public Class Form1     Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer    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    Private Const WM_CHAR = &H102     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Dim vHwnd As Integer        Dim vTexto As String = "Holaaaaaaaaaaaaaaaa como va?"         vHwnd = FindWindow("ConsoleWindowClass", vbNullString)         For i As Integer = 1 To Len(vTexto)            PostMessage(vHwnd, WM_CHAR, Asc(Mid(vTexto, i, 1)), 0&)        Next i         PostMessage(vHwnd, WM_CHAR, Asc(vbCr), 0&)        PostMessage(vHwnd, WM_CHAR, Asc(vbLf), 0&)    End SubEnd Class
 saludos.
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| CH4ØZ 
								
								 Desconectado 
								Mensajes: 108
								
								   | 
 
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 
								Mensajes: 496
								
								 
								Nothing
								
								
								
								
								
								   | 
 
Si estás en Vb.Net las declaraciones de las api's son diferentes, prueba así, ya a mi me funciono, deberia servir ._. Imports System.Runtime.InteropServices Public Class Form1     <DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)> _Private Shared Function FindWindowByClass( _ ByVal lpClassName As String, _ ByVal zero As IntPtr) As IntPtr    End Function     <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As String, ByVal lParam As String) As IntPtr    End Function     Private WM_SETTEXT As Long = &HC     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load         Dim ConsoleHandle As IntPtr = FindWindowByClass("ConsoleWindowClass", IntPtr.Zero)         If ConsoleHandle <> IntPtr.Zero Then            SendMessage(ConsoleHandle, WM_SETTEXT, 0, "Hello")        End If     End Sub 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 
								Mensajes: 1.646
								
								 
								My software never has bugs. Its just features!
								
								
								
								
								
								     | 
 
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 | 
 
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 | 
 
 |  |  |  | 
			| 
					
						| CH4ØZ 
								
								 Desconectado 
								Mensajes: 108
								
								   | 
 
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 
								Mensajes: 1.646
								
								 
								My software never has bugs. Its just features!
								
								
								
								
								
								     | 
 
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 | 
 
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 FunctionPostMessage Function saludos. |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| CH4ØZ 
								
								 Desconectado 
								Mensajes: 108
								
								   | 
 
muchas gracias a todos por su ayuda. pueden cerrar el topic si quieren. |  
						| 
								|  |  
								|  |  En línea | 
 
 no me juzguen si no me conocen |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | [c++]Code mensaje en consola vertical [Arreglado] Programación C/C++
 | anonimo12121 | 2 | 6,778 |  1 Marzo 2011, 16:33 pm por anonimo12121
 |  
						|   |   | Enviar mensaje sockets Programación C/C++
 | Stereo | 0 | 2,629 |  19 Noviembre 2011, 12:20 pm por Stereo
 |  
						|   |   | Validar ingreso correcto con mensaje en consola... .NET (C#, VB.NET, ASP)
 | DanielPy | 3 | 4,420 |  13 Mayo 2013, 19:37 pm por DanielPy
 |  
						|   |   | Mensaje personalizado modo consola en c# .NET (C#, VB.NET, ASP)
 | DanielPy | 2 | 2,879 |  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 | 5,146 |  12 Junio 2019, 06:58 am por Meta
 |    |