Bonjour

http://faqvbnet.developpez.com/?page...ueryendsession

code original :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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