Newsgroup: it.comp.lang.visual-basic
Titolo: Funzione per ridurre a icona tutte le applicazioni attive

Salve a tutti,
Che voi sappiate, esiste un API che mi consente di ridurre a icona tutte le 
applicazioni attive eccetto la mia applicazione da cui chiamo la funzione?
Bye,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site 4 : 
http://www.thetotalsite.it
MariokartDS Codice Amico: 532639027909 - CarmineC in MarioKartDS 

 
io userei la EnumWindows per trovare tutte le finestre aperte ed 
ottenerne l'handle e poi con un bel SendMessage di riduzione ad icona 
farei quello da te detto. Oppure c'è da capire se esiste un modo di 
richiamare la funzione che riduce tutto a icona che è presente sulla 
barra degli strumenti...
-- 
Max
Per parlare di musica: 
http://www.suonaresuonare.it
Annunci 100% gratuiti: 
http://www.vendovendo.it

barra degli strumenti...

 puoi minimizzare tutto e poi tirare su la tua (Me.WindowState=...);
Ok, allora, funziona perfettamente...
Però quando faccio:
MinimizeAllWindows(False)
Me.WindowState = FormWindowState.Normal
Poi non la ri-tira su... :(


Al momento non so cosa dirti,
è una Form normale o è senza i tre bottoncini e la titlebar,
l'hai messa On Top, 
gli dai il fuoco...
cmq restorare una finestra (tua tra l'altro )
non può essere una cosa che non si riesce a fare...


 gli dai il fuoco...
?


forse non funziona perchč
dopo l'abbassamento di tutte le finestre (non so che metodo hai usato),
il thread attivo corrente č diventato quello del sistema operativo
(probabilemte uno di quelli di cui fa uso la taskbar)
e la tua app non avendo lei il thread non puň fare determinate cose
(giusto se ha un Timer acceso continuerebbe 
a compiere il codice presente nel Timer);
quindi probabilmente occorre renderla attiva o con fuoco.
------
un tentativo puoi farlo comunque con l' API ShowWindow ed il 
param SW_RESTORE (ma ce ne sono altri utili allo scopo)
oppure per il fuoco con l'Api SetActiveWindow 
mentre la semplice API SetFocus non funzionerebbe perchč puň essere
azionata solo da chi ha il thread attivo in quel momento e la tua app come
detto forse non lo ha piů (potresti fare con l'API  AttachCurrentThread (o
un nome simile) un attacco della tua app al thread corrente, ma č un po'
complicato)
-----
nel primo dei 3 esempi postati in precedenza c'č anche l'operazione di
restore, ti funziona? 
nel caso si puň forse lavorare su quella (restorando in maniera mirata)...
------
senno' abbassi tutte le finestre, con il loro handle, a "mano",
senza passare mai il controllo al sistema operativo
---
un altra idea potrebbe essere quella di subclassare il tuo form e quando
questo riceve il messaggio (che non so quale č) di minimizzarsi, reagire e
fare qualcosa
----
nota:
comunque fai le prove con la finestra piů normale possibile, con i
bottoncini, style non fixed, e NON metterla forzatamente OnTop ma lasciale 
avere il suo normale ordine di sovrapposizione
--------
al momento credo di avere finito le idee,
se qualcuno a qualche idea in piů...


 lasciale avere il suo normale ordine di sovrapposizione
Provato... nulla da fare.
Bye,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site 4 : 
http://www.thetotalsite.it
MariokartDS Codice Amico: 532639027909 - CarmineC in MarioKartDS
"Un problema non č un problema se puň essere risolto" 

SW_RESTORE
sull Api Viewer dovrebbe esserci,
comunque Gogglando un po':
  SW_HIDE = 0
  SW_SHOWNORMAL = 1
  SW_NORMAL = 1
  SW_SHOWMINIMIZED = 2
  SW_SHOWMAXIMIZED = 3
  SW_MAXIMIZE = 3
  SW_SHOWNOACTIVATE = 4
  SW_SHOW = 5
  SW_MINIMIZE = 6
  SW_SHOWMINNOACTIVE = 7
  SW_SHOWNA = 8
  SW_RESTORE = 9
  SW_SHOWDEFAULT = 10
  SW_FORCEMINIMIZE = 11
  SW_MAX = 11

 Poi non la ri-tira su... :(
Eh, ok, e te non tirarla giu', no?
Cmq, invece di impostarla come normal, prova anche con Maximized.

  SW_RESTORE = 9
Ok, funziona... perņ non me la ripristina dopo che ho chiuso tutte le 
finestre :(
Probabilmente perde il focus...
E' possibile chiudere tutte le finestre tranne quella dell' app?
Bye,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site 4 : 
http://www.thetotalsite.it
MariokartDS Codice Amico: 532639027909 - CarmineC in MarioKartDS
"Un problema non č un problema se puņ essere risolto" 

E' possibile chiudere tutte le finestre tranne quella dell' app?
un comando che esclude una determinata app non lo conosco
personalmente;
per prova, prova a mettere tale comando di SW_RESTORE
in un timer che accendi con la riga   timer1.enabled = true   messa
un attimo prima di minimizzare tutte le finestre, 
mettilo con un tempo di 10 secondi (poi se funziona ovviamente ridurrai) 
e dopo che ha processato la tua riga di SW_RESTORE
spegnilo aggiungendoci sotto a tale SW_RESTORE 
la riga   timer1.enabled=false   ,
oppure lo spegni solo dopo che ti sei assicurato che la finestra ti si č
restorata, facendo prima un semplice controllo sullo stato della finestra
in questione
Il metodo non č molto bello, ti avviso...

 E' possibile chiudere tutte le finestre tranne quella dell' app?
Si, ed usando un metodo molto piu' pulito di quello che hai usato.
Usa la EnumWindows ed escludi le finestre che non vuoi minimizzare.

 Il metodo non è molto bello, ti avviso...
Già :(
Comunque non spreca quasi per niente la CPU.
Bye,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site 4 : 
http://www.thetotalsite.it
MariokartDS Codice Amico: 532639027909 - CarmineC in MarioKartDS
"Un problema non è un problema se può essere risolto" 

 Usa la EnumWindows ed escludi le finestre che non vuoi minimizzare.
Potresti farmi un esempio?
Grazie,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site 4 : 
http://www.thetotalsite.it
MariokartDS Codice Amico: 532639027909 - CarmineC in MarioKartDS
