none
cerrar o minimizar ventana activa RRS feed

  • Pregunta

  • Hola a todos...
    Quiero saber como puedo obtener las funciones básica de una ventana activa, a que le llamo ventana activa en la siguiente imagen existe dos ventanas "El explorador de windows" y el "bloc de notas".

    El bloc de notas en este caso es la ventana activa, si quisiera cerrarlo, minimizar, maximizar, etc. como puedo hacer esto...
    1-Obtener cual es la ventana activa.
    2-Manipular esta.

    las ventanas tienen caracteristicas generales como cerrar, minimizar, maximizar, mover, redimencionar y otras que son propias de la misma por ejemplo el explorador de windows tiene la barra de direccion donde podemos obtener la ruta de ese directorio. Pienso que para el objetivo 2, tendria que obtener y tener acceso a estas caracteristicas.

    jueves, 9 de agosto de 2018 14:03

Respuestas

  • Es más complicado de lo que parece. Directamente en C# no hay funciones nativas que accedan a la aplicación activa, así que hay que usar las APIs de Win32 mediante Platform/Invoke.

    Concretamente, comenzarías por llamar a GetActiveWindow para obtener en "handle" de la ventana activa:

    https://msdn.microsoft.com/en-us/library/windows/desktop/ms646292(v=vs.85).aspx

    Para llamarlo desde C# necesitas usar [DllImport] para declarar en C# esa API externa. Con carácter general, esto suele ser complicado de hacer para casi todas as APIs, pero afortunadamente los usuarios ya las han ido recogiendo poco a poco y la mayor parte pueden encontrarse en un sitio que se llama pinvoke.net:

    http://pinvoke.net/search.aspx?search=GetActiveWindow&namespace=[All]

    Una vez que tienes el "handle" de la ventana, se lo puedes pasar a distintas APIs, que no hay más remedio que buscar una por una. Por ejemplo, para usar la función "Move" que normalmente está en el menú de la ventana, se usa SetWindowPos:

    http://pinvoke.net/default.aspx/user32/SetWindowPos.html

    jueves, 9 de agosto de 2018 20:51
    Moderador
  • Hola Artemis Spectrum

    Para que la comunidad  de foros pueda asesorarte de manera correcta es necesario que nos proporciones la siguiente información. 

    1. Si estás realizándolo por medio de Windows Forms o aplicación de Consola ya sea en C# y/o Visual Basic. 

    2. Si ya llevas un avance, por favor colocarlo ya que la única manera en la que podamos asesorarte correctamente.

    Gracias por usar los foros de MSDN.

    Pablo Rubio

     _____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 9 de agosto de 2018 15:32
    Moderador

Todas las respuestas

  • hola no se entiende bien lo que quieres hacer, estas trabajando con winform?? sé más explicito

    a que te refieres con obtener funciones básicas? estas usando visual studio?

    acá te dejo algunos consejos para que tengas en cuenta en las publicaciones

    AYUDANOS A AYUDARTE

    jueves, 9 de agosto de 2018 14:23
  • Hola Artemis Spectrum

    Para que la comunidad  de foros pueda asesorarte de manera correcta es necesario que nos proporciones la siguiente información. 

    1. Si estás realizándolo por medio de Windows Forms o aplicación de Consola ya sea en C# y/o Visual Basic. 

    2. Si ya llevas un avance, por favor colocarlo ya que la única manera en la que podamos asesorarte correctamente.

    Gracias por usar los foros de MSDN.

    Pablo Rubio

     _____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 9 de agosto de 2018 15:32
    Moderador
  • Es más complicado de lo que parece. Directamente en C# no hay funciones nativas que accedan a la aplicación activa, así que hay que usar las APIs de Win32 mediante Platform/Invoke.

    Concretamente, comenzarías por llamar a GetActiveWindow para obtener en "handle" de la ventana activa:

    https://msdn.microsoft.com/en-us/library/windows/desktop/ms646292(v=vs.85).aspx

    Para llamarlo desde C# necesitas usar [DllImport] para declarar en C# esa API externa. Con carácter general, esto suele ser complicado de hacer para casi todas as APIs, pero afortunadamente los usuarios ya las han ido recogiendo poco a poco y la mayor parte pueden encontrarse en un sitio que se llama pinvoke.net:

    http://pinvoke.net/search.aspx?search=GetActiveWindow&namespace=[All]

    Una vez que tienes el "handle" de la ventana, se lo puedes pasar a distintas APIs, que no hay más remedio que buscar una por una. Por ejemplo, para usar la función "Move" que normalmente está en el menú de la ventana, se usa SetWindowPos:

    http://pinvoke.net/default.aspx/user32/SetWindowPos.html

    jueves, 9 de agosto de 2018 20:51
    Moderador