Windows service i VB
Hej folkens sidder og skal lave en windows server i visual basic men ved ikke helt hvordan man laver det, det er denne kode der skal køre som en windows serviceConst HKEY_LOCAL_MACHINE = &H80000002
Set objShell = CreateObject("WScript.Shell")
Set objWMIService_wmi = GetObject("winmgmts:\\.\root\wmi")
Set colMonitoredEvents = objWMIService_wmi.ExecNotificationQuery("Select * from MSNdis_StatusMediaConnect")
Do While True
Set strLatestEvent = colMonitoredEvents.NextEvent
Wscript.Echo "A network connection has been disconnected: " & strLatestEvent.InstanceName
nicdesc = strLatestEvent.InstanceName
Set objWMIService_cimv2 = GetObject("winmgmts:\\.\root\cimv2")
Set colNics = objWMIService_cimv2.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where ipEnabled = True")
'Determine nic which trggered the event
For Each objItem in colNics
If objItem.description = nicdesc & " - Packet Scheduler Miniport" then
trig_macaddress = objItem.MacAddress
trig_nicguid = objItem.SettingID
trig_strKeyPath = "HKLM\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & trig_nicguid & "\Connection\MediaSubType"
trig_subtype = objShell.RegRead(trig_strKeyPath)
Exit For
End If
Next
'If the nic was wired then find wireless nics and disable them
If trig_subtype = 1 then
For Each objItem in colNics
nicguid = objItem.SettingID
strKeyPath = "HKLM\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & nicguid & "\Connection\MediaSubType"
subtype = ""
on error resume next
subtype = objShell.RegRead(strKeyPath)
If err.number <> 0 then
subtype = 0
err.clear
on error goto 0
End If
If (subtype = 2) then
wireless_macaddress = objItem.MacAddress
set colAdapters = objWMIService_cimv2.Execquery("Select * from Win32_NetworkAdapter where macaddress ='" & wireless_macaddress & "'")
For Each Adapter in colAdapters
constatus = Adapter.NetConnectionStatus
If constatus <> "" then
wscript.echo SetConnState(Adapter.NetConnectionID,0)
End If
Next
End If
Next
End If
Loop
Function SetConnState(strConn,constate)
Const CONTROL_PANEL = &H3&
Set objShell = CreateObject("Shell.Application")
Set objCP = objShell.Namespace(CONTROL_PANEL)
If connstate = 0 then connAction = "Disa&ble"
If connstate = 1 then connAction = "En&able"
Set colNetwork = Nothing
For Each clsConn in objCP.Items
If clsConn.Name = "Network Connections" Then
Set colNetwork = clsConn.getfolder
Exit For
End If
Next
If colNetwork is Nothing Then
WScript.Echo "Network folder not found"
SetConnState = False
Exit Function
End If
Set clsLANConn = Nothing
For Each clsConn in colNetwork.Items
If Instr(LCase(clsConn.name),LCase(strConn)) Then
Set clsLANConn = clsConn
Exit For
End If
Next
If clsLANConn is Nothing Then
WScript.Echo "Network Connection not found"
SetConnState = False
Exit Function
End If
bEnabled = True
Set objEnable = Nothing
Set objDisable = Nothing
For Each clsVerb in clsLANConn.verbs
If clsVerb.name = connAction Then
Set objAction = clsVerb
End If
Next
wscript.echo REPLACE(connAction,"&","") & " " & strConn & "..."
objAction.DoIt
End Function
'The Control Panel automation derived from: http://mcpmag.com/columns/article.asp?EditorialsID=619
'NIC connect/disconnect trigger derived from: http://www.microsoft.com/technet/scriptcenter/resources/qanda/mar05/hey0321.mspx