Programm will danach der installersion ins Internet gehen auf der willkommenseite

  • Hallo an Alle!

    Ich will für jemandem ein Script Basteln der mit ein Programm nicht klar kommt was er Einstellen muß es handelt sich um "K - lite codec pack " die Automatische installersion mit Autoit geht bloß am ende will er ins internet auf der willkommenseite!

    da der bekannte 2 Rechner hat ein Notebook und ein Stand rechner der eine ist nicht mit dem internet verbunden.


    meine frage kann ich das netzwerk (Lan) deaktivieren so das ich das abschluß des programms beenden kann und danach wieder die verbindung mit den Netzwerk wiederherstellen kann da ich nur ein script für beides geben will den bekannten?????

    ich habe schonmal geschaut ob es zu diesem theama was gab und auch schon ausprobiert doch man kommt immer noch ins internet. ;(


    Bitte um Hilfe

    Baron

    P.s. der eine Rechner ist über das netzwerk (LAN) verbunden

  • Hi,

    1) Lad dir devcon.exe von Microsoft herunter.
    2) Lies die Netzwerkadapter per WMI ein
    3) Deaktiviere die NWK mit devcon.
    4) Nach Abschluss der Installation schliesse Installationsprogramm und aktiviere NWK wieder.

    [autoit]


    Global $networkadapter [1] [2]
    _GetNetworkadapter ()
    _enabdisabNWK ("disable")
    ;InstallationsCode
    ;Beende Installation
    _enabdisabNWK ("enable")

    [/autoit][autoit][/autoit][autoit]

    Func _enabdisabNWK ($aktion)
    For $x = 0 To UBound ($networkadapter) - 1
    If $networkadapter [$x] [1] <> "" Then
    $strrun = @ScriptDir & "\devcon " & $aktion & " " & """" & $networkadapter [$x] [1] & """"
    RunWait ($strrun, "",@SW_HIDE)
    ;Sleep (5000)
    EndIf
    Next
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func _GetNetworkadapter ()
    Local $crecords, $drecords, $result
    $strzeichen = "&"
    $x = 0
    $strComputer = "Localhost"
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colComputers = $objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")
    For $objItem In $colItems
    $result = StringInStr ($objitem.PNPDeviceID, "&")
    if $result > 0 Then
    $networkadapter [$x] [0] = $objitem.Name
    $crecords = StringSplit ($objitem.PNPDeviceID, "\")
    $drecords = StringSplit ($crecords [2], "&")
    $networkadapter [$x] [1] = "PCI\" & $drecords [1] & $strzeichen & $drecords [2] & $strzeichen & "*"
    $x += 1
    ReDim $networkadapter [$x + 1] [2]
    EndIf
    Next
    EndFunc

    [/autoit]

    ;-))
    Stefan

  • Ich habe mir auch mal was zusammengeschustert was kein Devcon braucht

    !! Achtung !! Das Internet wieder Aktivieren sonst hast du kein Inet mehr

    Übernehme keine Haftung

    Spoiler anzeigen
    [autoit]


    Dim $__sGATEWAY[2]

    [/autoit] [autoit][/autoit] [autoit]

    Func EnDisInet($nDis = 0);0 = Deaktivieren 1 = Aktivieren
    Switch $nDis
    Case 0
    $NetWkAd = _Win32NetworkAdapter()
    For $x = 1 To UBound($NetWkAd, 1) - 1
    If $NetWkAd[$x][11] <> "" Then
    $__sGATEWAY[0] = $NetWkAd[$x][11]
    $__sGATEWAY[1] = $NetWkAd[$x][9]
    EndIf
    Next
    Do
    $RandGW = Random(1, 223, 1) & "." & Random(1, 199, 1) & "." & Random(1, 255, 1) & "." & Random(1, 199, 1)
    Until $RandGW <> $__sGATEWAY[1]
    _ChangeGatewayAndBack($__sGATEWAY[1],$__sGATEWAY[0],$RandGW,0)
    Case 1
    _ChangeGatewayAndBack($__sGATEWAY[1],$RandGW,$__sGATEWAY[0],0)
    EndSwitch
    EndFunc ;==>EnDisInet

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;------------------------------------------------------------------------------------------
    ; Funktion _ChangeGatewayAndBack($MY_IP, $GATEWAY_IP, $FAKE_GATEWAY_IP [,$TIMEOUT=-1])
    ;
    ; Beschreibung Trennt die Verbindung zwischen PC und Router (Netzwerk), indem man dem
    ; Netzwerkadapter kurzzeitig einen falschen Gateway zuweist.
    ; Der Adapter muss manuell konfiguriert sein.
    ;
    ; Parameter $MY_IP IP des Netzwerkadapters
    ; $GATEWAY_IP Gateway
    ; $FAKE_GATEWAY_IP falsche IP
    ; $TIMEOUT Zeitdauer bis der Standardgateway wieder aktiv wird
    ; -1 (default) 2000 ms
    ; 0 NOTAUS! Standardgateway wird NICHT zurückgesetzt
    ; n in Milisekunden (beliebig)
    ;
    ; Autor BugFix [email='bugfix@autoit.de'][/email]
    ;------------------------------------------------------------------------------------------
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Func _ChangeGatewayAndBack($MY_IP, $GATEWAY_IP, $FAKE_GATEWAY_IP, $TIMEOUT = -1)
    Local $ARGATEWAY = _ArrayCreate($GATEWAY_IP, $GATEWAY_IP)
    Local $ARFAKEGATEWAY = _ArrayCreate($FAKE_GATEWAY_IP, $FAKE_GATEWAY_IP)
    Local $TIME, $EMERGENCY = 0, $strComputer = "."
    Switch $TIMEOUT
    Case -1
    $TIME = 2000
    Case 0
    $EMERGENCY = 1
    Case Else
    $TIME = $TIMEOUT
    EndSwitch
    $objWMIService = ObjGet("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
    $colNetCards = $objWMIService.ExecQuery _
    ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
    If $EMERGENCY = 0 Then
    For $objNetCard In $colNetCards
    If $objNetCard.IPAddress(0) = $MY_IP Then
    $objNetCard.SetGateways($ARFAKEGATEWAY)
    Sleep($TIME)
    $objNetCard.SetGateways($ARGATEWAY)
    ExitLoop
    EndIf
    Next
    Else
    For $objNetCard In $colNetCards
    If $objNetCard.IPAddress(0) = $MY_IP Then
    $objNetCard.SetGateways($ARFAKEGATEWAY)
    ExitLoop
    EndIf
    Next
    EndIf
    EndFunc ;==>_ChangeGatewayAndBa

    [/autoit] [autoit][/autoit] [autoit]

    Func _Win32NetworkAdapter($strComputer = 'Localhost')
    Local $aReturn[1][12] = [[ _
    'Hersteller:', 'Name:', 'Adapter-Typ:', 'Kennung:', _
    'MAC-Adresse:', 'Adresstyp:', 'DHCP-Server:', 'IP erhalten:', _
    'IP läuft ab:', 'IP-Adresse:', 'Subnetzmaske:', 'Standardgateway:']]
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter WHERE Netconnectionstatus = 2', 'WQL', 0x30)
    If Not IsObj($colItems) Then Return SetError(2, 0, 0)
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][12]
    $aReturn[$x][0] = $objItem.Manufacturer
    $aReturn[$x][1] = $objItem.Name
    $aReturn[$x][2] = $objItem.AdapterType
    $aReturn[$x][3] = $objItem.NetConnectionID
    $aReturn[$x][4] = $objItem.MACAddress
    $colItems2 = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration', 'WQL', 0x30)
    If IsObj($colItems2) Then
    For $objItem2 In $colItems2
    If $objItem.Caption = $objItem2.Caption Then
    If $objItem2.IPEnabled = -1 Then
    If $objItem2.DHCPEnabled = -1 Then
    $aReturn[$x][5] = 'von DHCP zugewiesen'
    $aReturn[$x][6] = $objItem2.DHCPServer
    $aReturn[$x][7] = _WMIDateStringToDate($objItem2.DHCPLeaseObtained)
    $aReturn[$x][8] = _WMIDateStringToDate($objItem2.DHCPLeaseExpires)
    Else
    $aReturn[$x][5] = 'Manuell konfiguriert'
    EndIf
    $aReturn[$x][9] = $objItem2.IPAddress(0)
    $aReturn[$x][10] = $objItem2.IPSubnet(0)
    $aReturn[$x][11] = $objItem2.DefaultIPGateway(0)
    EndIf
    EndIf
    Next
    EndIf
    Next
    Return $aReturn
    EndFunc ;==>_Win32NetworkAdapter

    [/autoit] [autoit][/autoit] [autoit]

    Func _WMIDateStringToDate($dtmDate)
    Return (StringMid($dtmDate, 5, 2) & '/' & _
    StringMid($dtmDate, 7, 2) & '/' & StringLeft($dtmDate, 4) _
    & ' ' & StringMid($dtmDate, 9, 2) & ':' & StringMid($dtmDate, 11, 2) & ':' & StringMid($dtmDate, 13, 2))
    EndFunc ;==>_WMIDateStringToDate

    [/autoit]
  • THx an ojo !

    Hat 1A Funkioniert :P


    Geht das auch so das ein programm ausgeführt wird sobald man ins internet kommt also das der skript prüft ob das netzwerk bereit ist ins internet oder nicht.????????

    ich habe ein programm das ich gern das update abschalten will die option um abzuschalten kommt dann erst wenn die internet besteht beim einen rechner wird kein internet benötigt (rein freies rechner von internet) der andere wird dauerhaft mit dem internet benutzt . gibt es da auch eine lösung ???????

    bemerkung zum Programm das neue Update ist zwar tool doch viele funkionen würden geändert und das neue skin sagt auch nicht zu. deswegen will ich mein altes Progi behalten .

    Schöne Grüße an Alle Autoit bastler ! hier lernt man es richtig zu lernen die ganzen beiträge und so. 8o

    Gruß Baron

  • Hi,

    sende ein ping auf eine Internetseite. Wenn erfolgreich, dann Netzwerk abschalten:

    [autoit]


    While 1 ; gffs. die Schleife weglassen
    $var = Ping("www.AutoItScript.com",250)
    If $var Then
    ;hier Dein Code für Internetzugang
    EndIf
    sleep (1000)
    WEnd ; s.o.

    [/autoit]


    ;-))
    Stefan

  • http://translation.autoit.de/onlinehilfe/keywords.htmHI!

    Habe es getestet doch es kommt keine reaktion des skript die internet zugang bleibt wie gehabt bestehen.

    was habe ich hier vergessen das es nicht geht. dazu muß ich sagen zum punkt "hier Dein Code für Internetzugang" wenn ich es richtig denke das ich an den punkt die zugangsdaten eingeben muß wegen ins internet zu kommen
    die habe ich nicht weil ich von anbieter direkt übers kabel gehe also (haus antenne) der name von den anbieter sagt schon der Name (KabelDeutschland).


    bitte um Hilfe

    Gruß Baron

  • habe es nochmal getestet ! habe das skript ohne netzwerkkarbel gestartet und dazu eine msgbox eingebaut die dann kommt wenn das netzwerkkkabel wieder angeschloßen wird und es hat funkioniert ich wollte noch dann fragen wie ich die while schleife beenden tu ist mir dann auch eingefallen das ich sagen muß das nach der msgbox den befehl exit eingeben muß.

    danke dir nochmal beide sachen von dir haben gleich am anfang geklappt was ich haben wollte.


    1000 Thx an Stefan! :rock: