Jump to content

---


playlet
 Share

Recommended Posts

  • 2 weeks later...
  • 1 month later...

I updated the source code above - removed some unnecessary lines from the code.

Cheers, Playlet

How about before checking the status is 'enable or disable', the script should also check if the computer has the LAN adapter or not? Because I have a old notebook without LAN adapter.

Link to comment
Share on other sites

This could be a little tricky since I don't know what actually happens with the script on a computer that doesn't have a lan adapter.

Try this:

Dim $aNetworkInfo
$cI_CompName = @ComputerName
Global    $wbemFlagReturnImmediately = 0x10, _
        $wbemFlagForwardOnly = 0x20
_ComputerGetNetworkCards($aNetworkInfo)
$networkcard = $aNetworkInfo[1][0]

If $networkcard <> "" Then
    MsgBox (0, "True", "You have a network card installed: " & @CRLF & @CRLF & $networkcard)
Else
    MsgBox (0, "False", "No network cards !")
EndIf

Func _ComputerGetNetworkCards(ByRef $aNetworkInfo)
    Local $colItems, $objWMIService, $objItem
    Dim $aNetworkInfo[1][34], $i = 1

    $objWMIService = ObjGet("winmgmts:\\" & $cI_Compname & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

    If IsObj($colItems) Then
        For $objItem In $colItems
            ReDim $aNetworkInfo[UBound($aNetworkInfo) + 1][34]
            $aNetworkInfo[$i][0]  = $objItem.Name
            $i += 1
        Next
        $aNetworkInfo[0][0] = UBound($aNetworkInfo) - 1
        If $aNetworkInfo[0][0] < 1 Then
            SetError(1, 1, 0)
        EndIf
    Else
        SetError(1, 2, 0)
    EndIf
EndFunc
and tell me what the MessageBox tells you.

"True"

"You have a network card installed:

RAS Asynchronization adaptor"

Actually it is not LAN adapter, this is a modem adapter.

Edited by mrmacadamia
Link to comment
Share on other sites

...I've changed this function to look for specific words like "lan" or "ethernet"....

You could also try filtering the WMI query to look for network devices that have an IP associated with them.
Spoiler

Things I've Made: Always On Top Tool ◊ AU History ◊ Deck of Cards ◊ HideIt ◊ ICU ◊ Icon Freezer ◊ Ipod Ejector ◊ Junos Configuration Explorer ◊ Link Downloader ◊ MD5 Folder Enumerator ◊ PassGen ◊ Ping Tool ◊ Quick NIC ◊ Read OCR ◊ RemoteIT ◊ SchTasksGui ◊ SpyCam ◊ System Scan Report Tool ◊ System UpTime ◊ Transparency Machine ◊ VMWare ESX Builder
Misc Code Snippets: ADODB Example ◊ CheckHover ◊ Detect SafeMode ◊ DynEnumArray ◊ GetNetStatData ◊ HashArray ◊ IsBetweenDates ◊ Local Admins ◊ Make Choice ◊ Recursive File List ◊ Remove Sizebox Style ◊ Retrieve PNPDeviceID ◊ Retreive SysListView32 Contents ◊ Set IE Homepage ◊ Tickle Expired Password ◊ Transpose Array
Projects: Drive Space Usage GUI ◊ LEDkIT ◊ Plasma_kIt ◊ Scan Engine Builder ◊ SpeeDBurner ◊ SubnetCalc
Cool Stuff: AutoItObject UDF â—Š Extract Icon From Proc â—Š GuiCtrlFontRotate â—Š Hex Edit Funcs â—Š Run binary â—Š Service_UDF

 

Link to comment
Share on other sites

  • 2 weeks later...

I found 26 NICs on my system (9 with your filter).

OnBoard Broadcom NetXtreme 57xx Gigabit Controller

Miniport d'ordonnancement de paquets

Miniport d'ordonnancement de paquets

Connexion 1394 Carte réseau 1394

Miniport d'ordonnancement de paquets

Deterministic Network Enhancer Miniport

Deterministic Network Enhancer Miniport

Virtual Machine Network Services Driver

VirtualBox Bridged Networking Driver Miniport

So I modified your code like this :

For $i=1 to $aNetworkInfo[0][0]

If StringInStr($aNetworkInfo[$i][1],'Ethernet')>0 and $aNetworkInfo[$i][19]<>"" and StringInStr($aNetworkInfo[$i][0],"1394")=0 Then

ConsoleWrite($aNetworkInfo[$i][19]&@TAB&$aNetworkInfo[$i][0]&@CR)

$lan = 1

EndIf

Next

Only "Ethernet" Nics, Only visible in "Nework Connections" and not a "1394" adapter.

There is only one NIC left after this filter. The true one.

OnBoard Broadcom NetXtreme 57xx Gigabit Controller

I like the $aNetworkInfo[$i][19] value !!! Every people asking for a NIC called exactly "Local area connection" in their script should use your function !

Thanks for sharing.

Link to comment
Share on other sites

  • 2 months later...
  • 1 month later...
  • 4 months later...
  • 4 weeks later...

Not working in Windows 7 x64. Is it supposed to?

If I run from Scite:

LAN Enable-Disable v2.3.au3 (75) : ==> Variable must be of type "Object".:

If I compile and run it:

Line 72
Error: Variable must be of type "Object".

Thanks for all your work.

Link to comment
Share on other sites

Not working in Windows 7 x64. Is it supposed to?

If I run from Scite:

LAN Enable-Disable v2.3.au3 (75) : ==> Variable must be of type "Object".:

If I compile and run it:

Line 72
Error: Variable must be of type "Object".

Thanks for all your work.

I got the same error, then tried compiling it as 64-bit - fixed the problem for me.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...