Ich wollte mal mein Programm zum suchen von Dateien vorstellen, weil beim Wettbewerb gesagt wurde, der geht nicht, aber bei allen Personen die es für mich bis jetzt getestet haben klappt es (verschieben+schließen).
Nebenbei ist es natürlich auch so ein Programm, das man vorstellen kann
Code:
Spoiler anzeigen
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=search_icon2.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <GuiListView.au3>
#include <Misc.au3>
#include <Aero.au3>
Global $add=1
[/autoit] [autoit][/autoit] [autoit]$gui=_AeroCreate("Desktopsearch", 596, 436 ,"search_icon.png") ; - TheShadowAE
[/autoit] [autoit][/autoit] [autoit]$stnum=IniRead("Settings.ini","Options","Style",1)
_DrawStyle()
GUISetState()
$Form1 = _AeroWorkAreaCreate($gui,4,0,588,436,@SW_HIDE)
GUISetBkColor(0xAAAAAA)
$Radio1 = GUICtrlCreateCheckbox("Unterordner durchsuchen", 8, 8, 321, 17)
$Label2 = GUICtrlCreateLabel("", 8, 32, 321, 17)
GUICtrlSetTip(-1,"weiterer Pfad")
$Input1 = GUICtrlCreateInput("", 8, 96, 121, 21)
GUICtrlSetTip(-1,"Suchbegriff")
$Input2 = GUICtrlCreateInput("", 152, 96, 81, 21)
GUICtrlSetTip(-1,"Endung")
$Button1 = GUICtrlCreateButton("Suchen", 8, 128, 185, 25, $WS_GROUP)
$Stylechanger1 = GUICtrlCreateButton("<Style 1>", 8, 64, 121, 17)
$ListView1 = GUICtrlCreateListView("Name|Pfad", 8, 168, 569, 257)
_GUICtrlListView_SetColumnWidth($ListView1,0,200)
_GUICtrlListView_SetColumnWidth($ListView1,1,365)
$cm=GUICtrlCreateContextMenu($ListView1)
$cm1=GUICtrlCreateMenuItem("Öffnen",$cm)
$cm2=GUICtrlCreateMenuItem("Bearbeiten",$cm)
$cm3=GUICtrlCreateMenuItem("Ordner öffnen",$cm)
GUICtrlCreateMenuItem("",$cm)
$cm4=GUICtrlCreateMenuItem("Datei Löschen",$cm)
$Input3 = GUICtrlCreateInput("CD", 256, 96, 73, 21)
GUICtrlSetTip(-1,"Laufwerkbuchstaben")
$Button2 = GUICtrlCreateButton("Index erstellen", 208, 128, 121, 25, $WS_GROUP)
$MonthCal1 = GUICtrlCreateMonthCal("", 408, 5, 169, 157)
$Label1 = GUICtrlCreateLabel(_NowTime(), 346, 8, 58, 17)
GUISetState(@SW_SHOW)
Global $mtp="",$make=0
[/autoit] [autoit][/autoit] [autoit]$ids=3
Dim $ipid[$ids]
$indexon=0
_Load()
[/autoit] [autoit][/autoit] [autoit]AdlibRegister("_time",200)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_Exit()
Case $Label2
ToolTip("Abbrechen für keinen weiteren Pfad")
$mtp=FileSelectFolder("Ordner auswählen",GUICtrlRead($Label2))&"\"
ToolTip("")
$mtp=StringTrimLeft($mtp,3)
GUICtrlSetData($Label2,$mtp)
Case $Button2
_GUICtrlListView_DeleteAllItems($ListView1)
GUICtrlCreateListViewItem("Index wird erstellt...|",$ListView1)
GUICtrlCreateListViewItem("Index in process...|",$ListView1)
_Make()
$make=1
Case $Button1
If $indexon=1 Then ContinueLoop
_SearchonIndex()
Case $ListView1
$false=False
_GUICtrlListView_SimpleSort($ListView1,$false,GUICtrlGetState($ListView1))
Case $cm1
$xx=_GUICtrlListView_GetSelectedIndices($ListView1,True)
$item=$xx[1]
$path=_GUICtrlListView_GetItemText($ListView1,$item,1)
$dat=_GUICtrlListView_GetItemText($ListView1,$item,0)
ShellExecute($path&"\"&$dat,"",$path)
Case $cm2
$xx=_GUICtrlListView_GetSelectedIndices($ListView1,True)
$item=$xx[1]
$path=_GUICtrlListView_GetItemText($ListView1,$item,1)
$dat=_GUICtrlListView_GetItemText($ListView1,$item,0)
ShellExecute("notepad.exe",$path&"\"&$dat)
Case $cm3
$xx=_GUICtrlListView_GetSelectedIndices($ListView1,True)
$item=$xx[1]
$path=_GUICtrlListView_GetItemText($ListView1,$item,1)
$dat=_GUICtrlListView_GetItemText($ListView1,$item,0)
ShellExecute($path)
Case $cm4
$xx=_GUICtrlListView_GetSelectedIndices($ListView1,True)
$item=$xx[1]
$path=_GUICtrlListView_GetItemText($ListView1,$item,1)
$dat=_GUICtrlListView_GetItemText($ListView1,$item,0)
FileRecycle($path&"\"&$dat)
ToolTip("(Index erstellen=aktualisieren)")
AdlibRegister("_Closeit",2000)
Case $Stylechanger1
If $stnum=1 Then
$stnum=2
Else
$stnum=1
EndIf
GUICtrlSetData($Stylechanger1,"<Style "&$stnum&">")
_DrawStyle()
EndSwitch
$indexon=0
For $x=0 To $ids-1
If ProcessExists($ipid[$x]) Then $indexon=1
Next
If $indexon=0 And $make=1 Then
$make=0
_GUICtrlListView_DeleteAllItems($ListView1)
EndIf
Sleep(10)
WEnd
Func _Closeit()
AdlibUnRegister("_Closeit")
ToolTip("")
EndFunc
Func _DrawStyle()
;Style 1
If $stnum=1 Then
$img=_GDIPlus_ImageLoadFromFile("bg.png")
_AeroBgImage($gui,$img)
_GDIPlus_ImageDispose($img)
EndIf
;#######
;Style 2
If $stnum=2 Then
$size=_AeroGetSize($gui)
$style=_AeroStyleCreate(0,0,0,25,0x77AAAAAA,0xEE555555,1)
$style2=_AeroStyleCreate($size[0],300,$size[1],0xDD777777,0xDD777777,0xDDCCCCFF,4)
$style2[0]=2
_AeroStyleDraw($gui,$style)
_AeroStyleDraw($gui,$style2)
EndIf
;#######
EndFunc
Func _SearchonIndex()
Local $unterordner=_Iif(BitAND(GUICtrlRead($Radio1),$GUI_CHECKED)<>0,1,0)
Local $i[3]
$i[0]=GUICtrlRead($Input1)
$i[1]=GUICtrlRead($Input2)
$i[2]=GUICtrlRead($Input3)
If $i[0]="" Then
$i[0]="*"
Else
$i[0]="*"&$i[0]&"*"
EndIf
If $i[1]="" Then
$i[1]="*"
EndIf
Local $suche=$mtp&$i[0]&"."&$i[1]
Local $len=StringLen($i[2])
Local $files[$len]
_GUICtrlListView_DeleteAllItems($ListView1)
GUICtrlCreateListViewItem("Bitte warte bis die Suche beendet ist...|",$ListView1)
GUICtrlCreateListViewItem("Please wait till the search ended...|",$ListView1)
For $x=0 To $len-1
$lw=StringMid($i[2],$x+1,1)
$files[$x]=_GetIndexFile($lw,$suche,$unterordner)
If Not FileExists($files[$x]) Then
_MakeParameterized($i[0],$i[1],$lw,$unterordner)
While 1
If GUIGetMsg()=-3 Then _Exit()
If Not ProcessExists($ipid[0]) Then ExitLoop
Sleep(10)
WEnd
EndIf
Next
_GUICtrlListView_DeleteAllItems($ListView1)
AdlibUnRegister("__AeroProc")
AdlibRegister("__AeroProc",100)
$path=""
For $x=1 To $len
$file=FileOpen($files[$x-1],0)
While 1
If GUIGetMsg()=-3 Then _Exit()
$txt=FileReadLine($file)
If @error Then ExitLoop
If StringRegExp($txt,"Verzeichnis von (.+)",0) Then $path=StringRegExp($txt,"Verzeichnis von (.+)",3)
$datei=StringRegExp($txt,"(\d\d\.\d\d\.\d\d\d\d) +(\d\d\:\d\d) +([\d\.]+) +(.+)",3) ;\s statt \n
If IsArray($datei) Then
_Add($path[0],$datei[3])
Else
$datei=StringRegExp($txt,"(\d\d\.\d\d\.\d\d\d\d) +(\d\d\:\d\d) +<DIR> +(.+)",3)
If IsArray($datei) Then
If $datei[2]<>"." And $datei[2]<>".." Then
_Add($path[0],$datei[2])
EndIf
EndIf
EndIf
WEnd
FileClose($file)
Next
AdlibUnRegister("__AeroProc")
AdlibRegister("__AeroProc",20)
EndFunc
Func _Add($pfad,$datn)
$pfad=$datn&"|"&$pfad
$pfad=StringReplace($pfad,"","ü")
$pfad=StringReplace($pfad,"„","ä")
$pfad=StringReplace($pfad,"”","ö")
$pfad=StringReplace($pfad,"š","Ü")
$pfad=StringReplace($pfad,"Ž","Ä")
$pfad=StringReplace($pfad,"™","Ö")
_GUICtrlListView_BeginUpdate($ListView1)
GUICtrlCreateListViewItem($pfad,$ListView1)
GUICtrlSetBkColor(-1,__C($add))
_GUICtrlListView_EndUpdate($ListView1)
EndFunc
Func __C(ByRef $add)
If $add=1 Then
$add=0
Return "0xAAFFAA"
Else
$add=1
Return "0xFFFFAA"
EndIf
EndFunc
Func _MakeParameterized($i1="*",$i2="*",$f="D",$unterordner=1) ;Datei,Endung,Laufwerk,Unterordnerdurchsuchung
If $i1="" Then $i1="*"
If $i2="" Then $i2="*"
If StringLen($f)>3 Then
$ids=StringLen($f)
ReDim $ipid[$ids]
EndIf
For $x=1 To StringLen($f)
$lw=StringMid($f,$x,1)&":\"
$ipid[$x-1]=_NewIndex($mtp&$i1&"."&$i2,$lw,$unterordner) ;######### MTP #########################
Next
EndFunc
Func _Make()
Local $unterordner=_Iif(BitAND(GUICtrlRead($Radio1),$GUI_CHECKED)<>0,1,0)
$f=GUICtrlRead($Input3)
$i1=GUICtrlRead($Input1)
$i2=GUICtrlRead($Input2)
If $i1="" Then
$i1="*"
Else
$i1="*"&$i1&"*"
EndIf
If $i2="" Then
$i2="*"
EndIf
If StringLen($f)>3 Then
$ids=StringLen($f)
ReDim $ipid[$ids]
EndIf
For $x=1 To StringLen($f)
$lw=StringMid($f,$x,1)&":\"
$ipid[$x-1]=_NewIndex($mtp&$i1&"."&$i2,$lw,$unterordner) ;############ MTP ######################################
Next
EndFunc
Func _Exit()
_Save()
AdlibUnRegister()
_AeroWorkAreaDelete($Form1)
_AeroDelete($gui)
Exit
EndFunc
Func _time()
GUICtrlSetData($Label1,_NowTime())
EndFunc
Func _Save()
IniWrite("Settings.ini","Options","Folder",GUICtrlRead($Label2))
IniWrite("Settings.ini","Options","Unterordner",BitAND(GUICtrlRead($Radio1),$GUI_CHECKED))
IniWrite("Settings.ini","Options","Inp1",GUICtrlRead($Input1))
IniWrite("Settings.ini","Options","Inp2",GUICtrlRead($Input2))
IniWrite("Settings.ini","Options","Inp3",GUICtrlRead($Input3))
IniWrite("Settings.ini","Options","Style",$stnum)
EndFunc
Func _Load()
Local $tmp
$mtp=IniRead("Settings.ini","Options","Folder","")
GUICtrlSetData($Label2,$mtp)
$tmp=IniRead("Settings.ini","Options","Unterordner",0)
GUICtrlSetState($Radio1,$tmp)
$tmp=IniRead("Settings.ini","Options","Inp1","")
GUICtrlSetData($Input1,$tmp)
$tmp=IniRead("Settings.ini","Options","Inp2","")
GUICtrlSetData($Input2,$tmp)
$tmp=IniRead("Settings.ini","Options","Inp3","CD")
GUICtrlSetData($Input3,$tmp)
$stnum=IniRead("Settings.ini","Options","Style",1)
GUICtrlSetData($Stylechanger1,"<Style "&$stnum&">")
EndFunc
;##################################TheShadowAE - Indexes##########################################
Func _NewIndex($suche="*.*",$path="D:\",$unterordner=1)
If StringRight($path,1)<>"\" Then $path&="\"
Local $uo="/s "
If $unterordner=0 Then $uo=""
$ppppp=_GetIndexFile($path,$suche,$unterordner)
Return _RunDOS("dir "&$path&$suche&" /o "&$uo&">"&$ppppp)
EndFunc
Func _GetIndexFile($lw="D",$suche="*.*",$unterordner=1)
Local $ident=StringLeft($lw,1)&"+"&$suche
$ident=StringReplace($ident,"*","_")
$ident=StringReplace($ident,"\","+")
Return @ScriptDir&"\Indexes\suchergebnis_"&$ident&$unterordner&".index"
EndFunc
Func _RunDOS($sCommand)
Local $nResult = Run(@ComSpec & " /C " & $sCommand, "", @SW_HIDE) ;RunWait->Run
Return SetError(@error, @extended, $nResult) ;jetzt PID
EndFunc ;==>_RunDOS
(evtl. #NoTrayIcon ausklammern)
Danke für jeden Download, Bug, Lob, usw...
EDIT:
Die meisten Fehler usw. behoben [15]