Newsgroup: it.comp.lang.visual-basic
Titolo: Anche io nell' NG

Salve a tutti,
ebbene , e' da qualche settimana che leggo gli avvicendamenti sul NG,
e mi sono deciso a parteciparne attivamente....riempiendovi di domande!
Vorrei salutare Skunk per la sua simpatia e
Moreno Sirri sempre pronto con la giusta risposta!
Eccomi qui nel NG!
domanda :
come posso visualizzare e rimuovere il form in esecuzione dalla taskbar ?
( per esempio quando minimizzo il form e' visibile in taskbar, quando lo espando
deve essere rimosso dalla taskbar)

Se intendi nasconderlo dalla task bar (ho capito bene : è quella che ti
appare quando premi CTRL+ALT+CANC?) nel Sito Comune (SC) trovi un
bell'esempio (
http://www.murialdo.it/it_lang_vb
).
Ma fai attenzione che la cosa non funzia sotto WinNT o Win2000.
CiaoZ
...e benvenuto!...
SebaMix
"IK Multimedia Tech Support" <Sand...@IKMultimedia.com> ha scritto nel
messaggio news:NCZ86.92$pr5....@twister1.tin.it...


deve essere rimosso dalla taskbar)
Come ti hanno già risposto c'è sul sito comune, ma vedi anche i
messaggi vecchi (una settimana + o -) che già altri hanno chiesto
questa stessa cosa.
Saluti...

E se vuoi vedere i messaggi vecchi vai su 
www.deja.com
!
ByeZ
SebaMix

Grazie ragazzi!
seguiro le vostre indicazioni....
comuque...per taskbar mi riferisco alla barra delle applicazioni
quella in cui c'e' anche il bottone "Start" di windows.
facendo una prova ho realizzato un form con la proprieta'
ShowInTaskbar = True
e inserito un bottone con questo codice:
Form1.ShowInTaskbar = False
quando lancio l'applicazione e faccio click sul bottone
mi appare questo errore:
Per la funzione o l'interfaccia sono state impostate delle restrizioni
oppure la funzione utilizza un tipo di automazione non supportato in
visual basic.
L'errore che appare, pur essendo scritto in italiano non mi e' per
niente chiaro!
che significa?? a che tipo di restrizioni si riferisce??
Grazie  e complimenti a tutto l'NG che e' molto attivo!!!
Saluti
Sandro Pons

 Sandro Pons
CiaoZ
SebaMix

deve essere rimosso dalla taskbar)
Come hai già potuto sperimentare, la proprietà .ShowinTaskBar è di sola lettura a runtime: magari si
potrebbe subclassare la form ed intercettare il messaggio di visualizzazzione sulla taskbar, ma non
so quale sia quest'ultimo... (sul sito comune trovi un articolo che ti spiega cosa intendo con
"subclassare"...)
in alternativa potresti, anziché visualizzarla nella taskbar, visualizzarla nella system tray
(=vicino all'orologio): per far questo trovi un esempio sul mio sito o sul sito comune (qui anche
coredato da un ottimo articolo).
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

 so quale sia quest'ultimo... (
In teoria, e' una questione di stile (esteso): WS_EX_APPWINDOW.
Ho provato ad impostarlo e a rimuoverlo a runtime, ma, usando un form di vb
e giocherellando anche con WS_EX_TOOLWINDOW e WS_POPUP, contemporaneamente
al suddetto ws_ex_appwindow, sono riuscito solo a partire con il form non
visibile in taskbar, poi, pero', una volta diventato visibile non riesco
piu' a togliere quel dannato WS_EX_APPWINDOW.
Questo e' il codice (non funzionante) che ho provato:
***********
1) Un vbp con un form la cui prop ShowInTaskbar e' False;
***********
2) dichiarazioni api (messi in un bas, ma teoricamente non sarebbe
necessario):
Public Const WS_EX_APPWINDOW = &H40000
Public Const WS_EX_TOOLWINDOW = &H80&
Public Const GWL_EXSTYLE = (-20)
Public Const GWL_STYLE = (-16)
Public Const HWND_NOTOPMOST = -2
Public Const SWP_FRAMECHANGED = &H20
Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H4
Public Const SWP_NOMOVE = &H2
Public Const WS_POPUP = &H80000000
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA"
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA"
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function UpdateWindow Lib "user32" (ByVal hwnd As Long) As
Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal
hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long,
ByVal cy As Long, ByVal wFlags As Long) As Long
************
3) nel form:
Private Sub Form_Resize()
  Dim oldLong As Long
  Dim mi_hWnd As Long
  mi_hWnd = Me.hwnd
  If WindowState = vbMinimized Then
    oldLong = GetWindowLong(mi_hWnd, GWL_EXSTYLE)
    oldLong = SetWindowLong(mi_hWnd, GWL_EXSTYLE, (oldLong Or
WS_EX_APPWINDOW) And Not 0)
    oldLong = GetWindowLong(mi_hWnd, GWL_STYLE)
    oldLong = SetWindowLong(mi_hWnd, GWL_STYLE, oldLong And Not WS_POPUP)
  Else
    oldLong = GetWindowLong(mi_hWnd, GWL_EXSTYLE)
    oldLong = SetWindowLong(mi_hWnd, GWL_EXSTYLE, (oldLong And Not
WS_EX_APPWINDOW) Or 0)
    oldLong = GetWindowLong(mi_hWnd, GWL_STYLE)
    oldLong = SetWindowLong(mi_hWnd, GWL_STYLE, oldLong Or WS_POPUP)
  End If
  oldLong = SetWindowPos(mi_hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, _
                    SWP_DRAWFRAME Or SWP_NOSIZE Or _
                    SWP_NOZORDER Or SWP_NOMOVE)
  oldLong = UpdateWindow(mi_hWnd)
End Sub
**************
Preciso che ho provato sotto nt4 srv sp6.
Qualche idea ?
Ciao
Aldo

> Come hai gią potuto sperimentare, la proprietą .ShowinTaskBar č di sola

Grazie Aldo!!!!
era proprio quello che cercavo!!!
mi buttero' a capofitto... e ti sapro' dire!!
Pensavo pero' si trattasse di una cosa molto piu' semplice :-P
Grazie
Sandro Pons (pons e' il mio nick name )