Foro de elhacker.net

Programación => .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
  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


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.
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.


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!!