[VB.NET][PB FAQ] Comment annuler la fermeture de la session
Bonjour
http://faqvbnet.developpez.com/?page...ueryendsession
code original :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
'Message Windows QueryEndSession
Private Const WM_QUERYENDSESSION As Integer= &H11;
'flag indiquant si la session est en cours de fermeture
Private _systemShutdown As Boolean= false;
'Redéfinition de la fonction virtuelle WndProc
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
'Mise dans systemShutdown la présence du message fermeture Windows
If m.Msg = WM_QUERYENDSESSION Then
_systemShutdown = true
base.WndProc(m)
End If
End Sub
'Handler evenement closing
Private Sub Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) Handles Form1.Closing
'Si le message fermeture Windows a été envoyé, on l'annule !
If _systemShutdown Then
e.Cancel = true
_systemShutdown = false
MessageBox.Show("Fermeture de session windows annulée")
End If
End Sub |
Il y a quelque problème dans ce code... j'en suis arrivé là :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
'Message Windows QueryEndSession
Private Const WM_QUERYENDSESSION As Integer = &H11
'flag indiquant si la session est en cours de fermeture
Private _systemShutdown As Boolean = False
'Redéfinition de la fonction virtuelle WndProc
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
'Mise dans systemShutdown la présence du message fermeture Windows
If m.Msg = WM_QUERYENDSESSION Then
_systemShutdown = True
MyBase.WndProc(m)
End If
End Sub
'Handler evenement closing
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
'Si le message fermeture Windows a été envoyé, on l'annule !
If _systemShutdown Then
e.Cancel = True
_systemShutdown = False
MessageBox.Show("Fermeture de session windows annulée")
End If
End Sub |
mais il doit encore en rester ... mon application plante quand j'utilise ce code
Merci
Sébastien