Hi Guys,
Zit met een volgende probleem. Voor een klant moet ik iets maken dat wanneer Internet Explorer wordt gesloten de client automatisch uitlogt. Ik heb nu een script gemaakt met VB die het IEXPLORE.EXE process checkt, is deze niet meer running dan wordt de client uitgelogd. Hierbij wat code;
Probleem is dat dit in principe wel werkt alleen de computer logt te pas en te onpas zomaar uit terwijl IE nog draait...
Iemand enig idee waar de fout zit of misschien een beter alternatief?
Bedankt alvast!
Zit met een volgende probleem. Voor een klant moet ik iets maken dat wanneer Internet Explorer wordt gesloten de client automatisch uitlogt. Ik heb nu een script gemaakt met VB die het IEXPLORE.EXE process checkt, is deze niet meer running dan wordt de client uitgelogd. Hierbij wat code;
VBScript:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| Option Explicit 'roep de functie aan die checkt of IE gestart is (kijkt naar het proces) Dit proces looped totdat IE daadwerkelijk gestart is en 'gaat vervolgens pas verder. Do CheckProc Loop Until CheckProc = "1" 'Roept de 2e functie aan die kijkt of het IE proces nog draait, zodra dit niet meer het geval is (IE is afgesloten) dan wordt er 'een andere waarde ingesteld Do CheckProc2 Loop Until CheckProc2 = "2" 'waarde 2 (Betekend dat IE is afgesloten) zorgt ervoor dat onderstaande statement uitgevoerd wordt. Deze statement logt de 'gebruiker uit. If CheckProc2 = "2" Then Dim objWSH Set objWSH = CreateObject("WScript.Shell") objWSH.Run("logoff") End If 'Onderstaande functies zijn hetzelfde alleen geven een andere waarde terug. De eerste kijkt of IE start de 2e of IE stopt. Function CheckProc() Dim objWMIService, objProcess, colProcess Dim strComputer, strList strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colProcess = objWMIService.ExecQuery _ ("Select * from Win32_Process") For Each objProcess In colProcess strList = objProcess.Name If strList = "iexplore.exe" Or strList = "IEXPLORE.EXE" Then CheckProc = "1" End If Next End Function 'Deze functie geeft een waarde terug die zorgt dat het logoff proces getriggerd wordt. Function CheckProc2() Dim objWMIService, objProcess, colProcess Dim strComputer, strList strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colProcess = objWMIService.ExecQuery _ ("Select * from Win32_Process") For Each objProcess In colProcess strList = objProcess.Name If Not strList = "iexplore.exe" Or strList = "IEXPLORE.EXE" Then CheckProc2 = "2" End If Next End Function |
Probleem is dat dit in principe wel werkt alleen de computer logt te pas en te onpas zomaar uit terwijl IE nog draait...
Iemand enig idee waar de fout zit of misschien een beter alternatief?
Bedankt alvast!
[ Voor 0% gewijzigd door RobIII op 02-11-2007 11:38 . Reden: Code tags toegevoegd ]