Sign in to follow this  
Followers 0
playlet

---

24 posts in this topic

#1 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
Share on other sites



Would like to see the source, if you don't mind sharing.

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

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

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

#12 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
Share on other sites

#13 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
Share on other sites

#14 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
Share on other sites

#15 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
Share on other sites

#16 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

#19 ·  Posted (edited)

---

Edited by playlet

Share this post


Link to post
Share on other sites

x64 or x86 -- doesn't matter for me. Still getting error.

Share this post


Link to post
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
Sign in to follow this  
Followers 0