Autor
|
Tema: Enviar mensaje a la consola (Leído 11,128 veces)
|
CH4ØZ
Desconectado
Mensajes: 108
|
bueno tengo un problema usando FindWindow, ya que al parecer estoy cometiendo algun error que se me pasa por alto.
despues de leer un poco y escribir varias veces el codigo no logro enviar un mensaje a la consola (DOS windows), desde mi programa.
alguien me puede dar una mano por favor?
|
|
|
En línea
|
no me juzguen si no me conocen
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
Puedes replantear tu pregunta por favor? No entiendo qué tiene que ver FindWindow con la consola? O también postea esa parte del código a ver si vemos el error.
Un saludo!
|
|
|
En línea
|
|
|
|
CH4ØZ
Desconectado
Mensajes: 108
|
estuve leyendo sobre como enviar un texto a una aplicacion externa a la mia, y encontre que se hace con FindWindow, FindWindowEx y SendMessage o PostMessage. Tube la idea de enviar un mensaje a la consola de comandos de windows para ver si podia, pero al intentarlo no logre nada. aca algunos de los codigos con los que intente (ya que no recuerdo todos): Dim hWnd As Long, tmp As Long 'forma 1: For Each P As Process In Process.GetProcesses If P.ProcessName = "Símbolo del sistema" Then hWnd = P.MainWindowHandle End If Next SendMessage(hWnd, WM_SETTEXT, 0, "texto") 'forma 2: For Each P As Process In Process.GetProcesses If P.ProcessName = "Símbolo del sistema" Then tmp = P.MainWindowHandle End If Next hWnd = GetWindow(tmp, 5) SendMessage(hWnd, WM_SETTEXT, 0, "texto") 'forma 3: hWnd = FindWindow(vbNullString, "Símbolo del sistema") SendMessage(hWnd, WM_SETTEXT, 0, "texto") 'forma 4: tmp = FindWindow(vbNullString, "Símbolo del sistema") hWnd = GetWindow(tmp, 5) SendMessage(hWnd, WM_SETTEXT, 0, "texto")
|
|
|
En línea
|
no me juzguen si no me conocen
|
|
|
CH4ØZ
Desconectado
Mensajes: 108
|
nadie sabe como puedo hacer esto?
|
|
|
En línea
|
no me juzguen si no me conocen
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
Hay una forma más fácil, no se si te funcione, es algo así: [DllImport("user32.dll", EntryPoint = "FindWindow")] private static extern IntPtr FindWindow(string lp1, string lp2); [DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool SetForegroundWindow(IntPtr hWnd); private void Test() { //Una prueba con el notepad IntPtr handle = FindWindow("Notepad", "Untitled - Notepad"); if (!handle.Equals(IntPtr.Zero)) { if (SetForegroundWindow(handle)) { SendKeys.Send("Hello World!"); SendKeys.Send("{ENTER}"); } } }
Lo que hace es activar a esa ventana, y enviar texto como si fuese del teclado. Si no, la forma en que tu lo planteas es algo así: private const int WM_SETTEXT = 0x000C; [DllImport("user32.dll")] private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("User32.dll")] private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindows); [DllImport("User32.dll")] private static extern Int32 SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, StringBuilder lParam); private void Test() { IntPtr hWnd = FindWindow("Notepad", "Untitled - Notepad"); if (!hWnd.Equals(IntPtr.Zero)) { IntPtr edithWnd = FindWindowEx(hWnd, IntPtr.Zero, "Edit", null); if (!edithWnd.Equals(IntPtr.Zero)) SendMessage (edithWnd, WM_SETTEXT, IntPtr .Zero, new StringBuilder ("Hello World!")); } }
|
|
|
En línea
|
|
|
|
CH4ØZ
Desconectado
Mensajes: 108
|
mira perdon que no sea tan bueno, pero no logro que el codigo funcione. lo pase a vb.net asi y no anda: Public Sub test() Dim hWnd As Long hWnd = FindWindow("Notepad", "Untitled - Notepad") If hWnd.Equals(IntPtr.Zero) <> 0 Then Dim edithWnd As Long = FindWindowEx(hWnd, IntPtr.Zero, "Edit", vbNull) If edithWnd.Equals(IntPtr.Zero) <> 0 Then SendMessage(edithWnd, WM_SETTEXT, IntPtr.Zero, "Hello World!") End If End Sub
|
|
|
En línea
|
no me juzguen si no me conocen
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
Te da algún mensaje de error o algo?
|
|
|
En línea
|
|
|
|
CH4ØZ
Desconectado
Mensajes: 108
|
puse un try aver si podia tener mas info, pero no. simplemente no envia el mensaje, compila perfecto :S
|
|
|
En línea
|
no me juzguen si no me conocen
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
Con cualquier aplicación funciona bien, pero con la consola no, al parecer Windows no deja hacer eso. Tiene los mensajes Protegidos, aún no le he encontrado solución
|
|
|
En línea
|
|
|
|
CH4ØZ
Desconectado
Mensajes: 108
|
de ultima si no agregame al msn asi podriamos hablar mejor. mi idea era enviar un texto X a la consola, no importaba la forma, pero no logro hayar la solucion. mi msn es the_chaoz92@hotmail.com
|
|
|
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,390
|
1 Marzo 2011, 16:33 pm
por anonimo12121
|
|
|
Enviar mensaje sockets
Programación C/C++
|
Stereo
|
0
|
2,445
|
19 Noviembre 2011, 12:20 pm
por Stereo
|
|
|
Validar ingreso correcto con mensaje en consola...
.NET (C#, VB.NET, ASP)
|
DanielPy
|
3
|
3,810
|
13 Mayo 2013, 19:37 pm
por DanielPy
|
|
|
Mensaje personalizado modo consola en c#
.NET (C#, VB.NET, ASP)
|
DanielPy
|
2
|
2,646
|
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,487
|
12 Junio 2019, 06:58 am
por Meta
|
|