Autor
|
Tema: Enviar mensaje a la consola (Leído 11,180 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 Sub End 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 Functionsaludos.
|
|
|
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,436
|
1 Marzo 2011, 16:33 pm
por anonimo12121
|
|
|
Enviar mensaje sockets
Programación C/C++
|
Stereo
|
0
|
2,473
|
19 Noviembre 2011, 12:20 pm
por Stereo
|
|
|
Validar ingreso correcto con mensaje en consola...
.NET (C#, VB.NET, ASP)
|
DanielPy
|
3
|
3,877
|
13 Mayo 2013, 19:37 pm
por DanielPy
|
|
|
Mensaje personalizado modo consola en c#
.NET (C#, VB.NET, ASP)
|
DanielPy
|
2
|
2,659
|
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
|
4,525
|
12 Junio 2019, 06:58 am
por Meta
|
|