Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: 777Rubenix777 en 19 Junio 2010, 17:57 PM

Título: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
Publicado por: 777Rubenix777 en 19 Junio 2010, 17:57 PM
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!!
Título: Re: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
Publicado por: raul338 en 19 Junio 2010, 18:37 PM
Puedes intentar con la API SetWindowParent :P aunque no se si lo deja como MDI
Título: Re: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
Publicado por: [D4N93R] en 19 Junio 2010, 18:40 PM
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 (csharp) [Seleccionar]
public partial class Form1 : Form
{
   [DllImport("User32", CharSet = CharSet.Auto, ExactSpelling = true)]
   internal static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndParent);

       
   [DllImport("user32.dll")]
   private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

   Process m_process;
   public Form1()
   {
       InitializeComponent();
       ProcessStartInfo procesInfo = new ProcessStartInfo("calc.exe");
       m_process = Process.Start(procesInfo);
   }
   protected override void OnShown(EventArgs e)
   {
       IntPtr calcHandle = FindWindow("CalcFrame", null);
       SetParent(calcHandle, this.Handle);
   }
   protected override void OnClosing(CancelEventArgs e)
   {
       m_process.Kill();
   }

}


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

Saludos
Título: Re: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
Publicado por: 777Rubenix777 en 19 Junio 2010, 18:42 PM
>>Muxas gracias voy ha probar y os digo!!!
Pueden decirme como coloco el codigo.. jeje y que debo hacer??
.. :S
Título: Re: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
Publicado por: [D4N93R] en 19 Junio 2010, 22:41 PM
En esta linea, colocas el nombre del proceso que quieres usar, en este caso es calc.exe, pero puede ser cualquiera.
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)
IntPtr calcHandle = FindWindow("CalcFrame", null);

Y listo, con eso te debería funcionar.
Título: Re: [VB.NET]Como puedo conseguir abrir una ventana de MS-DOS dentro de Formulario
Publicado por: 777Rubenix777 en 20 Junio 2010, 20:01 PM
Muchas Gracias!!