1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Kleiner

Beiträge von Kleiner

  • Universeller Datei / Ordner Sucher [ _Get_DateiSucher_Netzwerk_Dos ]

    • Kleiner
    • 6. Januar 2010 um 08:34

    Update


    Post#1


    LG Kleiner

  • Universeller Datei / Ordner Sucher [ _Get_DateiSucher_Netzwerk_Dos ]

    • Kleiner
    • 3. Januar 2010 um 02:03

    Universeller Datei / Ordner Sucher [ _Get_DateiSucher_Netzwerk_Dos ]
    Hallo Leute!
    Ich habe eine Universelle Funktion geschrieben die nach jeder Beliebigen Datei / Ordner Sucht
    Auf Lokal, Netzwerk u. CD/DVD Laufwerken natürlich auch USB.
    Die Funktion setzt sich aus_FileFindNet($SFile, $NPath , $LPath , $Path , $ESch) zusammen, läuft über CMD.

    Wildcards[ Gesuch* ( nicht CD/DVD Netzwerk ) | Gesuch.* ( nicht CD/DVD Netzwerk ) | *.Gesuch ( nicht Netzwrk ) | *.* ]


    Update: Wenn Fehler wir Error auf -1 gesetzt, Einstellung der Wildcards und ob Datei oder Pfad ausgegeben werden soll!

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <File.au3>
    ;==========================================================================================================
    ; Function Name: _FileFindNet($SFile, $NPath = True, $LPath = True, $Path = True, $ESch = True)
    ; Description: Auflistung von Dateien und Ordnern auf Lokalen, Netzwerk, CD/DVD - Laufwerk
    ; Parameter(s): $SFile der oder die zur Suchende Datei / Ordner
    ; $Path Lokaler Pfad
    ; $NetPath Netzwerk Pfad
    ; $Path 0 Mit Datei ausgabe, 1 nur Pfad ausgabe mit abschliesenden '\' auser bei
    ; benutzug von Wildcards (*.*)
    ; $ESch Einstellung der Wildcards [ 0 alle benutzbar , 1 (.*) nicht benutzbar ,
    ; 2 (*.) nicht benutzbar , 3 (*.*) keine Wildcards benutzbar
    ; Return Value(s): Array (Standard) mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner auser bei suche
    ; mit *.*
    ; wird $NetPath oder $Path nicht benutzt dann ein [ '' ] angeben
    ; Es geht nur einzelt entweder $Path oder $NetPath beides zusammen nicht!
    ; Wildcards[ Gesuch* ( nicht CD/DVD Netzwerk ) | *Gesuch ( nicht Netzwerk )
    ; |Gesuch.* ( nicht CD/DVD Netzwerk ) |*.Gesuch ( nicht Netzwrk ) | *.* ]
    ;
    ; bei Fehler wird Error auf -1 gesetzt
    ;
    ; Author(s): Kleiner27
    ;========================================================================================================

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

    Func _FileFindNet($SFile, $NPath = True, $LPath = True, $Path = True, $ESch = True)
    Dim $aEw[18] = ['*.*', '\\', '*', '.', '', '\', 'CDFS', 'UDF', 'dir /a /b /s ', ' ', ' /c ', 'Ü', 'ü', 'Ö', 'ö', 'Ä', 'ä', 'ß']
    Dim $Such = $SFile, $Proc, $line, $Ers, $aAr, $aN[1], $szDrive, $szDir, $szFName, $szExt, $EV, $evt, $PSp, $w, $z = 1
    Dim $STA1 = StringRight($Such, 1)
    Dim $STA2 = StringLeft($Such, 1)
    Dim $STA3 = StringLeft($NPath, 2)
    Dim $STA4 = DriveGetFileSystem($LPath)
    If $STA4 = $aEw[6] Or $STA4 = $aEw[7] And $STA1 = $aEw[2] And $Such <> $aEw[0] Then Return SetError(-1)
    Switch $ESch
    Case 0
    If $STA1 = $aEw[2] Or $STA2 = $aEw[2] And $Such <> $aEw[0] And $STA3 = $aEw[1] Then Return SetError(-1)
    Case 1
    If $STA1 = $aEw[2] Then Return SetError(-1)
    Case 2
    If $STA2 = $aEw[2] Then Return SetError(-1)
    Case 3
    If $STA2 = $aEw[2] Or $STA1 = $aEw[2] Then Return SetError(-1)
    EndSwitch
    If $Such = $aEw[0] Or $STA1 = $aEw[2] Or $STA2 = $aEw[2] Then
    $w = 0
    Else
    For $i = 11 To 1 Step -1
    If StringRight($Such, $i) = $aEw[3] & StringRight($Such, $i - 1) Then $Such = $aEw[2] & StringRight($Such, $i)
    Next
    If $Such = $SFile Then $Such = $aEw[0]
    $w = 1
    EndIf
    $Proc = Run(@ComSpec & $aEw[10] & $aEw[8] & $Such & $aEw[9] & $NPath, $LPath, @SW_HIDE, 2)
    While 1
    $line &= StdoutRead($Proc, 0, 0)
    If @error Then ExitLoop
    $Ers = StringReplace(StringReplace(StringReplace(StringReplace(StringReplace(StringReplace(StringReplace($line, Chr(154), $aEw[11]), Chr(129), $aEw[12]), Chr(153), $aEw[13]), Chr(148), $aEw[14]), Chr(142), $aEw[15]), Chr(132), $aEw[16]), Chr(225), $aEw[17])
    WEnd
    $aAr = StringSplit(StringTrimRight($Ers, 2), @CRLF, 3)
    If $Such = $aEw[0] And $STA3 = $aEw[1] Or $Such = $aEw[0] And $w = 0 Or $aAr[0] = $aEw[4] Then Return $aAr
    Switch $Path
    Case 1
    Switch $w
    Case 0
    For $i = 0 To UBound($aAr) - 1
    ReDim $aN[$z + 1]
    $PSp = _PathSplit($aAr[$i], $szDrive, $szDir, $szFName, $szExt)
    $aN[$z] = $PSp[1] & $PSp[2]
    $z += 1
    Next
    $aN[0] = $z - 1
    Return $aN
    Case 1
    For $i = 0 To UBound($aAr) - 1
    $Str = StringSplit($aAr[$i], $aEw[5])
    If $Str[$Str[0]] = $SFile Then
    ReDim $aN[$z + 1]
    $PSp = _PathSplit($aAr[$i], $szDrive, $szDir, $szFName, $szExt)
    $aN[$z] = $PSp[1] & $PSp[2]
    $z += 1
    EndIf
    Next
    $aN[0] = $z - 1
    Return $aN
    EndSwitch
    Case Else
    Switch $w
    Case 0
    For $i = 0 To UBound($aAr) - 1
    ReDim $aN[$z + 1]
    $aN[$z] = $aAr[$i]
    $z += 1
    Next
    $aN[0] = $z - 1
    Return $aN
    Case 1
    For $i = 0 To UBound($aAr) - 1
    $Str = StringSplit($aAr[$i], $aEw[5])
    If $Str[$Str[0]] = $SFile Then
    ReDim $aN[$z + 1]
    $aN[$z] = $aAr[$i]
    $z += 1
    EndIf
    Next
    $aN[0] = $z - 1
    Return $aN
    EndSwitch
    EndSwitch
    EndFunc ;==>_FileFindNet

    [/autoit]


    Spoiler anzeigen
    [autoit]

    #include <_FileFindNet.au3>
    #include <Array.au3>

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

    $aTest = _FileFindNet('note*','','C:\',0,0)
    _ArrayDisplay($aTest)

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

    $aTest = _FileFindNet('notepad.*','','C:\',0,1)
    _ArrayDisplay($aTest)

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

    $aTest = _FileFindNet('*.log','','C:\',1,0)
    _ArrayDisplay($aTest)

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

    $aTest = _FileFindNet('notepad.exe','','C:\',0,0)
    _ArrayDisplay($aTest)

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

    $aTest = _FileFindNet('Temporary Internet Files','','C:\',0,0)
    _ArrayDisplay($aTest)

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

    $aTest = _FileFindNet('*.*','','C:\',0,0)
    _ArrayDisplay($aTest)

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

    $aTest = _FileFindNet('*.bat','','C:\',0,0)
    _ArrayDisplay($aTest)

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

    $aTest = _FileFindNet('*.wma','','C:\',0,0)
    _ArrayDisplay($aTest)

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

    $aTest = _FileFindNet('*mp3','','C:\',0,2)
    _ArrayDisplay($aTest)

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

    $aTest = _FileFindNet('win*','','C:\',1,0)
    _ArrayDisplay($aTest)

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

    ;$aTest = _FileFindNet('*.*','\\TestPC\C','')
    ;_ArrayDisplay($aTest

    [/autoit]

    Und noch mal zu Downloaden!


    Viel spass!

    LG Kleiner

    Dateien

    _FileFindNet.au3 4,62 kB – 343 Downloads
  • DateiSucher

    • Kleiner
    • 31. Dezember 2009 um 16:15

    Update

    Post#1


    LG Kleiner

  • nuts hats [Geburtstag!!]

    • Kleiner
    • 26. Dezember 2009 um 09:42

    Hey Nuts!

    Alles gute nachträglich auch von mir und ein Frohes Fest!


    LG Kleiner

  • DateiSucher

    • Kleiner
    • 25. Dezember 2009 um 23:50

    Neu Funktion!

    Post#1


    LG Kleiner

  • DateiSucher

    • Kleiner
    • 20. Dezember 2009 um 19:20

    In der Version schafe ich die datein in 3,7 sec zu suchen und mit deiner 1,3 sec!

    Spoiler anzeigen
    [autoit]

    #include <_GetFilesFolder_Rekursiv.au3>
    #include <Array.au3>
    #include <GuiEdit.au3>

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

    Opt("GUIOnEventMode", 1)

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

    GUICreate('test', 500, 500, -1, -1)
    GUISetOnEvent(-3, '_Exit')
    $SYS = GUICtrlCreateEdit('', 0, 0, 400, 400)
    GUISetState()

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

    _DateiSucher()

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

    Func _DateiSucher()
    Dim $x = 1, $y = 1, $Gesuch = 'notepad.exe', $Label = 'C:\', $Info, $file, $Array
    $Array = _GetFilesFolder_Rekursiv($Label, $x, $y)
    For $i = 1 To UBound($Array) - 1
    $Info = FileFindFirstFile($Array[$i] & '*.*')
    Do
    $file = FileFindNextFile($Info)
    If $file = $Gesuch Then _GUICtrlEdit_InsertText($SYS, $Array[$i] & $Gesuch & @CRLF)
    Until $file = ''
    Next
    EndFunc ;==>_DateiSucher

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

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

    While 1 * Sleep(10)
    WEnd

    [/autoit]

    LG Kleiner

  • DOS-Suchfunktionen

    • Kleiner
    • 20. Dezember 2009 um 18:53

    Gute sache Stellt mein Code voll in den Schatten! :D


    LG Kleiner

  • DateiSucher

    • Kleiner
    • 20. Dezember 2009 um 18:43

    Also!

    Wenn ich in diesem Verzeichnis [ C:\Dokumente und Einstellungen\.......\Anwendungsdaten\.purple\logs\msn\.......@live.de\......l@msn.de] diese Datei 2009-10-16.195302+0200CET.html suche bekomme ich nichts ausgegeben!


    Spoiler anzeigen
    [autoit]

    #include <_GetFilesFolder_Rekursiv.au3>
    #include <Array.au3>
    #include <GuiEdit.au3>
    Opt("GUIOnEventMode", 1)
    GUICreate('test',500,500,-1,-1)
    GUISetOnEvent(-3, '_Exit')
    $SYS = GUICtrlCreateEdit('', 0, 0, 400, 400)
    GUISetState()

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

    _DateiSucher()

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

    Func _DateiSucher()
    Local $x = 1, $y = 1, $Gesuch = '2009-10-16.195302+0200CET.html', $Label = 'C:\'
    Dim $aRueckgabeArray = _GetFilesFolder_Rekursiv($Label, $x, $y)
    For $i = 1 To $aRueckgabeArray[0]
    Suchen(FileFindFirstFile($aRueckgabeArray[$i] & '*.*'), $aRueckgabeArray[$i], $Gesuch)
    Next
    EndFunc ;==>_DateiSucher

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

    ;-----------------------------------------------
    ;---Suchen($PfadPDE, $Pfad, $Gesuch)
    ;
    ;~ [PfadPDE] = Pfad\*.*
    ;
    ;~ [$Pfad] = Pfad\
    ;
    ;~ [$Gesuch] = Gesuchte Datei
    ;
    ;----------------------------------------------

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

    Func Suchen($PfadPDE, $Pfad, $Gesuch)
    While 1
    If FileFindNextFile($PfadPDE) = '' Then ExitLoop
    If FileFindNextFile($PfadPDE) = $Gesuch Then _GUICtrlEdit_InsertText($SYS, $Pfad & $Gesuch & @CRLF );MsgBox(0,0,$Pfad & $Gesuch)
    WEnd
    EndFunc ;==>Suchen

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

    Func _Exit()
    Exit
    EndFunc

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

    While 1 * Sleep(10)
    WEn

    [/autoit]

    Ich kann noch nicht sagen ob es an BugFix seine Funktion lieg aber meine im zusammenhang klapt nicht

    Edir: an BugFix Funktion liegt es nicht!


    Edit2: habe den fehler gefunden ich hatte die abfrage geendert in

    [autoit]

    While 1
    If FileFindNextFile($PfadPDE) = '' Then ExitLoop
    If FileFindNextFile($PfadPDE) = $Gesuch Then _GUICtrlEdit_InsertText($SYS, $Pfad & $Gesuch & @CRLF );MsgBox(0,0,$Pfad & $Gesuch)
    WEnd

    [/autoit]

    und so geht es

    [autoit]

    While 1
    Dim $file = FileFindNextFile($PfadPDE)
    If $file = '' Then ExitLoop
    If $file = $Gesuch Then _GUICtrlEdit_InsertText($SYS, $Pfad & $Gesuch & @CRLF );MsgBox(0,0,$Pfad & $Gesuch)
    WEnd

    [/autoit]

    Aber auf jeden fall ist miene func langsamer! :(


    LG Kleiner

  • DateiSucher

    • Kleiner
    • 20. Dezember 2009 um 18:32

    _GetFilesFolder_Rekursiv

  • DateiSucher

    • Kleiner
    • 20. Dezember 2009 um 18:23

    funkey

    Du hast vollkommen recht habe noch ein wenig getestet manche datein findet er nicht :(


    LG Kleiner

  • DateiSucher

    • Kleiner
    • 20. Dezember 2009 um 16:57

    Hallo Leute habe den DateiSucher erweitert Funkey hatte schon recht das _GetFilesFolder_Rekursiv
    Nicht die richtige Func ist aber eine super alternative!

    Option1: Es lassen sich alle Dateien suche egal wie sie geschrieben und auf welchem Lokalen Laufwerk sie liegt.

    Option2: Suchen mit Wildcards Einzige Einschränkung das Dateien zusammenhängend geschrieben sein müssen und es lässt sich nicht auf CD/DVD Laufwerke suchen. [ und Netz.w.-Laufwerke ]

    Option3: Doppelklick auf ein gefundenen Eintrag und es öffnet sich das Verzeichnis in dem die Datei liegt.

    Neu!!!!!!

    Option4: Auf Freigegebenen Netzwerk-Laufwerke suchen, bei Fund auch Ordner Öffnen möglich [ Die Funktion ist noch nicht ausreichend Getestet ]
    Bitte Postet eure Test-Läufe!

    Option5: ( Datei-Option) Dateien Kopieren, Verschieben, Löschen, Umbenennen [ nicht auf Netz.w.-Laufwerke ]

    Update: überarbeitet!

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=655.ico
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ListviewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <_FileFindNet.au3>
    #include <GuiListView.au3>
    #include <String.au3>
    #include <File.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Global $szDrive, $szDir, $szFName, $szExt, $EV, $evt, $Path
    Global Const $D_B_C = -3
    Local $SYS[13]
    MsgBox(0, 'Info', 'Laufwerke werden Automatisch erkannt und durchsucht!')
    GUICreate('Datei - Sucher', 800, 460, -1, -1)
    GUISetBkColor(0x09999999)
    GUISetOnEvent(-3, '_ExitComand')
    $SYS[0] = GUICtrlCreateListView('', 0, 0, 800, 400)
    Local $hLV = GUICtrlGetHandle($SYS[0])
    _GUICtrlListView_AddColumn($hLV, 'Fund [ Laufwerk: \ Pfad \ Datei ] - DoubleClick zum Öffnen des Verzeichnis! ', 500)
    $SYS[1] = GUICtrlCreateInput('', 5, 420, 240, 20)
    $SYS[2] = GUICtrlCreateCheckbox('Nur Freigegebene Netzwerk-Laufwerke', 430, 410, 205, 20)
    $SYS[3] = GUICtrlCreateLabel('Fund:', 690, 423, 30, 20)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 9, 900, '', '')
    $SYS[4] = GUICtrlCreateLabel('', 730, 423, 50, 20)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 9, 900, '', '')
    GUICtrlCreateButton('Suchen', 260, 417, 70, 25)
    GUICtrlSetOnEvent(-1, '_Starter')
    GUICtrlCreateButton('Option', 345, 417, 70, 25)
    GUICtrlSetOnEvent(-1, 'OPSHOW')
    $SYS[11] = GUICtrlCreateLabel('', 5, 443, 250, 20)
    $SYS[12] = GUICtrlCreateCheckbox('Nur Pfad ausgabe ', 430, 430, 205, 20)
    GUISetState()
    GUIRegisterMsg(0x004E, 'VOeffnen')

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

    Global $GUI1 = GUICreate('Datei Option', 480, 100, -1, -1, $WS_POPUPWINDOW)
    GUISetBkColor(0x09999999)
    $SYS[5] = GUICtrlCreateButton('Kopieren', 20, 30, 80, 22)
    GUICtrlSetOnEvent(-1, 'Option')
    $SYS[6] = GUICtrlCreateButton('Verschieben', 110, 30, 80, 22)
    GUICtrlSetOnEvent(-1, 'Option')
    $SYS[7] = GUICtrlCreateButton('Löschen', 200, 30, 80, 22)
    GUICtrlSetOnEvent(-1, 'Option')
    $SYS[8] = GUICtrlCreateButton('Umbenennen', 20, 58, 80, 22)
    GUICtrlSetOnEvent(-1, 'Option')
    $SYS[9] = GUICtrlCreateInput('', 110, 60, 350, 20)
    GUICtrlCreateButton('Exit', 380, 30, 80, 22)
    GUICtrlSetOnEvent(-1, '_Exit1')
    GUICtrlCreateLabel(' Datei Option', 0, 5, 1000, 20, -1, $GUI_WS_EX_PARENTDRAG)
    GUICtrlSetFont(-1, 11, 900, '', '')
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlCreateButton('Aktualisieren', 290, 30, 80, 22)
    GUICtrlSetOnEvent(-1, 'OPSHOW')
    GUISetState(@SW_HIDE, $GUI1)

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

    Func _Starter()
    Dim $Suche = GUICtrlRead($SYS[1]), $Drive, $st = '.', $a, $y, $z = 0, $j_N = 0, $co
    If $Suche = '' Then Return GUICtrlCreateListViewItem(' " Error " Keine Eingabe im Suchfeld', $SYS[0])
    If $Suche = '*.*' Or $Suche = '*.' Or $Suche = '.*' Then Return MsgBox(0, 'Info', 'Diese [*.*] Wildcard oder nur [*.] u. [.*] wird nicht unterstützt!')
    _GUICtrlListView_DeleteAllItems($hLV)
    GUICtrlSetData($SYS[4], '')
    Dim $obWMI = ObjGet('winmgmts:\\' & $st & '\root\CIMV2')
    If BitAND(GUICtrlRead($SYS[12]), $GUI_CHECKED) = $GUI_CHECKED Then $j_N = 1
    If BitAND(GUICtrlRead($SYS[2]), $GUI_CHECKED) = $GUI_CHECKED Then
    $co = $obWMI.ExecQuery('SELECT * FROM Win32_SystemNetworkConnections')
    If Not IsObj($co) Then Return MsgBox(0, 'WMI Output', 'No WMI Objects Found for class: ' & 'Drive')
    SplashTextOn('Suche gestartet', ' Bitte warten.....', 150, 40, -1, -1, 20, '', 13)
    For $ob In $co
    $y = StringSplit($ob.PartComponent, '\')
    GUICtrlSetData($SYS[11], 'Suche in : ' & StringReplace('\\' & $y[9] & '\' & $y[11], '"', ''))
    $a = _FileFindNet($Suche, StringReplace('\\' & $y[9] & '\' & $y[11], '"', ''), '', $j_N, 0)
    For $n = 1 To UBound($a) - 1
    GUICtrlCreateListViewItem($a[$n], $SYS[0])
    Next
    GUICtrlSetData($SYS[4], $a[0])
    Next
    Else
    $co = DriveGetDrive('all')
    SplashTextOn('Suche gestartet', ' Bitte warten.....', 150, 40, -1, -1, 20, "", 13)
    For $i = 1 To UBound($co) - 1
    $Drive = DriveGetFileSystem($co)
    If @error = 1 Then ContinueLoop
    GUICtrlSetData($SYS[11], 'Suche in : ' & _StringProper($co[$i] & '\') & ' ' & $Drive)
    $a = _FileFindNet($Suche, '', _StringProper($co[$i] & '\'), $j_N, 0)
    If @error Then ContinueLoop
    $z += $a[0]
    For $n = 1 To UBound($a) - 1
    GUICtrlCreateListViewItem($a[$n], $SYS[0])
    Next
    GUICtrlSetData($SYS[4], $z)
    Next
    EndIf
    _GUICtrlListView_SetColumnWidth($SYS[0], 0, $LVSCW_AUTOSIZE)
    SplashOff()
    EndFunc ;==>_Starter

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

    Func OPSHOW()
    If GUICtrlRead($SYS[0]) = ' ' Then Return MsgBox(0, 'Info', 'Bitte wählen sie eine Datei im Hauptprogramm [ Tabelle ] aus ! ')
    $Path = _PathSplit(StringReplace(GUICtrlRead(GUICtrlRead($SYS[0])), '|', ' '), $szDrive, $szDir, $szFName, $szExt)
    GUICtrlSetData($SYS[9], $Path[3] & $Path[4])
    GUISetState(@SW_SHOW, $GUI1)
    EndFunc ;==>OPSHOW

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

    Func Option()
    Dim $Folder, $len
    $Path = _PathSplit(StringReplace(GUICtrlRead(GUICtrlRead($SYS[0])), '|', ' '), $szDrive, $szDir, $szFName, $szExt)
    Switch @GUI_CtrlId
    Case $SYS[5]
    $Folder = FileSelectFolder('Ordner auswählen', '')
    FileCopy($Path[1] & $Path[2] & GUICtrlRead($SYS[9]), $Folder & '\')
    ShellExecute($Folder)
    Case $SYS[6]
    $Folder = FileSelectFolder('Ordner auswählen', '')
    FileMove($Path[1] & $Path[2] & GUICtrlRead($SYS[9]), $Folder & '\')
    ShellExecute($Folder)
    Case $SYS[7]
    FileDelete($Path[1] & $Path[2] & GUICtrlRead($SYS[9]))
    Case $SYS[8]
    If StringLeft(GUICtrlRead($SYS[11]), 2) = '\\' Then Return MsgBox(0, 'Info', ' Datei kann auf diesen Wege nicht Umbenannt werden!')
    $len = StringLen($Path[1] & $Path[2])
    Run(@ComSpec & ' /c ' & $Path[1] & ' & cd ' & StringLeft($Path[1] & $Path[2], $len - 1) & ' & REN ' & $Path[3] & $Path[4] & '' & GUICtrlRead($SYS[9]), '', @SW_HIDE, 2)
    ShellExecute($Path[1] & $Path[2])
    EndSwitch
    EndFunc ;==>Option

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

    Func VOeffnen($hWndGUI, $MsgID, $wP, $lP)
    If GUICtrlRead(GUICtrlRead($SYS[0])) = '' Then Return (0)
    $EV = DllStructCreate('int;int;int', $lP)
    If @error Then Return
    $evt = DllStructGetData($EV, 3)
    If $wP = $SYS[0] Then
    If $evt = $D_B_C Then
    $Path = _PathSplit(StringReplace(GUICtrlRead(GUICtrlRead($SYS[0])), '|', ''), $szDrive, $szDir, $szFName, $szExt)
    ShellExecute($Path[1] & $Path[2])
    EndIf
    EndIf
    EndFunc ;==>VOeffnen

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

    Func _ExitComand()
    Exit
    EndFunc ;==>_ExitComand

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

    Func _Exit1()
    GUISetState(@SW_HIDE, $GUI1)
    EndFunc ;==>_Exit1

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

    While 1 * Sleep(10)
    WEnd

    [/autoit]


    Lg Kleiner

  • Ist Datum ein Feiertag ?

    • Kleiner
    • 12. Dezember 2009 um 09:54

    Hi Bugfix!!


    Supper Arbeit!
    Deutlich kleiner und Flexibler!


    LG Kleiner

  • Ordner umbenennen

    • Kleiner
    • 12. Dezember 2009 um 09:17

    Guten Morgen!


    In der hilfe steht: Weil AutoIt eine "Ordner Umbenennen"-Funktion fehlt, ist DirMove zu benutzen, um einen Ordner umzubenennen!

    Beispiel:

    [autoit]

    DirMove(@ScriptDir & '\Test',@ScriptDir & '\Test1')

    [/autoit]


    LG Kleiner

  • XP-CD Key auslesen

    • Kleiner
    • 8. Dezember 2009 um 19:38

    Hallo !

    Ist zwar schon gelöst aber der fehler liegt am auslesen!

    [autoit]

    $binaryDPID = stringmid($binaryDPID,105,30)

    [/autoit]


    Richtig wehr ab der 107 stelle!

    [autoit]

    $binaryDPID = stringmid($binaryDPID,107)

    [/autoit]


    Beim reg auslesen wird 0x vorne rangestellt also zwei stellen zu früh wird der code gerechnet!

    Den code habe ich ihr im forum gefunden der es von Xenobiologist - 2006

    Von mir geendert:

    Spoiler anzeigen
    [autoit]

    Dim $Bin = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "DigitalProductID")
    MsgBox(0, '', 'Dein Produkt Key: ' & ProKey($Bin))
    Func ProKey($bia)
    Dim $a[15], $b[29], $c[24], $s = 15, $d = 29, $v = 0, $n = 0, $i = 0, $r, $h = 0
    $c = StringSplit("BCDFGHJKMPQRTVWXY2346789", "")
    $bia = StringMid($bia, 107, 30)
    For $i = 1 To 29 Step 2
    $a[Int($i / 2)] = Dec(StringMid($bia, $i, 2))
    Next
    For $i = $d - 1 To 0 Step -1
    If Mod(($i + 1), 6) = 0 Then
    $b[$i] = "-"
    Else
    $h = 0
    For $n = $s - 1 To 0 Step -1
    $v = BitOR(BitShift($h, -8), $a[$n])
    $a[$n] = Int($v / 24)
    $h = Mod($v, 24)
    Next
    $b[$i] = $c[$h + 1]
    EndIf
    Next
    For $i = 0 To 28
    $r = $r & $b[$i]
    Next
    Return $r
    EndFunc ;==>ProKey

    [/autoit]

    LG Kleiner

  • Checkboxen

    • Kleiner
    • 8. Dezember 2009 um 06:39

    So Heute schreiben wir eine Klausur Test ! (sind wir mal nicht ganz so Streng)

    Also sp3333dy was hast du die letzten 4 Tage gelernt?

    Array: Wie werden Array aufgebaut______?
    Aus welchem Grund benutzt man Array_______?
    For … Next: Wie Funktioniert eine For Next schleife______?
    Aus welchem Grund benutzt man For Next schleifen______?
    *.Ini: Wie ist eine *.ini aufgebaut______?
    Ab wo ist der erste Eintrag im Array_______?
    Ab wo ist der erste Eintrag im *.Ini_______?
    Wo lest sich der Index bei *.iniArray ermitteln____________?
    Was bedeutet in einer IF abfrage das Not , Or und das And ________?

    Bewertung von 1-6

    Edit: Zeit von 06:39 bis 20:00 Uhr


    Lg Kleiner

  • Hardware deaktivieren

    • Kleiner
    • 7. Dezember 2009 um 07:51

    Moin Moin geht ganz einfach!


    USB Storage Device aktivieren oder deaktivieren


    Kurzinfo: USB-Massenspeicher
    Plattform: Win 2000, Win XP, Win 2003
    Beschreibung:
    Den USB-Massenspeichertreiber kann man computerbezogen oder benutzerbezogen de- bzw. aktivieren.

    Benutzerbezogen, wenn noch kein USB-Speichergerät auf dem Computer installiert ist:

    Dem jeweiligen Benutzer oder der Gruppe für die Dateien USBSTOR.SYS, USBSTOR.INF und Usbstor.pnf in den Eigenschaften unter "Sicherheit" die Rechte entziehen.
    USBSTOR.SYS liegt im Verzeichnis C:\Windows\system32\drivers, die USBSTOR.INF und die Usbstor.pnf in C:\Windows\inf.
    Zusätzlich muss für die Zugriffsverweigerung das Systemkonto für Usbstor.pnf auf "Verweigern" festgelegt werden.


    Benutzer können anschließend kein USB-Speichergerät mehr auf dem Computer installieren.

    Computerbezogen, wenn bereits ein USB-Speichergerät auf dem Computer installiert ist:

    In der Registry unter


    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR


    den Wert Start ändern.
    Wert 3 Hexadezimal = aktiviert
    Wert 4 Hexadezimal = deaktiviert

    Der Wert 4 hat zur Folge, dass das USB-Speichergerät nicht funktioniert, wenn das Gerät an den Computer angeschlossen wird.


    LG Kleiner

  • Checkboxen

    • Kleiner
    • 7. Dezember 2009 um 07:41

    Moin Leute!

    Die hilfe ist ja schon weit voran geschriten! :D

    Meine lösung:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 553, 165, 236, 264)
    ; ,---Array mit 3 Inhalten 2 Spalten
    ; |
    ; |
    ; | Index = 3 1 Spalte Index = 3 2 Spalte
    ; | ,-$acheckBox[0][0] Checkbox $acheckBox[0][1] 1
    ; | |
    ; | |,$acheckBox[1][0] Checkbox1 $acheckBox[1][1] 1
    ; | |
    ; | |,$acheckBox[2][0] Checkbox $acheckBox[2][1] 1
    ; | |
    ; | |
    ; | |
    ; | |
    Local $acheckBox[3][2] = [["Checkbox", 1],["Checkbox1", 1],["Checkbox2", 1]]
    ;
    ; ,-Neu ArrayVariable dür die Erstellung der CheckBoxen
    Local $checkErstellen[3], $x = 48;$x ist eine variable zum erstellen der Checkbox in unserm fall ist die erste GUICtrlCreateCheckbox('CheckBox',352,48,97, 17) $x = 48
    ; ,-- $i = Zähler Variable zweite GUICtrlCreateCheckbox('CheckBox',352,92,97, 17) $x + 24
    ; | Drite GUICtrlCreateCheckbox('CheckBox',352,140,97, 17)$x + 24
    ; |,- Wir weisen $i 0 zu das beseutet das $i ab 0 anfängt zu zählen
    ; |
    ; | ,1 ,2 ,3
    ; |,- In unserem Beispiel bis To 2 also bis 2 bedeutet 0 - 1 - 2
    ; |
    ; |- $i = 0 CheckBox 1 erstellen dann $i = 1 CheckBox 2 erstellen dann $i = 2 CheckBox 3 erstellen
    ; |
    For $i = 0 To 2
    ; ,Ihr kommt unsere erstes Array zu einsatz für sie nahmen der einzelne Checkbox
    ; |
    ; |,$i = 0 dann hat auch $acheckBox[0][0] = "Checkbox" -> 1
    ; |
    ; |,$i = 1 dann hat auch $acheckBox[1][0] = "Checkbox1" -> 2
    ; |
    ; |,$i = 2 dann hat auch $acheckBox[2][0] = "Checkbox2" -> 3
    ; |
    ; |
    ; |
    ; |
    $checkErstellen[$i] = GUICtrlCreateCheckbox($acheckBox[$i][0], 352, $x, 97, 17)
    $x += 24
    Next

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

    $Button1 = GUICtrlCreateButton("Button1", 352, 120, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 432, 120, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    If FileExists(@ScriptDir & '\Test.ini') Then
    Local $IniAus = IniReadSection(@ScriptDir & '\Test.ini', "Test")
    ;
    ;
    ;, (1) Bei der *.Ini auslesung ist das verhalten gleich auser das bei den ini Array[0][0] alle einträge beinhaltet
    ;
    ;, (2) Also fangen wir von 1 und nicht von 0 an zu Zähle Beipiel Array[0][0] wird ausgelesen z.B kommt 4-4 raus also 4 schlüssel 4 werte beinhaltet die *.ini
    ;- in unserm fall brauchen wir den Index nicht darum Array[1][0] fangen wir an aber wir wollen ja nicht den schlüssel sondern den wert also fangen wir von
    ;- Array[1][1] an!
    ;
    For $i = 1 To UBound($IniAus) - 1
    ;
    ; ,Ihr kommt man durcheinander weil beispil iniArray[1][1] erster eintrag
    ; | $acheckBox[1][1] zweiter eintrag
    ; |vergleichen wir die beiden würde wir iniArray[1][1] = 1 und $acheckBox[1][1] = 2, eigentlich soll $acheckBox[0][1] = 1 eintrag
    ; |sein darum $i -1 erklärung $acheckBox[$i = 1 -1 wieder 0][1]
    If $IniAus[$i][1] = $acheckBox[$i - 1][1] Then GUICtrlSetState($checkErstellen[$i - 1], $GUI_CHECKED)
    Next
    EndIf

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    _Ini()
    Exit
    Case $Button1
    For $i = 0 To UBound($checkErstellen) - 1;-Ihr benutzen wir [ UBound ] weil alle Prüfen werden können ohne fehler | Prüfen welche CheckBox Aktiv ist
    If GUICtrlRead($checkErstellen[$i]) = $GUI_CHECKED Or GUICtrlRead($checkErstellen[$i]) = $GUI_CHECKED Or GUICtrlRead($checkErstellen[$i]) = $GUI_CHECKED Then MsgBox(0, "Welche Check Aktiv", $acheckBox[$i][0])
    Next
    EndSwitch
    WEnd

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

    Func _Ini();---Speichern der Aktiven CheckBox
    For $i = 0 To UBound($checkErstellen) - 1
    If BitAND(GUICtrlRead($checkErstellen[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
    $Check = 1 ;- wenn Aktiv = 1 Speichern
    Else
    $Check = 0
    EndIf
    IniWrite(@ScriptDir & '\Test.ini', "Test", $acheckBox[$i][0], $Check)
    Next
    EndFunc ;==>_Ini

    [/autoit]

    Ein bischen soltest du schon selber machen gut jetzt hast du alles was du braucht aber der lernefeckt ist weit aus geringer!

    LG Kleiner

  • Windows-Info v 1.0.2 [ Crazy Eye ]

    • Kleiner
    • 6. Dezember 2009 um 17:48

    Update: 06.12.2009

    Post#1


    Lg Kleiner

  • Wie kann ich mich mit einem AutoIt Script abmelden, sodass das Script weiter läuft???

    • Kleiner
    • 6. Dezember 2009 um 14:01

    Mach mal ein test melde dich mal von windows ab ohne ein Prog. zu schließen und melde dich wieder an und sag mir deine erfahrung!


    LG Kleiner

  • Wie kann ich mich mit einem AutoIt Script abmelden, sodass das Script weiter läuft???

    • Kleiner
    • 6. Dezember 2009 um 13:43

    :rofl:

    PS: Ist Nicht Persönlich!

    LG Kleiner

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™