Ver Mensaje Individual
  #3  
Antiguo 22-10-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Je, je, no recordaba cómo obtener el identificador de la barra. Con esa información, podemos usar este procedimiento:

Código Delphi [-]
const
  ABM_SETSTATE = 10;

{
  Modifica la propiedad "siempre visible" de la barra de tareas
  Uso:
    SetTaskBarAlwaysOnTop(true) activa la propiedad
    SetTaskBarAlwaysOnTop(false) desactiva la propiedad
}
procedure SetTaskBarAlwaysOnTop(OnTop: Boolean);
var
  Data: TAppBarData;
  State: Integer;

begin
  // Inicializar estructura de datos
  ZeroMemory(@Data, SizeOf(Data));
  Data.cbSize := SizeOf(Data);

  // Obtener el estado actual de la barra
  State := ShAppBarMessage(ABM_GETSTATE, Data);

  // Prender o apagar la bandera según sea el caso
  if OnTop then
    State := State or ABS_ALWAYSONTOP
  else
    State := State and not ABS_ALWAYSONTOP;

  // Indicar el identificador de la barra
  Data.hWnd := FindWindow('Shell_TrayWnd', nil);

  // Asignar el nuevo estado
  Data.lParam := State;
  ShAppBarMessage(ABM_SETSTATE, Data);
end;

// Saludos
Responder Con Cita