O Flash foi projetado para não permitir que você use a tela cheia enquanto não tiver foco. Provavelmente para impedir que as páginas da web assumam o controle da área de trabalho.
Não posso falar pelo silverlight, mas o flash irá:
- Sempre feche a tela inteira no ESC
- Sempre mencione a tecla ESC na tela cheia
- Sempre perto quando perde o foco
- Nunca inicie pressionando o botão (apenas um clique do mouse)
- Exigir a inicialização de um usuário (o flash não pode iniciar a tela cheia sem um clique do mouse)
É possível alterar um dos arquivos DLL que o flash usa com um editor hexadecimal para mantê-lo aberto. As etapas exatas para alterar a DLL são alteradas a cada versão do flash. Aqui está um link do YouTube , mas para quem acha que assistir a um vídeo de 30 segundos para obter um parágrafo de texto terrivelmente ineficiente, aqui está uma transcrição (parafraseada).
Encontre o NPSWF32.dll (possivelmente em C: \ Windows \ System32 \ macromed \ Flash \ npswf32.dll
Na versão 10.0.22.87, altere 0x136340 de 74 para EB
Na versão 9 é 0xC1487
Na versão 10.0.32.18 é 0x137349
Provavelmente isso será interrompido a cada atualização do flash.