Api

21/01/2005 - 20:46 por Cristian | Informe spam
Hola, hace unos dias pedi alguna pagina con funciones de APIs. Ahora tengo
una duda con un ejemplo que vi.
Por ej. para ocultar la TaskBar se hace de la siguiente manera:

[DllImport("User32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("User32.dll")]
public static extern IntPtr FindWindow(string className, string winName);
private void HideTask()
{
ShowWindow(FindWindow("Shell_TrayWnd",null)0);
}

Y al ejecutar HideTask() se oculta la taskbar. Mi pregunta es, de donde
puedo sacar ese nombre de ventana "Shell_TrayWnd".

Gracias

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
22/01/2005 - 10:49 | Informe spam
Cristian,

Lo que tienes es que dejar el código así tal cual, "Shell_TrayWnd" es el
nombre con el que Microsoft ha definido la clase de ventana a la que
pertenece la barra de tareas (y su nombre es una cadena vacía).
FindWindow("Shell_TrayWnd",null) devuelve el handle de ventana de la barra,
y entonces con ShowWindow() la muestras u ocultas.

Slds - Octavio

"Cristian" escribió en el mensaje
news:OIFeHG$$
Hola, hace unos dias pedi alguna pagina con funciones de APIs. Ahora tengo
una duda con un ejemplo que vi.
Por ej. para ocultar la TaskBar se hace de la siguiente manera:

[DllImport("User32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("User32.dll")]
public static extern IntPtr FindWindow(string className, string winName);
private void HideTask()
{
ShowWindow(FindWindow("Shell_TrayWnd",null)0);
}

Y al ejecutar HideTask() se oculta la taskbar. Mi pregunta es, de donde
puedo sacar ese nombre de ventana "Shell_TrayWnd".

Gracias


Respuesta Responder a este mensaje
#2 Cristian
22/01/2005 - 20:22 | Informe spam
Si, eso ya se que lo tengo que dejar asi, asi funciona. Lo que yo quiero
saber es de donde se puedo sacar mas nombres de ventanas como esa
"Shell_TrayWnd", si es que existen mas tipo de ventanas como esas.


"Octavio Hernandez" escribió en el mensaje
news:
Cristian,

Lo que tienes es que dejar el código así tal cual, "Shell_TrayWnd" es el
nombre con el que Microsoft ha definido la clase de ventana a la que
pertenece la barra de tareas (y su nombre es una cadena vacía).
FindWindow("Shell_TrayWnd",null) devuelve el handle de ventana de la
barra, y entonces con ShowWindow() la muestras u ocultas.

Slds - Octavio

"Cristian" escribió en el mensaje
news:OIFeHG$$
Hola, hace unos dias pedi alguna pagina con funciones de APIs. Ahora
tengo
una duda con un ejemplo que vi.
Por ej. para ocultar la TaskBar se hace de la siguiente manera:

[DllImport("User32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("User32.dll")]
public static extern IntPtr FindWindow(string className, string winName);
private void HideTask()
{
ShowWindow(FindWindow("Shell_TrayWnd",null)0);
}

Y al ejecutar HideTask() se oculta la taskbar. Mi pregunta es, de donde
puedo sacar ese nombre de ventana "Shell_TrayWnd".

Gracias






Respuesta Responder a este mensaje
#3 Octavio Hernandez
22/01/2005 - 20:57 | Informe spam
Cristian,

Pues me parece que lo mejor sería no utilizar esos nombres, proque buscando
en la red no he encontrado nada oficial al respecto; si no está documentado
oficialmente, no hay ningún compromiso de Microsoft con respecto a mantener
esos nombres en futuras versiones de Windows.

Encontré este documento con otros nombres de clases:

http://www.swissdelphicenter.ch/tor...ode.php?id‘1

Slds,

Octavio

"Cristian" escribió en el mensaje
news:%
Si, eso ya se que lo tengo que dejar asi, asi funciona. Lo que yo quiero
saber es de donde se puedo sacar mas nombres de ventanas como esa
"Shell_TrayWnd", si es que existen mas tipo de ventanas como esas.


"Octavio Hernandez" escribió en el mensaje
news:
Cristian,

Lo que tienes es que dejar el código así tal cual, "Shell_TrayWnd" es el
nombre con el que Microsoft ha definido la clase de ventana a la que
pertenece la barra de tareas (y su nombre es una cadena vacía).
FindWindow("Shell_TrayWnd",null) devuelve el handle de ventana de la
barra, y entonces con ShowWindow() la muestras u ocultas.

Slds - Octavio

"Cristian" escribió en el mensaje
news:OIFeHG$$
Hola, hace unos dias pedi alguna pagina con funciones de APIs. Ahora
tengo
una duda con un ejemplo que vi.
Por ej. para ocultar la TaskBar se hace de la siguiente manera:

[DllImport("User32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("User32.dll")]
public static extern IntPtr FindWindow(string className, string
winName);
private void HideTask()
{
ShowWindow(FindWindow("Shell_TrayWnd",null)0);
}

Y al ejecutar HideTask() se oculta la taskbar. Mi pregunta es, de donde
puedo sacar ese nombre de ventana "Shell_TrayWnd".

Gracias










Respuesta Responder a este mensaje
#4 Marino Posadas
23/01/2005 - 23:40 | Informe spam
Hola

Pues ahora soy yo el que complemento tu respuesta, Octavio...)))

Más que nada, para comentar cómo se buscaría una clase de ventana en
cualquier circunstancia. En el conjunto de utilidades disponibles que
instala Visual Studio, hay una que se llama Spy++. Si la abres, te mostrará
información de todas las ventanas abiertas, procesos en ejecución, etc. Lo
mejor de todo es que tiene una herramienta llamada Windows Finder, que
muestra un circulito. Puedes arrastrar ese circulo por encima de cualquier
otra ventana del sistema o de otra aplicación, y te irá indicando todos los
datos de esa ventana incluyendo su clase de ventana, que es lo que pide la
función FindWindow() cuando no se le pasa la Caption de esa ventana. Todo
esto es para obtener el manejador de ventana, claro.

Hay más datos en el MSDN en
http://msdn.microsoft.com/library/d...r_tool.asp


Saludos cordiales
Marino Posadas
MVP Visual C#

www.ElAveFenix.net


"Octavio Hernandez" escribió en el mensaje
news:
Cristian,

Pues me parece que lo mejor sería no utilizar esos nombres, proque
buscando en la red no he encontrado nada oficial al respecto; si no está
documentado oficialmente, no hay ningún compromiso de Microsoft con
respecto a mantener esos nombres en futuras versiones de Windows.

Encontré este documento con otros nombres de clases:

http://www.swissdelphicenter.ch/tor...ode.php?id‘1

Slds,

Octavio

"Cristian" escribió en el mensaje
news:%
Si, eso ya se que lo tengo que dejar asi, asi funciona. Lo que yo quiero
saber es de donde se puedo sacar mas nombres de ventanas como esa
"Shell_TrayWnd", si es que existen mas tipo de ventanas como esas.


"Octavio Hernandez" escribió en el mensaje
news:
Cristian,

Lo que tienes es que dejar el código así tal cual, "Shell_TrayWnd" es el
nombre con el que Microsoft ha definido la clase de ventana a la que
pertenece la barra de tareas (y su nombre es una cadena vacía).
FindWindow("Shell_TrayWnd",null) devuelve el handle de ventana de la
barra, y entonces con ShowWindow() la muestras u ocultas.

Slds - Octavio

"Cristian" escribió en el mensaje
news:OIFeHG$$
Hola, hace unos dias pedi alguna pagina con funciones de APIs. Ahora
tengo
una duda con un ejemplo que vi.
Por ej. para ocultar la TaskBar se hace de la siguiente manera:

[DllImport("User32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("User32.dll")]
public static extern IntPtr FindWindow(string className, string
winName);
private void HideTask()
{
ShowWindow(FindWindow("Shell_TrayWnd",null)0);
}

Y al ejecutar HideTask() se oculta la taskbar. Mi pregunta es, de donde
puedo sacar ese nombre de ventana "Shell_TrayWnd".

Gracias














email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida