Beiträge von Kleiner
-
-
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
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#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
;========================================================================================================Func _FileFindNet($SFile, $NPath = True, $LPath = True, $Path = True, $ESch = True)
[/autoit]
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 ;==>_FileFindNetSpoiler anzeigen
[autoit]#include <_FileFindNet.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>$aTest = _FileFindNet('note*','','C:\',0,0)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aTest)$aTest = _FileFindNet('notepad.*','','C:\',0,1)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aTest)$aTest = _FileFindNet('*.log','','C:\',1,0)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aTest)$aTest = _FileFindNet('notepad.exe','','C:\',0,0)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aTest)$aTest = _FileFindNet('Temporary Internet Files','','C:\',0,0)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aTest)$aTest = _FileFindNet('*.*','','C:\',0,0)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aTest)$aTest = _FileFindNet('*.bat','','C:\',0,0)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aTest)$aTest = _FileFindNet('*.wma','','C:\',0,0)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aTest)$aTest = _FileFindNet('*mp3','','C:\',0,2)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aTest)$aTest = _FileFindNet('win*','','C:\',1,0)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aTest);$aTest = _FileFindNet('*.*','\\TestPC\C','')
[/autoit]
;_ArrayDisplay($aTestUnd noch mal zu Downloaden!
Viel spass!
LG Kleiner
-
Update
Post#1
LG Kleiner
-
Hey Nuts!
Alles gute nachträglich auch von mir und ein Frohes Fest!
LG Kleiner
-
Neu Funktion!
Post#1
LG Kleiner
-
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>
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <GuiEdit.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]GUICreate('test', 500, 500, -1, -1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent(-3, '_Exit')
$SYS = GUICtrlCreateEdit('', 0, 0, 400, 400)
GUISetState()_DateiSucher()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _DateiSucher()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
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 ;==>_DateiSucherFunc _Exit()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc ;==>_ExitWhile 1 * Sleep(10)
[/autoit]
WEndLG Kleiner
-
Gute sache Stellt mein Code voll in den Schatten!

LG Kleiner
-
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>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#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()_DateiSucher()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _DateiSucher()
[/autoit] [autoit][/autoit] [autoit]
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
;
;----------------------------------------------Func Suchen($PfadPDE, $Pfad, $Gesuch)
[/autoit] [autoit][/autoit] [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
EndFunc ;==>SuchenFunc _Exit()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncWhile 1 * Sleep(10)
[/autoit]
WEnIch 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
[/autoit]
If FileFindNextFile($PfadPDE) = '' Then ExitLoop
If FileFindNextFile($PfadPDE) = $Gesuch Then _GUICtrlEdit_InsertText($SYS, $Pfad & $Gesuch & @CRLF );MsgBox(0,0,$Pfad & $Gesuch)
WEndund so geht es
[autoit]While 1
[/autoit]
Dim $file = FileFindNextFile($PfadPDE)
If $file = '' Then ExitLoop
If $file = $Gesuch Then _GUICtrlEdit_InsertText($SYS, $Pfad & $Gesuch & @CRLF );MsgBox(0,0,$Pfad & $Gesuch)
WEndAber auf jeden fall ist miene func langsamer!

LG Kleiner
-
_GetFilesFolder_Rekursiv
-
Du hast vollkommen recht habe noch ein wenig getestet manche datein findet er nicht

LG Kleiner
-
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 ****
[/autoit] [autoit][/autoit] [autoit]
#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>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $szDrive, $szDir, $szFName, $szExt, $EV, $evt, $Path
[/autoit] [autoit][/autoit] [autoit]
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')Global $GUI1 = GUICreate('Datei Option', 480, 100, -1, -1, $WS_POPUPWINDOW)
[/autoit] [autoit][/autoit] [autoit]
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)Func _Starter()
[/autoit] [autoit][/autoit] [autoit]
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 ;==>_StarterFunc OPSHOW()
[/autoit] [autoit][/autoit] [autoit]
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 ;==>OPSHOWFunc Option()
[/autoit] [autoit][/autoit] [autoit]
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 ;==>OptionFunc VOeffnen($hWndGUI, $MsgID, $wP, $lP)
[/autoit] [autoit][/autoit] [autoit]
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 ;==>VOeffnenFunc _ExitComand()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc ;==>_ExitComandFunc _Exit1()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $GUI1)
EndFunc ;==>_Exit1While 1 * Sleep(10)
[/autoit]
WEndLg Kleiner
-
Hi Bugfix!!
Supper Arbeit!
Deutlich kleiner und Flexibler!LG Kleiner
-
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
-
Hallo !
Ist zwar schon gelöst aber der fehler liegt am auslesen!
[autoit]$binaryDPID = stringmid($binaryDPID,105,30)
[/autoit]
[autoit]
Richtig wehr ab der 107 stelle!$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")
[/autoit]
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 ;==>ProKeyLG Kleiner
-
So Heute schreiben wir
eine KlausurTest ! (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
-
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 = deaktiviertDer Wert 4 hat zur Folge, dass das USB-Speichergerät nicht funktioniert, wenn das Gerät an den Computer angeschlossen wird.
LG Kleiner
-
Moin Leute!
Die hilfe ist ja schon weit voran geschriten!

Meine lösung:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [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$Button1 = GUICtrlCreateButton("Button1", 352, 120, 75, 25, $WS_GROUP)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Button2 = GUICtrlCreateButton("Button2", 432, 120, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###If FileExists(@ScriptDir & '\Test.ini') Then
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
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
EndIfWhile 1
[/autoit] [autoit][/autoit] [autoit]
$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
WEndFunc _Ini();---Speichern der Aktiven CheckBox
[/autoit]
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 ;==>_IniEin bischen soltest du schon selber machen gut jetzt hast du alles was du braucht aber der lernefeckt ist weit aus geringer!
LG Kleiner
-
Update: 06.12.2009
Post#1
Lg Kleiner
-
-