Desfazer Minimizar Tudo!!!
10/03/2006
0
só que, quando chega nesse tempo em minizo tudo usando o código abaixo:
procedure MinimizaTudo; begin keybd_event(VK_LWIN, 0, 0, 0); keybd_event(Ord(´M´), 0, 0, 0); keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0); end;
e depois mostro a tela de aviso, o problema que eu gostaria de quando o cliente clicasse no botão fechar que tenho na minha tela de aviso, ele voltasse tudo novamente, semelhante ao recurso do windows ´Mostrar Área de trabalho´ quando vc clica nele uma vez ele minimiza tudo, quando clica novamente ele volta. Como faço para testar isso? :roll:
Paullsoftware
Posts
10/03/2006
Marco Salles
10/03/2006
Paullsoftware
certo, mais isso não seria apenas para minha aplicação, e as outras janelas? :roll:
10/03/2006
Marco Salles
Ha entendi... então amigo PaullSoftware , a resposta esta mais perto do que voce imagina.
[b:bf65ff8410]o problema que eu vejo , no seu caso e o seguinte:[/b:bf65ff8410]
:cry: :cry: :cry:
[b:bf65ff8410]Quando voce minimiza as todas as janelas , voce logo abre uma outra janela , contendo a mensagem...Certo[/b:bf65ff8410]
:?: :?: :?: :?:
:lol: :lol:
[b:bf65ff8410]Aonde eu quero chegar com tudo isso[/b:bf65ff8410] :?: :?: :?:
Quero , dizer que o seu problema , esta mais perto da solução do que se imagina , mas por outro lado tem que se conhecer o mecanismo que voce faz , nesse processo de fechar janela e abrir janela de mensagem
[b:bf65ff8410]Porque eu estou dizendo isso[/b:bf65ff8410] :?: :?:
:idea: :idea: :idea:
Porque muitos sabem que para minimizar voce pode fazer assim :
:arrow:
keybd_event(VK_LWIN, 0, 0, 0); keybd_event(Ord(´D´), 0, 0, 0); keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
[b:bf65ff8410]repare que uso [color=blue:bf65ff8410]´D´ [/color:bf65ff8410]ao inves De [color=darkblue:bf65ff8410]´M´[/color:bf65ff8410][/b:bf65ff8410]
ou assim :
uses ShlObj; / /No site se encontra esta dica mas se refere a uses ShlObj //que para esse caso não é a correta procedure Shell_MinimizeAll; var Shell : OleVariant; begin Shell := CreateOleObject(´Shell.Application´) ; Shell.MinimizeAll; end;
:idea: :idea: :idea:
[b:bf65ff8410][color=darkred:bf65ff8410]So que o que poucos sabem , é que o conjunto de instruçoes para Maximinizar e também o [color=darkblue]mesmo[/color:bf65ff8410] que para minimizar[/color][/b:bf65ff8410]
keybd_event(VK_LWIN, 0, 0, 0); keybd_event(Ord(´D´), 0, 0, 0); keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
[b:bf65ff8410]e alem disso , isto é equivalente a apertar a tecla do [color=darkblue:bf65ff8410][b]Windows + ´D´ [/b:bf65ff8410][/color:bf65ff8410][/b], :arrow: e se tiver uma so janela aberta , este comando serve para [b:bf65ff8410]Minimizar[/b:bf65ff8410] e :arrow: se todas ou alguma janela estiver minimizada , este comando serve para[b:bf65ff8410] maximizar[/b:bf65ff8410]...
:wink: :wink:
Hora . de posse destas informaçoes valiosas e acredito que seu problema esta 99¬ resolvido.. So não da para eu resolve-lo , porque não tenho todo o processo de minimização e aparecemento da janela mensagem, como e quando isto ocorre etccc..
Agora se pudesse enviar uma mensagem sem que esta fosse uma janela , ai estaria tudo resolvido...
Não sei se esta ultima idéia tem procedencia , acredito que deva ter , mas eu não me lembro de nada parecido
[b:bf65ff8410][color=darkred:bf65ff8410]e não esqueça caso tentar resolver com esta linha de raciocineo de usar o ´D´ ao Inves do ´M´, tanto para minimizar , como para Maximizar[/color:bf65ff8410][/b:bf65ff8410]
boa sorte...
11/03/2006
Paullsoftware
só lembrava do win+m :wink:
11/03/2006
Marco Salles
:cry: :cry: :cry:
Para minimizar... Disse para usar ShlObj e ainda disse que ShlObj qu não é correta para esta dica
[b:5f8c2b2862]O Certo e usar ComObj; e deveria ter escrito assim :[/b:5f8c2b2862]
13/03/2006
Paullsoftware
tipo, antes da minha tela de login ser aberta faço...
procedure MinimizaTudo; begin keybd_event(VK_LWIN, 0, 0, 0); keybd_event(Ord(´D´), 0, 0, 0); keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0); end;
MinimizaTudo;//daí vai minimizar todas as janelas, mais, tem como saber se elas já estão minimizadas? :lol:
13/03/2006
Adriano Santos
uses ComObj; / /No site se encontra esta dica mas se refere a uses ShlObj //que para esse caso não é a correta procedure Shell_MinimizeAll; var Shell : OleVariant; begin Shell := CreateOleObject(´Shell.Application´) ; Shell.MinimizeAll; end;
[/quote:0ee5e3dfed]
Caramba [b:0ee5e3dfed]Marcos[/b:0ee5e3dfed] muito bem proposta a solução, achei loko isso. Não sabia que dava pra fazer assim.
13/03/2006
Marco Salles
http://forum.devmedia.com.br/viewtopic.php?t=47113&highlight=shell+createoleobject+shell+application&sid=79448e4a7699888db918a5837e37f46e
infelismente acho que ele descuidou e colocou uses ShlObj ao inves da uses ComObj....
Clique aqui para fazer login e interagir na Comunidade :)