Newsgroup: it.comp.lang.visual-basic
Titolo: stoppare la chiusura di windows

Ciao a tutti,
 io ho una applicazione nella try bar che si deve chiudere solo alla
chiusura di windows. prima di terminarsi, però, deve fare una domanda...come
faccio a bloccare la terminazione di windows fargli apparire un form e
riprendere la terminazione dopo che l'utente ha riempito un campo????
BELLA DOMANDONA EHHH??? Ciao a tutti e grazie

 ha scritto nel messaggio
news:8mpneo$9m5$1...@sirmdpsin16.inwind.it...


 BELLA DOMANDONA EHHH??? Ciao a tutti e grazie
a partire dai pezzi di codice qui sotto dovresti saltarci fuori:
1. dal tipo di query_unload capisci se e' windows che sta chiudendo.
2. fai cancel del'unload -> si ferma lo shutdown.
3. fai le tue cosine.
4. fai tu lo shutdown.
nb: questo, in teoria. io non ci ho provato :)
ciao, a.
' DICH SHUTDOWN
Public Const EWX_NEWUSER = 0
Public Const EWX_SHUTDOWN = 1
Public Const EWX_REBOOT = 2
Public Declare Function ExitWindowsEx Lib "user32" _
      (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
' CONTROLLARE L'UNLOAD
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' =======================================
'
' Parameters -Cancel (Integer)
' If cancel = 0 Then all children of
' the form and the form its self will
' be unloaded. Otherwise, they
' will not be unloaded. I like to use
' the following code to stop an unload
' Cancel = vbYes
'
' -UnloadMode
' see info below (This is the relevant
one)
' =======================================
Select Case UnloadMode
Case 0:
' User used the Control Box Menu in the upper
' left corner or the "X" in the upper right
' corner of the form. If this is one of many
' forms, I send it back to the form that called it.
' One way in, one way out.
Case 1:
' Some other code within this application is causing
' the shutdown. Usually a routine in a BAS module.
Case 2:
' Windows session is closing (i.e. Start, Shut Down)
Case 3:
' Task Manager is closing this application. (i.e.
' Ctrl+Alt+Del, End Task)
Case 4:
' The MDI parent form is closing.
End Select
End Sub
' EFFETTUARE LO SHUTDOWN
Private Sub cmdOK_Click()
     If optEnd.Value Then
          End
     ElseIf optReboot.Value Then
          Conf = ExitWindowsEx(EWX_REBOOT, 0&)
     ElseIf optShutdown.Value Then
          Conf = ExitWindowsEx(EWX_SHUTDOWN, 0&)
     ElseIf optNewUser.Value Then
          Conf = ExitWindowsEx(EWX_NEWUSER, 0&)
     End If
End Sub

 QueryUnload del form?
La proposta non è male ma forse non è completa...
nell'evento QueryUnload controlla il parametro UnloadMode: se è diverso da
vbAppWindows imposti Cancel = true e blocchi la chiusura del tuo programma;
altrimenti fai quello che devi fare (chiedi quello che devi chiedere) e poi
lasci che tutto faccia il suo corso e che win chiuda il tuo programma e se
stesso.
Ciao.
--
Princi, 
princ...@programmer.net
--------------------------------------------------------------------------
"Tutti sanno che una cosa è impossibile da realizzare,
finché arriva uno sprovveduto che non lo sa e la inventa." A.E.


Ah... una nuova.  Io sapevo solo plug & pray
--
Frogman
indirizzo e-mail corretto: 
be...@reboot.to

 Ah... una nuova.  Io sapevo solo plug & pray
effettivamente try + pray sembra il piu' esatto