Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-03-2004
Avatar de Nathan
Nathan Nathan is offline
Miembro
 
Registrado: feb 2004
Ubicación: NeverLand
Posts: 35
Poder: 0
Nathan Va por buen camino
Post Ocultar Iconos

Hola a todos
sabe alguien como puedo ocultar los iconos que aparecen al lado del reloj (como el msn, yahoo y otros )a traves de mi aplicacion, tambien si es posible cambiar estos iconos por otros ..




Saludos .... Nathan.
Responder Con Cita
  #2  
Antiguo 17-03-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Mmmmm... no creo que te sirva, pero esto oculta todo el panel:
Código:
var
  hTrayWnd,
  hTryNotify: HWND;
begin
 hTrayWnd := FindWindow('Shell_TrayWnd',nil);
 if hTrayWnd <> 0 then
 begin
   hTryNotify := FindWindowEx(hTrayWnd, 0, 'TrayNotifyWnd', nil);
   if hTryNotify <> 0 Then
     ShowWindow(hTryNotify, SW_HIDE);
 end;
end;
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 17-03-2004
Avatar de Nathan
Nathan Nathan is offline
Miembro
 
Registrado: feb 2004
Ubicación: NeverLand
Posts: 35
Poder: 0
Nathan Va por buen camino
de todas formas gracias delphi.com.ar


Nathan.
Responder Con Cita
  #4  
Antiguo 18-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Por lo que veo, el área que almacena los iconos no es otra cosa que una Toolbar. Partiendo de lo dicho por delphi.com.ar encuentras el identificador de dicha barra:

Código:
hToolbar := FindWindowEx(hTryNotify, 0, 'ToolbarWindow32', nil);
y ahora puedes comenzar a mandarle mensajes a esta ventana tales como TB_DELETEBUTTON o TB_HIDEBUTTON, por ejemplo:

Código:
SendMessage(hToolBar, TB_HIDEBUTTON, 3, 1)
ocultará el botón número 3 mientras que

Código:
SendMessage(hToolBar, TB_HIDEBUTTON, 3, 0)
lo mostrará de nuevo.

El mensaje TB_CHANGEBITMAP te servirá para cambiar el bitmap.

Este último no lo he probado pero los dos primeros sí y han funcionado.

La dificultad aquí es hallar el número de botón correcto. En principio parecería que van numerados desde cero de izquierda a derecha pero puede no ser así ya que, por ejemplo, si le mando el mensaje TB_BUTTONCOUNT me devuelve un número de botones mayor a los que veo.

Además al ocultarlo o borrarlo queda el hueco, es decir, el tamaño de esta área de iconos no se reajusta solo. Sin embargo vi por ahí y sí funciona, que si insertas tú mismo un icono, el área se reajusta. Aunque el efecto no es muy nítido puedes insertar e inmediatamente quitar un icono 'de palo' cada vez que ocultes o vuelvas a mostrar iconos.

Por supuesto que no está de más mencionar que estos iconos no son sólo dibujitos sino que son puntos de entrada a ciertas aplicaciones de manera que el quitarlos podría en algunos casos traer consecuencias inesperadas.

Pero en fin, ya tienes con que empezar a jugar

Para mayor información busca en la ayuda del sdk de Windows acerca del control Toolbar para que veas qué mensajes puedes mandar.

// Saludos
Responder Con Cita
  #5  
Antiguo 18-03-2004
Avatar de Nathan
Nathan Nathan is offline
Miembro
 
Registrado: feb 2004
Ubicación: NeverLand
Posts: 35
Poder: 0
Nathan Va por buen camino
Thumbs up

Gracias ....




Nathan.
Responder Con Cita
  #6  
Antiguo 22-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Nathan

Respecto del mensaje privado que me mandaste dos cosas:

1. Es absolutamente imposible de leer. El código no sólo no está indentado sino que salió todo en una sola línea.

2. No me es posible responder de forma privada.

Vuelve a colocar aquí tu mensaje y con gusto intentaremos ayudarte. El objetivo de estos foros es ayudar a todos los que pudieran estar interesados en un determinado tema, cosa que no es posible tratando los mensajes de forma privada.

// Saludos
Responder Con Cita
  #7  
Antiguo 23-03-2004
Avatar de Nathan
Nathan Nathan is offline
Miembro
 
Registrado: feb 2004
Ubicación: NeverLand
Posts: 35
Poder: 0
Nathan Va por buen camino
Hola roman
parece que el anterior post no salio,pero va de nuevo
lo que pasa es que ya probe con este codigo pero no oculta el icono.


var
hTrayWnd, hToolbar, TB_HIDEBUTTON,
hTryNotify: HWND;
begin
hTrayWnd := FindWindow('Shell_TrayWnd',nil);
if hTrayWnd <> 0 then
begin
hTryNotify := FindWindowEx(hTrayWnd, 0, 'TrayNotifyWnd', nil);
hToolbar := FindWindowEx(hTryNotify, 0, 'ToolbarWindow32', nil);
if hTryNotify <> 0 Then
SendMessage(hToolBar, TB_HIDEBUTTON, 3, 1);
// ShowWindow(hTryNotify, SW_HIDE);
end;
end;




ademas TB_HIDEBUTTON sale que no fue inicializada, que es lo que estoy haciendo mal



Saludos ..... Nathan.
Responder Con Cita
  #8  
Antiguo 23-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
TB_HIDEBUTTON no es una variable. Es una constante y se encuentra definida en la unidad CommCtrl al igual que los otros mensajes que te mencioné antes.

Nuevamente te recomiendo consultar el SDK de Windows para mayor referencia acerca de controles Toolbar.

No estaría mal tampoco un repaso a la función SendMessage y la manera en que Windows procesa mensajes. Sé que normalmente uno no lidia con esto en Delphi pero siempre es bueno saber de estos temas.

// Saludos

pd: aprende a usar la etiqueta code para cuando escribas mensajes en el foro.
Responder Con Cita
  #9  
Antiguo 24-03-2004
gynch gynch is offline
Miembro
 
Registrado: mar 2004
Posts: 13
Poder: 0
gynch Va por buen camino
existe una clave en el registro para hacer estas cosas.

Key:[HKEY_USER\...\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
Value Name: NoTrayContextMenu
Data Type: REG_DWORD
Data:(0 = disabled, 1 = enabled)

Responder Con Cita
  #10  
Antiguo 24-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Esta clave inhabilita los menús contextuales mas no oculta los iconos.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:13:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi