Pergunta

Por design, a miniatura aplicativo barra de ferramentas no Vista não atualiza quando um aplicativo é minimizado, já que a própria janela minimizada não está redesenhando. Para um aplicativo de monitoramento que tenho, seria útil para atualizar o aplicativo em miniatura, enquanto os restos aplicativo minimizado. Estou usando o Delphi 2009. Alguém pode sugerir uma boa solução para isso?

HMcG

Foi útil?

Solução

Isso é interessante eu acho que é possível, de alguma forma com a API do Windows, eu não estou em uma máquina de vista no momento, mas eu acho que o Windows Media Player ainda mostra a reprodução de vídeo quando minimizado.

Suponho que um hack seria para substituir o botão minimizar e mover o formulário fora da tela, em seguida, detectar a forma a tornar-se novamente ativo e movê-lo de volta para o local antigo. Isto significaria a forma está fora de vista, mas não minimizado.

Outras dicas

algo em um fórum de desenvolvimento Microsoft que aborda esse tema. A pergunta era sobre uma forma de proporcionar um costume miniatura da imagem, para o qual a Microsoft Leonardo Blanco respondeu com o seguinte:

Nós fazemos não [o] plano para fornecer um meio para um aplicativo para criar um alternativa costume miniatura de representação, mas vamos fornecer uma API de optar por não a imagem em miniatura normais completamente ....

Parece que esses planos podem ter mudado, entretanto, a julgar pela existência no MSDN das funções DwmSetIconicLivePreviewBitmap e DwmSetIconicThumbnail para o Windows 7. agora as entradas realmente não contém quaisquer explicações, mas seus nomes parecem promissores.

Alguém apontou que a miniatura para shows do Windows Media Player de vídeo, mesmo quando a janela é minimizada em movimento. A explicação de Blanco:

WMP usa um novo gasoduto vídeo que fala diretamente ao [Desktop Window Manager] para conseguir uma reprodução mais suave experiência. Este gasoduto conta com [DirectX] e não faz dependem de informações visibilidade janela, de modo a miniatura pode ser mantido mesmo vivo, embora a janela é minimizada, como desde que o aplicativo continua a enviar quadros. Você pode notar, no entanto, que a interface do usuário ao redor do vídeo não é viver mais (Isso é complicado de observar porque a interface do usuário ao redor do vídeo não costuma atualizar). Para uma informação pouco mais sobre este método, veja a DwmSetPresentParameters API.

Eu tenho medo que eu não consigo encontrar nada mais sobre isso. Documentação para funções DWM é escassa.

Dada a natureza da sua aplicação, talvez vale a pena considerar um Gadget a viver na barra lateral do Windows.

Eu não sei se esta solução alternativa ainda funciona em Delphi 2009: CreateParams substituição para conjunto GetDesktopWindow como o WndParent.

Eu mudei Application.Title no passado para mostrar alguma informação no botão da barra de tarefas. Eu não suponho que isso faz com que um redesenho do ícone?

Em Delphi 2007 seu formulário principal é na barra de tarefas se você definir

  Application.MainFormOnTaskbar := True;

Para mantê-lo atualizando, então você precisa impedir que seu aplicativo minimizando e simplesmente movê-lo para trás. Você pode fazer isso colocando um TApplicationEvents no formulário e atribuir um manipulador de eventos para o OnMinimize evento e, em seguida, chamar Application.Restore lá. Você vai querer acompanhar o seu próprio estado minimização e certifique-se de esconder todas as outras formas (se os tiver) e apenas ter o seu principal forma visível, mas com o menor Z-ordem quando é "minimizada".

Eu não acho que o Windows Vista permite mover formas para fora da tela, ou você pode simplesmente fazer isso. Talvez haja um corte em torno disso.

Boa sorte!

ir para o seu projeto de código e alterar Application.MainFormOnTaskbar como false: Application.MainFormOnTaskbar: = false;

Saudações, Mauricio

http://sourceforge.net/projects/tcycomponents/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top