Naar aanleiding van wat informatie verschaft door alt-29 in dit topic post ik hier.
Kort samengevat: ik probeer via Windows XP Shutdown scripts een VBScript uit te voeren die controlleert of iemand verbonden is met de PC. Dit is wat ik heb tot nu toe:
Zoals je kan zien mist in deze (vast niet efficiënte code
) de manier van het afbreken van de afsluitprocedure. Na uitgebreid googlen kwam ik uit op deze thread op vbforums.com waarin over dit onderwerp gesproken wordt. De post van marcjack is ook van mij (BugMeNot account
), maar het kan geen kwaad het op twee verschillende fora te vragen. De code van dat forum waar ik een vraag over heb is het volgende:
De vraag is nu hoe ik deze code die daar in een van de laatste posts staat in mijn code kan gebruiken. Kan iemand mij hiermee helpen?
Kort samengevat: ik probeer via Windows XP Shutdown scripts een VBScript uit te voeren die controlleert of iemand verbonden is met de PC. Dit is wat ik heb tot nu toe:
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
| Set objConnection = GetObject("WinNT://./LanmanServer")
Set colSessions = objConnection.Sessions
If (IsEmpty(colSessions) = False) Then
pctjes = ""
For Each objSession in colSessions
pctjes = pctjes & objSession.Computer
Next
pctjes = pctjes & " is verbonden met deze computer. Wilt u het afsluiten onderbreken?" & VbCrLf & "Na 10 seconden wordt het afsluiten automatisch onderbroken."
Set objShell = CreateObject("Wscript.Shell")
intReturn = objShell.Popup(pctjes, 10, "Afsluiten onderbreken", 4 + 48)
Select Case intReturn
case 6
Msgbox "Het afsluiten wordt afgebroken."
' Afbreken afsluitprocedure op een of andere manier
Msgbox "Afsluiten onderbroken"
case -1
Msgbox "De 10 seconden zijn voorbij!" & VbCrLf & "Het afsluiten wordt nu afgebroken."
' Afbreken afsluitprocedure op een of andere manier
Msgbox "Afsluiten onderbroken"
End Select
End If |
Zoals je kan zien mist in deze (vast niet efficiënte code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| 'constants needed, form level
Private Const WM_QUERYENDSESSION As System.Int32 = &H11
Private Const WM_CANCELMODE As System.Int32 = &H1F
'the sub to intercept the windows messages
Protected Overrides Sub WndProc(ByRef ex As Message)
If ex.Msg = WM_QUERYENDSESSION Then
'cancel the message
Dim MyMsg As New Message
MyMsg.Msg = WM_CANCELMODE
MyBase.WndProc(MyMsg)
Else
'send the message as normal
MyBase.WndProc(ex)
End If
End Sub |
De vraag is nu hoe ik deze code die daar in een van de laatste posts staat in mijn code kan gebruiken. Kan iemand mij hiermee helpen?
[ Voor 3% gewijzigd door MediQ op 20-12-2007 20:48 ]