Wie online/offline gehen bzw. Stand überprüfen

  • Schönen Guten Abend,
    bin neu bei Forum (Foren überhaupt...) und bei AutoIt, hoffe aber, das mir jemand bei meinem Problem helfen kann. In Kurzform: ich muss öfters auf extrem verschiedenen PC die Update der Sicherheitsprogramme machen, sowie dann diese zwecks Überprüfung starten (Auto-Update und regelmäßiges zeitlichen "Scannen" ist von den jeweiligen Besitzern NICHT gewollt, leider). Um mir die Sache irgendwie zu vereinfachen, habe ich gesucht und bin der Ansicht, das AutoIt dafür ideal sein sollte. Leider bin ich aber nicht mit genügend Kenntnissen dafür ausgestattet und benötige für 2 Probleme Hilfe:

    1. Wie erkennt man, ob der Rechner schon online ist, bzw. kann das dann jeweils an- oder ausschalten? Zumal die Verbindungen (meist DSL) auch immer unterschiedlich heißen (USB-Netz, Internet, Lan-Verbindung, WLan-Netz etc.)?

    Und 2. weiß ich nie genau, wo auf dem jeweiligen Rechner meinetwegen die Datei Spybot.exe oder so liegt. Deswegen will ich die automatisch suchen lassen und in einen String oder so übergeben, mit dem ich dann weiter arbeiten könnte. Jetzt habe ich schon das Forum nach so etwas durchsucht und bin auf verschiedene Versionen
    gestoßen, die ich anpassen wollte, aber genau das bekomme ich nicht hin. Bitte auch da um Hilfe (der Code ist ein Sammelsurium aus Beispielen vom Forum und meinen Tests...). Ich habe den Code jetzt mal als Datei-Anhang hoch geladen und hoffe, weder damit noch mit meinem Beitrag gegen irgendwas verstoßen zu haben, sowie auf Hilfe und Verständnis.
    Dafür schon mal besten Dank im Voraus.
    Manne.

    ideen.jpg

  • Hallo, Blubbstar,
    danke für Deine rasche Hilfe, aber leider löst beides das Problem nicht - wenn ich pinge, erkenne ich zwar, ob der jeweilige PC on- oder offline ist, kann es aber trotzdem nicht ein oder ausschalten. Und die direkte Bezeichnung des Zuganges weiß ich immer noch nicht exakt (ich bin eben weder Freak noch Programmierer...sorry).

    Und bei 2. habe ich nach deiner Idee begeistert mal in der Registry gesucht, musste aber erkennen, das nur 2 von den Programmen, die ich "fernsteuern" will, sich mit dem kompletten Pfad eingetragen haben, alle anderen leider nicht (im Normalfall mag ich portable Apps - die es teilweise sind -, hier hilft es nicht wirklich...).
    Was nun? Bitte um weitere Ideen oder Hilfe und schon mal besten Dank im Voraus.
    Manne.

    PS.: Noch zwei "dumme" Foren-Fragen, die mir eingefallen sind - bitte nicht lachen: 1. Wie bekommt man den Autoit-Text so super in seinen Beitrag? Hatte da was gelesen, weiß aber nicht mehr wo... Eventuell mit (autoit)...au3-text (/autoit) oder so?
    Und genau da drauf bezieht auch zweite Frage, wie finde ich meinen Beitrag eigentlich SCHNELL wieder?
    He, nicht lachen bitte ....(ganz verzweifelt guck...). Ebenfalls besten Dank im Voraus & mfG
    Manne.

    • Offizieller Beitrag

    Frage 1 verstehe ich nicht. Was willst Du da automatisieren?

    Frage 2: Wenn Du wirklich die ganze Systempartition durchsuchen willst, musst Du Dir aber darüber im klaren sein, dass das einige Zeit dauert. Am besten ist dann, dass Du alle Dateien in ein Array einliest und dieses dann nach den Programmen durchsuchst. Dafür würde ich die Funktion "_GetFilesFolder_Rekursiv" von BugFix empfehlen:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Global $aFiles = _GetFilesFolder_Rekursiv('c:\', -1, 0)

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

    Global $iIndex = _ArraySearch($aFiles, 'spybotsd.exe', 0, 0, 0, 1)
    If $iIndex <> -1 Then MsgBox(0,0, 'Spybot = ' & $aFiles[$iIndex])

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

    Global $iIndex = _ArraySearch($aFiles, 'avcenter.exe', 0, 0, 0, 1)
    If $iIndex <> -1 Then MsgBox(0,0, 'Antivir = ' & $aFiles[$iIndex])

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

    Global $iIndex = _ArraySearch($aFiles, 'autoit3.exe', 0, 0, 0, 1)
    If $iIndex <> -1 Then MsgBox(0,0, 'AutoIt = ' & $aFiles[$iIndex])

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

    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case '3'
    $sDelim = ';'
    Case '4'
    $sDelim = '|'
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc

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

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared('strFiles') Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

    [/autoit]

    Und die anderen Fragen:
    "Wie bekommt man den Autoit-Text so super in seinen Beitrag? "
    Im Editor den AutoIt-Button anklicken und das Script zwischen die "Tags" einfügen [ autoit]hier das Script[ /autoit]

    "wie finde ich meinen Beitrag eigentlich SCHNELL wieder?"
    Bei Deinem eigenen Beitrag solltest Du die Überschrift ja noch kennen. ;)
    Ansonsten ist hinter einem Thema, das Beiträge von Dir enthält, ein "Personen"-Icon zu sehen (dazu musst Du eingeloggt sein).

  • Hallo, Oscar,
    auch vielen Dank für Deine Hilfe und Erklärungen.
    Vielleicht ist 1. einfacher so zu erklären: Wenn PC (unbekannter PC, bzw. die Einrichtung des jeweiligen Users) online ist, soll er offline, wenn er offline ist, soll er online. Online bzw. offline schalten will ich mit dem Script, welches natürlich im Offline-Modus einiges erledigt, bevor der jeweilige PC zwecks Aktualisierungen jeweils nochmal kurz online gehen soll. Nach erfolgreichen Updates ist wieder offline angesagt, um den Rest des Scriptes abzuarbeiten.....
    Und Spitze wäre es, wenn das mit Windows eigenen Hausmitteln gehen würde...
    Habe in der Zwischenzeit mal Devcon.exe von M$ probiert, was hilfreich wäre, aber ich kann nicht bei jedem Rechner erstmal eine exe installieren (können schon, dürfen nein.) Also bleiben: ???

    Zu 2.: Das das einige Zeit dauert, damit muss ich leben; allerdings habe ich - wie geschrieben - keine Ahnung vom Programmieren, schon gar nicht von Funktionen, so das mir das Script nicht wirklich hilft...sorry. Ich weiß weder, wie ich das einbinden muss, noch wie ich dann was aufrufe, noch wie mir das was sucht und anzeigt. Klar habe ich die Erklärungen zu den Funktionen gelesen, aber besser wurde es dadurch nicht ;(
    Deshalb hatte ich ja auch meine Versuche mit den Funktionen mal angehängt, hauptsächlich wegen der Suche - bekomme aber natürlich kein Ergebnis, sondern - wie erwartet - nur eine Fehlermeldung. Dafür kann ich es jetzt - dank Deiner Hilfe - etwas besser posten (wie gesagt, es sind meine Test von Beispielen, wichtig wäre mir davon die Suche....):

    Spoiler anzeigen
    [autoit]

    ; Beipselskript mit drei nutzerdefinierten Funktionen
    ; Beachte die Verwendung von Variablen, ByRef und Return
    Global $sRootPath
    $sRootPath=InputBox("RootPath","Welches Laufwerk",""," M","200","150","-1","-1")
    $sFileName=InputBox("Dateiname","Wie heißt Datei?",""," M","200","150","-1","-1")
    ;$aRet=DllCall("imagehlp", 'long', 'SearchTreeForFile', 'str', _
    ;$sRootPath, 'str', $sFileName, 'str', $sOutputPathBuffer)

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

    $foo = 2
    $bar = 5
    msgBox(0,"Heute ist " & today(), " $foo ist " & $foo & " und $bar ist: " & $bar)
    swap($foo, $bar)
    msgBox(0,"nachdem $foo und $bar vertauscht wurden", "$foo ist nach Tausch: " & $foo)
    msgBox(0,"Zu guter Letzt:", "Die größere Zahl von 3 und 4 ist " & max(3,4))
    MsgBox(0,"Test","RootPath: " & $sRootPath & " Dateiname: " & $sFileName & " ist in: " & $aRet)

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

    Exit

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

    Func swap(ByRef $a, ByRef $b) ;vertauscht den Inhalt zweier Variablen
    Local $t
    $t = $a
    $a = $b
    $b = $t
    EndFunc

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

    Func today() ;Gibt das aktuelle Datum in der Form dd/mm/yyyy zurück
    return (@MDAY & "." & @MON & "." & @YEAR)
    EndFunc

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

    Func max($x, $y) ;Gibt die größere von zwei Zahlen zurück
    If $x > $y Then
    return $x
    Else
    return $y
    EndIf
    EndFunc

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

    Func _SearchTreeForFile($sRootPath, $sFileName)
    If StringRight($sRootPath, 1) <> '\' Then $sRootPath &= '\'
    Local $sOutputPathBuffer = ''
    Local $aRet = DllCall("imagehlp", 'long', 'SearchTreeForFile', 'str', _
    $sRootPath, 'str', $sFileName, 'str', $sOutputPathBuffer)
    If $aRet[0] = 1 Then
    Return $aRet[3]
    Else
    Return 0
    EndIf
    EndFunc ;==>_SearchTreeForFile

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

    ;Ende des Beispiel-Skriptes

    [/autoit]

    Ich nehme an, das meine Versuche inklusive Fehlern für Profis kein Problem darstellen....

    Also nochmals herzlichen Dank für die Mühen und die Hilfen. Übrigens ein riesiges Lob an das Forum, die Reaktionen auf Fragen erfolgen schneller, als ich überhaupt zum Antworten komme (sorry dafür)! Und natürlich auch Frohe Weihnachten ringsrum!

    MfG
    Manne

  • Hi

    du könntest die Benutzer ein wenig "hintergehen" (:D)
    ich hab mir die devcon mal angeschaut, hab irgendwie nicht ganz verstanden wie du da das Internet trennen und wiederherstellen kannst aber das hast du ja verstanden (hast du gesagt)
    Mein Vorschlag:

    [autoit]


    ;ganz oben ins Script einfügen
    #include <process.au3>
    $devcon = FileInstall("devcon.exe", @TempDir & "\devcon.exe")
    ;weiterer Code
    ;Die stelle wo du die devcon.exe per CMD aufrufen willst:
    _RunDos($devcon & " DeineParameter")
    ;und weiter
    ;ganz am ende, meinetwegen vor exit:
    FileDelete($devcon)

    [/autoit]


    Untested^^

    Damit wird die .exe installiert, d.h. in das angegebene Verzeichnis kopiert und am ende wieder gelöscht
    Davon kriegt der Benutzer nichts mit
    Wenn die Devcon.exe auf das Internet zugreifen muss dann musst du dem Benutzer sagen er soll sie zulassen

    Padmak

  • Hallo, Oscar, hallo, Padmak,
    danke mal wieder für Eure schnelle Reaktion. Die Idee von Padmak ist super, das könnte klappen. Und, lieber Oscar, bitte nicht böse sein, aber noch einmal richtig deutlich: Ich bin zu blöd für Funktionen!! Natürlich hatte ich dein Script schon getestet, aber - da es eine Funktion ist - sehe ich natürlich nix. Wenn Ihr mir noch BITTE, BITTE, BITTE noch erklären könntet, wie ich da ein Ergebnis zum Anzeigen für mich bekomme, könnte ich auch eventuell mit Funktionen was anfangen (hoffe ich...).

    Deswegen schrieb ich ja bereits :

    ... Das das einige Zeit dauert, damit muss ich leben; allerdings habe ich - wie geschrieben - keine Ahnung vom Programmieren, schon gar nicht von Funktionen, so das mir das Script nicht wirklich hilft...sorry. Ich weiß weder, wie ich das einbinden muss, noch wie ich dann was aufrufe, noch wie mir das was sucht und anzeigt. Klar habe ich die Erklärungen zu den Funktionen gelesen, aber besser wurde es dadurch nicht ;(
    Deshalb hatte ich ja auch meine Versuche mit den Funktionen mal angehängt, hauptsächlich wegen der Suche - bekomme aber natürlich kein Ergebnis, sondern - wie erwartet - nur eine Fehlermeldung. ... (wie gesagt, es sind meine Test von Beispielen, wichtig wäre mir davon die Suche....): ....

    Also kurz, es wäre hilfreich für mich, wenn Du,lieber Oscar noch eine MSG-Box als Beispiel in das Script schreibst mit dem Ergebnis.... Das ich den Funktions-Aufruf und vor allem das Ergebnis auslesen NICHT hinbekomme, sieht man doch schon an meinem obigem Beispiel.....

    DANKE auch dafür.
    MfG & schöne Feiern

    Manne.

  • Hallo, lieber Oscar,
    danke für Deine rasche Antwort. Ja, Du hast es sehr gut eingebaut (so weit ich das überblicke... *gg*), aber wenn ich es starte, passiert: nix. Mhm, dachte ich, es könnte ja an mir liegen und habe es nochmal kompiliert - kein Fehler, alles ok. Also neu starten und über Go gleich vom Scite aus starten: wieder kein Fehler, alles ok und KEINE Meldung. Habe auch das Gefühl, der sucht gar nicht erst - kann man das anzeigen, wo der gerade ist? Auch wenn es lange dauert?

    Was mache ich da schon wieder falsch?!?! Sorry für meine Ahnungslosigkeit und danke für Eure Hilfe UND GEDULD.
    LG
    Manne.

    PS.: Ich weiß nicht, ob sich das so gehört, falls nicht, sorry; aber ich habe mal die Meldung vom Scite nach dem Ausführen kopiert:
    >"D:\Programme\AutoIt3\SciTE\..\aut2exe\aut2exe.exe" /in "D:\Dokumente und Einstellungen\MG.DITO-5DHKSGSL4J\Desktop\Autoit-Scripte\_GetFilesFolder_Rekursiv.au3"
    >Exit code: 0 Time: 3.780

    Das wäre doch sowieso viel zu schnell, wenn die Suche doch länger dauern sollte? Laufwerk C:=2 GB, D:=12,5 GB, E:=5GB, F:=3 GB....?!?

  • ähm, aut2exe kompiliert dein Skript nur zu einer exe. Es wird nicht gestartet, und das geht so schnell.

    zum starten: doppelklick auf die Exe, die .au3 oder in Scite auf "Run (F5)"

    //Edit: Es gibt nur eine MsgBox, wenn beim ArraySearch spybotsd.exe, avcenter.exe oder autoit3.exe gefunden weden.

  • Hi, Progandy,
    danke für rasche Antwort. Aber Go=F5 bei Scite (also startet das) und die Meldung unten ist nach dem Ausführen von F5 bzw. Go. Ist exakt das gleiche Ergebnis wie bei direktem Klick auf die .au3 -Datei ..... Bei allen Versionen passiert nix, weder wird was gefunden oder was angezeigt.....
    Habe aus lauter Verzweiflung schon die entsprechende spybotsd.exe nochmal direkt unter Laufwerk C:\ sowie D:\
    kopiert, mit dem selben Ergebnis....
    Kann das an Win2000Prof liegen, das da nichts passiert oder an meiner Autoit-Version (3.2.13.13 vom 20.12.08 oder aber an der Scite-Version (Version 1.76 Jun 12 2008 09:52:15)?
    Danke wieder im Voraus & LG
    Manne.

  • Zitat

    Die Idee von Padmak ist super, das könnte klappen.

    Hey danke das hat noch nie jemand gesagt :D
    was mich interessiert:
    wie machst du das mit der Devcon.exe?
    also wie verwendest du die (parameter usw)
    das würd mich schon mal interessieren :D

    Zitat

    Ja, Du hast es sehr gut eingebaut (so weit ich das überblicke... *gg*), aber wenn ich es starte, passiert: nix

    wie startest du es?
    probiers am besten so wie es progandy gesagt hat
    wenns dann nicht funktioniert stimmt irgendwas nicht^^

    Probier mal hier statt der spybotsd.exe irgendeine Datei die gaaanz sicher auf deinem system ist, z.B. die explorer.exe
    und wichtig ist auch ob dein system bzw deine Programme überhaupt auf C:\ vorhanden sind oder auf einem anderen laufwerk

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Global $aFiles = _GetFilesFolder_Rekursiv('c:\', -1, 0)

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

    Global $iIndex = _ArraySearch($aFiles, 'spybotsd.exe', 0, 0, 0, 1)
    If $iIndex <> -1 Then MsgBox(0,0, 'Spybot = ' & $aFiles[$iIndex])

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

    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case '3'
    $sDelim = ';'
    Case '4'
    $sDelim = '|'
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc

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

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared('strFiles') Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

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

    Padmak

    Edit4(alle anderen waren sinnlos^^): Welche Programme brauchst du?
    Den Pfad von AntiVir kriegt man über die Registry

    [autoit]


    $antivir = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Avira\AntiVir PersonalEdition Classic", "Path")
    MsgBox(0, "", $antivir)
    $antivirpath = $antivir & "avcenter.exe"
    MsgBox(0, "", $antivirpath)

    [/autoit]


    SpyBot leider nicht

    3 Mal editiert, zuletzt von Padmak (25. Dezember 2008 um 17:49)

  • Ha, Ihr seid allesamt super!! Neuer Test des Scripts von Oscar, diesmal mit D:\ oben in
    Global $aFiles = _GetFilesFolder_Rekursiv('D:\', -1, 0)
    und funktioniert in erträglicher Zeit!!! Zwar weiß ich nicht, warum er das Script vorher meine Kopie auf C:\ nicht gefunden hat, wird wohl aber eher an dem Typen vor meinem PC liegen....*gg*. Und wie ich die vorhanden Laufwerke als String anstelle von dem C:\-Laufwerk einbinde, habe ich schon irgendwo gelesen, brauche es also hier nicht auch noch zu fragen.
    Ja, auch an Dich noch ein Lob, padmak *gg*. Benötigt wird noch TFUD.exe (Update von Threatfire), FirewallGUI.exe (ist beides von PC-Tools), update.exe von Avira PersonalPremium, TrueImage.exe sowie DiskDirector.exe von Acronis und eben Spybot - aber das letzte funktioniert ja (trotz mir....).
    Und wenn ich deine Regsuche anpasse (also AntiVir PersonalEdition Premium) funktioniert das super, many thanx again!!!
    Zu dem devcon habe ich erst einmal nur Test per cmd (kommandozeile) gemacht, ist aber fähig (wichtig ist das Leerzeichen vor dem =):
    devcon findall =net @pci* eventuell dann devcon findall =net @pci*>Log.txt
    devcon status =net @pci*
    devcon enabled/disabled =net @pci
    ...etc, habe noch nicht weiter probiert; geht aber nicht nur mit meinen "Auswahlgeräten". Am besten, du machst wie ich mal
    devcon /help >help.txt
    und schaust in Ruhe nach.
    LG
    Manne.

  • danke *gg*
    und all diese programme sind auf den PC's von deinen Kunden (ich nenn sie mal so :D) installiert???
    wenn ja dann: Öha
    wenn nein: was machste dann:D
    und überhaupt: was machstn du mit denen alles :D
    und inwiefern hast du die regsuche angepasst?
    an andere Programme oder was?
    die devcon probier ich gleich nach dem essen^^

    Padmak

  • Hi, nochmal. Ja, diese Programme sind alle installiert und es passt immer nie Zeitlich bei denjenigen in den Kram, wenn ich Updates und Checks machen soll (aber wehe, es funktioniert was nicht oder es ist ein Virus da...) und so will ich das automatisieren, um mich nicht jedesmal nach meinen Bemühungen per Hand auch noch ärgern zu müssen *gg*.

    Somit ist auch nächste Frage beantwortet - erst jeweils Updates der genannten Programme (außer Acronis) ziehen, dann der Reihe nach eine Überprüfung (außer den Firewall, der braucht nur Update). wenn das ganze automatisiert ist, brauchen die dann nur noch einen Knopf drücken - wenn es denen zeitlich gerade passt -, und dann läuft das von alleine. Aufpoppen muss das Script dann nur noch (und vor allem nerven), wenn das Script "ewig" nicht gestartet wurde, aber das kommt ganz zum Schluss, wenn alles läuft. Ach ja und wenn die Überprüfung vorbei ist, soll dann noch eine Acronis-Sicherung erfolgen... Aber Acronis scheint ja auch über die Reg zu finden zu sein...

    Und angepasst habe ich dein Script nur insofern, das du das kostenlose Avira-Programm suchst, hier aber fast in allen Fällen die Premium-edition genutz wird, also ich nur die Suche angepasst habe.

    Zu Devcon muss ich noch sagen, das ich nur noch wieder eine Idee brauche, wie ich die aktive Netzverbindung aus dem Text bekomme; bzw. wie ich weiß, welches bei Aktivierung durch mich die richtige Verbindung bei mehreren ist..... (bloß als Beispiel, ich habe mal einen WLan-Stick am Notebook, mal bin ich per Kabel online.. Wenn es aktiv ist, erkennt devcon das, wenn nicht, erkennt devcon nur, das ich zwei Verbindungen habe. Woher soll dann Programm wissen, wenn ich offline bin, ob ich gerade das Kabel oder den Stick dran habe....grübel..grübel..doch pingen und die Zeit checken...oder hast du - mal wieder - eine Super-Idee?)?
    So, das war es erstmal für heute, werde wahrscheinlich jetzt eine Weile nicht antworten können, maximal eventuell abends irgendwann, aber auf jeden Fall nächste Woche. Deshalb noch schöne Feiertage rings herum & ein schönes WE.
    LG
    Manne.

  • Zitat

    oder hast du - mal wieder - eine Super-Idee?

    Meinst du da mich damit?????
    [Blockierte Grafik: http://www.smileygarden.de/smilie/Smileygarden/peinlich.gif]

    Zitat

    Somit ist auch nächste Frage beantwortet - erst jeweils Updates der genannten Programme (außer Acronis) ziehen, dann der Reihe nach eine Überprüfung (außer den Firewall, der braucht nur Update). wenn das ganze automatisiert ist, brauchen die dann nur noch einen Knopf drücken - wenn es denen zeitlich gerade passt -, und dann läuft das von alleine. Aufpoppen muss das Script dann nur noch (und vor allem nerven), wenn das Script "ewig" nicht gestartet wurde, aber das kommt ganz zum Schluss, wenn alles läuft. Ach ja und wenn die Überprüfung vorbei ist, soll dann noch eine Acronis-Sicherung erfolgen... Aber Acronis scheint ja auch über die Reg zu finden zu sein...

    ist das erledigt oder muss der benuzter das noch machen?

    und zu dem letzten Problem:
    ich such schon den ganzen nachmittag^^
    devcon hab ich immer noch nicht verstanden aber wenn man die Informationen per CMD abrufen kann kann man sie auch abrufen (hab da irgendwo nen thread dazu gefunden^^)

    Hab ja n haufen zeit (bin schüler) :D

    Dir auch noch schöne Weihnachten

    Padmak

  • Hi, Padmak,
    nur kurz heute, jau, mit guten Ideen meinte ich AUCH (sorry *gg*) dich, aber die Ideen der anderen (nicht nur auf meine Frage bezogen) sind meist auch nicht von schlechten Eltern!
    Zu deiner Frage, wenn das Autoit-Programm irgendwann fertig ist, soll User nur noch auf Knopf drücken, alles andere erledigt Autoit komplett bis zum runterfahren des PCs (also wenn ALLE Updates, Überprüfungen und Sicherungen fertig sind)- soviel zur Theorie....bzw. Planung.

    Zu Devcon (ich nehme mal an, du hast es schon in deine System-Datei kopiert (also meinetwegen in C:\Windows\System32\ oder D:\Winnt\system32\, so das es von überall aufzurufen geht), dann geht doch mal in den Kommandomodus (Start-Ausführen-CMD enter) und gib dann ein:

    devcon /help>c:\devconhelp.txt (enter)

    Dann sollte eine devconhelp.txt-Datei unter C:\ zu finden sein, die du in Ruhe durchforschen kannst.
    Theoretisch sollte man auch so den Status der Netzverbindungen in eine txt-Datei schreiben können, aus welcher dann Autoit lesen kann, welche Verbindung (falls überhaupt eine...) aktiv ist. Und für die DAUs wie mich eine MSG-Box *gg*.

    Ist nur eine Anregung, die vllt auch anderen helfen könnte.
    LG & schönes WE
    Manne.