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


 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario  (Leído 6,422 veces)
777Rubenix777

Desconectado Desconectado

Mensajes: 150



Ver Perfil
[VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
« en: 19 Junio 2010, 17:57 »

Hola.. estoy creando un proyecto y necesito saber si se puede abrir dentro de un formulario una ventana de MS-DOS como si fuera MDI.
Bueno muchas gracias!! Un abrazo!!


En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
« Respuesta #1 en: 19 Junio 2010, 18:37 »

Puedes intentar con la API SetWindowParent :P aunque no se si lo deja como MDI


En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.647


My software never has bugs. Its just features!


Ver Perfil WWW
Re: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
« Respuesta #2 en: 19 Junio 2010, 18:40 »

Raul xD haha justo estaba posteando y me salio que se ha escrito un mensaje mientras escribía xD LOL

Bueno ahí te va xD


Código
  1. public partial class Form1 : Form
  2. {
  3.    [DllImport("User32", CharSet = CharSet.Auto, ExactSpelling = true)]
  4.    internal static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndParent);
  5.  
  6.  
  7.    [DllImport("user32.dll")]
  8.    private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
  9.  
  10.    Process m_process;
  11.    public Form1()
  12.    {
  13.        InitializeComponent();
  14.        ProcessStartInfo procesInfo = new ProcessStartInfo("calc.exe");
  15.        m_process = Process.Start(procesInfo);
  16.    }
  17.    protected override void OnShown(EventArgs e)
  18.    {
  19.        IntPtr calcHandle = FindWindow("CalcFrame", null);
  20.        SetParent(calcHandle, this.Handle);
  21.    }
  22.    protected override void OnClosing(CancelEventArgs e)
  23.    {
  24.        m_process.Kill();
  25.    }
  26.  
  27. }

EDIT: Para dejarlo como MDI crea un MDI normal, y luego en SetParent pasas el handle de la ventana child del MDI..

Saludos
« Última modificación: 19 Junio 2010, 18:42 por D4N93R » En línea

777Rubenix777

Desconectado Desconectado

Mensajes: 150



Ver Perfil
Re: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
« Respuesta #3 en: 19 Junio 2010, 18:42 »

>>Muxas gracias voy ha probar y os digo!!!
Pueden decirme como coloco el codigo.. jeje y que debo hacer??
.. :S
« Última modificación: 19 Junio 2010, 20:11 por 777Rubenix777 » En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.647


My software never has bugs. Its just features!


Ver Perfil WWW
Re: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
« Respuesta #4 en: 19 Junio 2010, 22:41 »

En esta linea, colocas el nombre del proceso que quieres usar, en este caso es calc.exe, pero puede ser cualquiera.
Código:
ProcessStartInfo procesInfo = new ProcessStartInfo("calc.exe");


Y en este, colocas el nombre de la clase de la ventana, esto lo puedes encontrar usando Spy++. Sobre el uso de Spy++ hay mucho en internet (busca en google, ask, bing,etc)
Código:
IntPtr calcHandle = FindWindow("CalcFrame", null);

Y listo, con eso te debería funcionar.
En línea

777Rubenix777

Desconectado Desconectado

Mensajes: 150



Ver Perfil
Re: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
« Respuesta #5 en: 20 Junio 2010, 20:01 »

Muchas Gracias!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines