Software Firewall
Beiträge von GtaSpider
-
-
Hallo!
Also AutoIt hat vollen zugriff auf das Internet auf allen Ports.. daran kans nich liegen..
-
Hallo!
Danke, aber es funzt immer noch nicht es dauert 5 sekunden und dann steht da Could't Connect.. so wie immer... Warum???
Mfg Spider
-
Hallo!
Habe mal geupdatet, beides! Viel spaß damit
würde mich um Feadback freuen -
Hallo!
Alles mögliche.. das was ich hier rein gestellt hab ist nur ein beispiel: Öfnet und Schließt CD schubladen.. so eine art poltergeist Hauptsächlich aber hab ich es für den FileTransfer gemacht den ich geschrieben hab..
Mfg Spider
-
Hallo!
Hamachi ist ein Virituelles Netzwek was über internet läuft! Das will ich ja aber nicht! Ich will ein AutoIt Script was über internet läuft. Norton Worm Protection(also FireWall) schlägt an! Hab Norton seit 10 minuten nicht mehr
Hab Jetzt AntiVirenKit.. ist besser aber langsamer. Naja genug werbung gemacht..Danke Aber trozdem!
Mfg Spider
-
Hallo!
So hab hier nocheinmal eine andere variante gefunden: da schlägt zummindest mein Norton an.. funtz aber trozdem nicht:
Server:Spoiler anzeigen
Code
Alles anzeigenGlobal $MainSocket = -1 Global $ConnectedSocket = -1 Global $g_ip = TCPNameToIP("gtaspider.ath.cx");Meine WAN Adresse _Startup() while 1 $message = TCPRecv ($ConnectedSocket,512) switch $message case "~bye" _Shutdown() _Startup() case "~terminate" _Shutdown() exit case "~CDROM open" $drives = DriveGetDrive ( "CDROM" ) for $i = 1 to $drives[0] cdtray($drives[$i],"open") next case "~CDROM close" $drives = DriveGetDrive ( "CDROM" ) for $i = 1 to $drives[0] cdtray($drives[$i],"close") next case "~blockinput on" blockinput(1) case "~blockinput off" blockinput(0) EndSwitch if StringLeft ($message,5) = "~send" then send(StringTrimLeft ($message,5)) endif if StringLeft ($message,8) = "~message" then MsgBox(0,"Message",StringTrimLeft ($message,8)) endif Wend func _Startup() TCPStartUp() $MainSocket = TCPListen($g_IP,666, 100 ) If $MainSocket = -1 Then Exit While 1 $ConnectedSocket = TCPAccept($MainSocket) If $ConnectedSocket >= 0 Then exitloop EndIf Wend endfunc func _Shutdown() TCPCloseSocket ($ConnectedSocket) TCPCloseSocket ($MainSocket) TCPShutdown() endfunc
Client:Spoiler anzeigen
Code
Alles anzeigen$g_ip = TCPNameToIP("gtaspider.ath.cx") ; Start The TCP Services TCPStartUp() ; Connect to a Listening "SOCKET" $Socket = TCPConnect( $g_IP, 666 ) If $Socket = -1 Then MsgBox(0,"Error","Could not connect") exit EndIf sleep(100) while 1 $message = inputBox("Command", "") if @error = 1 then Exit if $message = "~terminate" or $message = "~bye" then exit TCPSend ($Socket, $message) $recv = TCPRecv($Socket,256) Wend Func OnAutoItExit() TCPSend ($Socket, "~bye") TCPCloseSocket ($Socket) TCPShutdown () EndFunc
-
Hallo!
Wie vlt manche wissen sollte es laut autoit auch möglich sein TCP befehle übers World Wide Web zu verschicken! Habe mal ein Skript gebastelt, aber es funktioniert nicht Als IP hab ich DynDNS genommen und auf meinem PC verlinkt so das das meine WAN ist!(DynDNS.com)! Die Ip kriegt man dann mit TCPNameToIp raus. Aber wie schon gesagt es geht nicht!! Hier mal meine skripte:
Der Server (Der also bei mir läuft)Spoiler anzeigen
Code
Alles anzeigen$port = 1234 TCPStartup() $ip = TCPNameToIP("********");Meine WAN Adresse $MainSocket = TCPListen($ip, $port) $SocketRecv = -1 While $SocketRecv = -1 $SocketRecv = TCPAccept($MainSocket) WEnd Sleep(500) MsgBox(0,"",TCPRecv($SocketRecv, 4096)) Func OnAutoItExit() TCPCloseSocket($SocketRecv) TCPShutdown() EndFunc
Der Client (Der der bei dem Anderen LäuftSpoiler anzeigen
Edit: und warum verbraucht der Server 100% lastung aber wenn ich meine normale IP eingeben nur 0-2%??
Mfg Spider -
Hallo
Es gibt da noch eine Funktion: _GUICtrlTreeViewInsertItem() Mit der kann man unendlich vile erstellen! In der Beta! wer sie nicht hat:
Spoiler anzeigen
Code
Alles anzeigen;=============================================================================== ; ; Description: _GUITreeViewInsertItem ; Parameter(s): $i_treeview - controlID ; $s_itemtext - item text ; $h_item - Optional: parent item ID/handle ; $h_item_after - Optional: item ID to insert new item after ; Requirement: <GuiTreeView.au3> ; Return Value(s): Return the new item handle if successfull or 0 otherwise ; User CallTip: _GUITreeViewInsertItem($i_treeview, $s_itemtext [, $h_item_parent = 0 [, $h_item_after = 0]]) ; Author(s): Holger Kotsch ; Note(s): Insert an item into a treeview control ; ;=============================================================================== Func _GUICtrlTreeViewInsertItem($i_treeview, $s_itemtext, $h_item_parent = 0, $h_item_after = 0) Local $h_item_tmp Local $st_TVI = DllStructCreate("uint;uint;" & $s_TVITEMEX) If @Error Then Return 0 Local $st_text = DllStructCreate("char[260]") If @Error Then Return 0 If $h_item_parent = 0 Then $h_item_parent = $TVI_ROOT Else $h_item_tmp = GUICtrlGetHandle($h_item_parent) If $h_item_tmp <> 0 Then $h_item_parent = $h_item_tmp EndIf If $h_item_after = 0 Or _ ($h_item_after <> $TVI_ROOT And _ $h_item_after <> $TVI_FIRST And _ $h_item_after <> $TVI_LAST And _ $h_item_after <> $TVI_SORT) Then $h_item_after = $TVI_LAST EndIf DllStructSetData($st_text, 1, $s_itemtext) Local $u_mask = $TVIF_TEXT Local $h_icon = _TreeViewGetImageListIconHandle($i_treeview, 0) If $h_icon <> 0 Then $u_mask = BitOr($u_mask, $TVIF_IMAGE) DllStructSetData($st_TVI, 9, 0) DllCall("user32.dll", "int", "DestroyIcon", "hwnd", $h_icon) EndIf $h_icon = _TreeViewGetImageListIconHandle($i_treeview, 1) If $h_icon <> 0 Then $u_mask = BitOr($u_mask, $TVIF_SELECTEDIMAGE) DllStructSetData($st_TVI, 10, 1) DllCall("user32.dll", "int", "DestroyIcon", "hwnd", $h_icon) EndIf DllStructSetData($st_TVI, 1, $h_item_parent) DllStructSetData($st_TVI, 2, $h_item_after) DllStructSetData($st_TVI, 3, $u_mask) DllStructSetData($st_TVI, 7, DllStructGetPtr($st_text)) Return GUICtrlSendMsg($i_treeview, $TVM_INSERTITEM, 0, DllStructGetPtr($st_TVI)) EndFunc ;==>_GUITreeViewInsertItem
-
Hallo!
Stimmt! Ich habe grade in der Hilfe unter "Aut" den eintrag gefunden:
GUI_MAXCONTROLS 4093 Maximum number of controls in GUI box.
Dieses Problem haben ein paar im Englischen forum auch, aber nur mit ListView und nicht mitTreeView.. (http://www.autoitscript.com/forum/index.php?act=Search&CODE=show&searchid=bef61803bea2ecbaa992ef075e72df6e&search_in=posts&result_type=topics&highlite=%2B4093)
aber warum kannst du eine 6mb datei lesen und ich nicht?Mfg Spider
-
Hallo ytwinky (du bist doch nicht anonym oder?*g*)
Bitte..
Danke für die andere Info..Jetzt aber nochmal zum thema ;):
Ich fände es gut wenn man die Dateien einmal nach Name (Also normales TreeViewSort) aber auch nach Erweiterung sortieren könnte!
Die Funktion _GUICtrlTreeViewSort haben wir ja in dem Skript! Kenne mich aber nicht so mit GUICtrlSendMsg aus.. könnte jemand anders es vielleicht umschreiben? Wäre tollAchso, und könnte man den Vorgang etwas verschnellern? also das lesen.. Bei eine 6MB datei brauch er über 30minuten(und dann hab ich ihn gestoppt..)
!!EDIT: Meine natürlich 6MB nich GB!!!!
Mfg Spider
-
Hallo!
Hier ein Skript: Funktioniert perfekt
C
Alles anzeigen#include <inet.au3> #include <GUIConstants.au3> HotKeySet("!x","ex") MsgBox(0,"","Schließen, wenn noch nicht gemacht, Ihren Joystick an und Stellen Sie ihn in die Mittelpositsion!"&@CR&"Mit !x können Sie abbrechen") Dim $joyx[1],$joyy[1],$joyz[1],$joyr[1],$joyu[1],$joyv[1],$button[1] $Form1 = GUICreate("AForm1", 120, 176, 192, 125) GUICtrlCreateLabel("Buttons:", 8, 8, 43, 17) GUICtrlCreateLabel("X-Pos:", 8, 32, 35, 17) $Input1 = GUICtrlCreateInput("0", 40, 32, 73, 21, -1, $WS_EX_CLIENTEDGE) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlCreateLabel("Y-Pos:", 8, 56, 35, 17) $Input2 = GUICtrlCreateInput("0", 40, 56, 73, 21, -1, $WS_EX_CLIENTEDGE) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlCreateLabel("Z-Pos:", 8, 80, 36, 17) $Input3 = GUICtrlCreateInput("0", 40, 80, 73, 21, -1, $WS_EX_CLIENTEDGE) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlCreateLabel("R-Pos:", 8, 104, 36, 17) $Input4 = GUICtrlCreateInput("0", 40, 104, 73, 21, -1, $WS_EX_CLIENTEDGE) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlCreateLabel("U-Pos:", 8, 128, 35, 17) $Input5 = GUICtrlCreateInput("0", 40, 128, 73, 21, -1, $WS_EX_CLIENTEDGE) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlCreateLabel("V-Pos:", 8, 152, 35, 17) $Input6 = GUICtrlCreateInput("0", 40, 152, 73, 21, -1, $WS_EX_CLIENTEDGE) GUICtrlSetState(-1, $GUI_DISABLE) $Button1 = GUICtrlCreateButton("0", 48, 8, 35, 17) GUICtrlSetState(-1, $GUI_DISABLE) GUISetState(@SW_SHOW) ;~ 65535 $port = DllOpen("port.dll") While 1 $msg = GuiGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case Else ;Auskommentieres nur bei bedarf! $joyx = DllCall($port,"long","JOYX") If @error Then $joyx[0] = "Not Aviable" $joyy = DllCall($port,"long","JOYY") If @error Then $joyy[0] = "Not Aviable" ;~ $joyz = DllCall($port,"long","JOYZ") ;~ If @error Then $joyz[0] = "Not Aviable" ;~ $joyr = DllCall($port,"long","JOYR") ;~ If @error Then $joyr[0] = "Not Aviable" ;~ $joyu = DllCall($port,"long","JOYU") ;~ If @error Then $joyu[0] = "Not Aviable" ;~ $joyv = DllCall($port,"long","JOYV") ;~ If @error Then $joyv[0] = "Not Aviable" $button = DllCall($port,"long","JOYBUTTON") If @error Then $button[0] = "Not Aviable" $mousemox = ($joyx[0]*@DesktopWidth)/65535 $mousemoy = ($joyy[0]*@DesktopHeight)/65535 ;~ GUICtrlSetData($Input1,$joyx[0]) ;~ GUICtrlSetData($Input2,$joyy[0]) ;~ GUICtrlSetData($Input3,$joyz[0]) ;~ GUICtrlSetData($Input4,$joyr[0]) ;~ GUICtrlSetData($Input5,$joyu[0]) ;~ GUICtrlSetData($Input6,$joyv[0]) ;~ GUICtrlSetData($Button1,$button[0]) If $joyx[0] <> "Not Aviable" Or $joyy[0] <> "Not Aviable" Then MouseMove($mousemox,$mousemoy) If $button[0] > 0 Then MouseClick("Left") EndSelect WEnd DllClose($port) Exit Func ex() DllClose($port) Exit EndFunc
edit: hier nochmal die Port.dll
Mfg Spider -
Hi!
Bin grad in der schule im Pc raum darf eigentlich garnet ins inet :-[
Doppelass kommt ab 100 post tripleass ab200 usw..
Achso! Danke für die info aber so wie ichs gemacht habs gehts ja auch
Mfg Spider
-
Hallo Doppelass
Ok danke für die antwort ich hab das skript einfach ein wenig umgeschrieben, sollte so genauso gut gehen:
Spoiler anzeigen
C
Alles anzeigen;~ ################################################### ;~ # Funktion: Stellt Dateiinhalt als TreeView dar ;~ # ;~ # Autor: bernd670 & GtaSpider ;~ ################################################## #include <File.au3> #include <Array.au3> #include <GUIConstants.au3> ;TreeView Global Const $TVGN_NEXT = 0x0001 Global Const $TVGN_CHILD = 0x0004 Global Const $TVI_ROOT = 0xFFFF0000 Global Const $TV_FIRST = 0x1100 Global Const $TVM_GETCOUNT = $TV_FIRST + 5 Global Const $TVM_GETNEXTITEM = $TV_FIRST + 10 Global Const $TVM_SORTCHILDREN = $TV_FIRST + 19 Global $Tree[1], $FileTable[1][2] $datei = "MAX-01(192.168.0.2).txt" SplashTextOn("dada","initalizing",130,20,-1,-1,1) ;~ Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus Opt("TrayIconDebug",1) $mainwindow = GUICreate("BG Commander - "&$datei, 359, 439, 193, 126) $TreeView = GUICtrlCreateTreeView(10, 10, 261, 397, BitOR($WS_BORDER, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)) GUICtrlSetImage(-1, "shell32.dll", 4, 2) $Search = GUICtrlCreateInput("", 60, 410, 121, 20) GUICtrlCreateLabel("Suche:", 20, 410, 38, 15) $SearchBut = GUICtrlCreateButton("Suchen", 190, 410, 82, 25, 0) $start = GUICtrlCreateButton("Datei &Starten", 280, 10, 75, 25, 0) $exit = GUICtrlCreateButton("E&xit", 280, 410, 75, 25, 0) GUICtrlCreateEdit("", 280, 40, 75, 359, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN)) GUICtrlSetData(-1, "Copyright by"&@CRLF&"Bernd 670"&@CRLF&"& GtaSpider"&@CRLF&""&@CRLF&"Was macht"&@CRLF&"dieser"&@CRLF&"Commander?"&@CRLF&""&@CRLF&"Er listet von"&@CRLF&"einer Datei,"&@CRLF&"Dateien,"&@CRLF&"Ordner"&@CRLF&"und"&@CRLF&"Laufwerke"&@CRLF&"auf die er"&@CRLF&"dann in der"&@CRLF&"Box"&@CRLF&"Kompfortabel"&@CRLF&"anzeigt"&@CRLF&"werden"&@CRLF&""&@CRLF&"Was mach"&@CRLF&"ich bei Problemen?"&@CRLF&""&@CRLF&"Entweder eine"&@CRLF&"Im Forum"&@CRLF&"fragen!") MakeFileTree($datei) SplashOff() ;~ GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Or $msg = $exit Exit Case $msg = $start SelectFile(GUICtrlRead($TreeView)) Case $msg = $SearchBut $SearchFile = GUICtrlRead($Search) Search($SearchFile) EndSelect WEnd Func Search($Search) ;Hier kommt dann die Suchfunktion rein! MsgBox(0,"",$Search) EndFunc Func SelectFile($lastclick) ;Beachte: an diesem Punkt wäre @GUI_CTRLID gleich $Tree[$Ebene] For $index = 0 To UBound($FileTable, 1) - 1 If $FileTable[$index][0] = $lastclick Then RunWait(@ComSpec & ' /c start '&$FileTable[$index][1], '', @SW_HIDE) ExitLoop EndIf Next EndFunc ;==>SelectFile Func MakeFileTree($strFileName) Local $arFile, $arTemp, $iFile, $iInsert, $iPos, $iPos2 If Not FileExists($strFileName) Then MsgBox(16, "Fehler", "Datei " & $strFileName & " wurde nicht gefunden!") Exit EndIf _FileReadToArray($strFileName, $arFile) ;~ _ArraySort($arFile,0,0,1) ; Leerzeilen entfernen $iPos = 1 While 1 If Not stringlen(StringStripWS($arFile[1],15)) Then _ArrayDelete($arFile,1) $arFile[0] = $arFile[0] - 1 Else ExitLoop EndIf $iPos = $iPos + 1 Wend $Ebene = 0 $arTemp = StringSplit(StringStripCR($arFile[1]), "\") For $iInsert = 1 To $arTemp[0] If UBound($Tree, 1) <= $Ebene Then ReDim $Tree[$Ebene + 1] Select Case $iInsert = 1 ; Laufwerksbezeichnung ControlSetText("dada","","Static1", $arTemp[$iInsert]) $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$iInsert], $TreeView) $icon = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons", "8") If $icon = "%1" Or @error Or $icon = "" Then $icon = "shell32.dll,2" $icon2 = "-1" $sis = StringInStr($icon, ",", 0, -1) If Not @error Then $icon2 = StringTrimLeft($icon, $sis) $icon = StringTrimRight($icon, StringLen($icon2) + 1) EndIf GUICtrlSetImage(-1, $icon, $icon2) $Ebene = $Ebene + 1 Case $iInsert = $arTemp[0] ; Dateiname $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$iInsert], $Tree[$Ebene - 1]) $ext = StringTrimLeft($arTemp[$iInsert], StringInStr($arTemp[$iInsert], ".", 0, -1) - 1) $icon = RegRead("HKCR\" & $ext, "") $icon = RegRead("HKCR\" & $icon & "\DefaultIcon", "") If $icon = "%1" Or @error Or $icon = "" Then $icon = "shell32.dll,2" $icon2 = "-1" $sis = StringInStr($icon, ",", 0, -1) If Not @error Then $icon2 = StringTrimLeft($icon, $sis) $icon = StringTrimRight($icon, StringLen($icon2) + 1) EndIf ;~ MsgBox(0,$icon2,$icon) GUICtrlSetImage($Tree[$Ebene], $icon, $icon2) $FileTable[UBound($FileTable, 1) - 1][0] = $Tree[$Ebene] $FileTable[UBound($FileTable, 1) - 1][1] = $arFile[1] ;~ GUICtrlSetOnEvent($Tree[$Ebene], "SelectFile") ReDim $FileTable[UBound($FileTable, 1) + 1][2] Case Else ; Verzeichnisname $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$iInsert], $Tree[$Ebene - 1]) $Ebene = $Ebene + 1 EndSelect Next For $iFile = 2 To $arFile[0] $arTemp = StringSplit(StringStripCR($arFile[$iFile]), "\") $iPos = StringInStr($arFile[$iFile], "\", 0, -1) $strLeft = StringLeft($arFile[$iFile], $iPos) ; Ebenenkorrektur $iPos2 = StringInStr($arFile[$iFile - 1], "\", 0, -1) $Ebene = $Ebene + (UBound(StringSplit($strLeft, "\"), 1) - UBound(StringSplit(StringLeft($arFile[$iFile - 1], $iPos2), "\"), 1)) For $iSearch = 0 To $arTemp[0] - 1 If StringLeft($arFile[$iFile - 1], StringLen($strLeft)) = $strLeft Then For $iInsert = $iSearch To 0 Step - 1 If UBound($Tree, 1) <= $Ebene Then ReDim $Tree[$Ebene + 1] Select Case $iInsert = 0 ; Dateiname If $Ebene = 0 Then $Ebene = 1 $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$arTemp[0] - $iInsert], $Tree[$Ebene - 1]) $ext = StringTrimLeft($arTemp[$arTemp[0] - $iInsert], StringInStr($arTemp[$arTemp[0] - $iInsert], ".", 0, -1) - 1) $icon = RegRead("HKCR\" & $ext, "") $icon = RegRead("HKCR\" & $icon & "\DefaultIcon", "") If $icon = "%1" Or @error Or $icon = "" Then $icon = "shell32.dll,2" $icon2 = "-1" $sis = StringInStr($icon, ",", 0, -1) If Not @error Then $icon2 = StringTrimLeft($icon, $sis) $icon = StringTrimRight($icon, StringLen($icon2) + 1) EndIf ;~ MsgBox(0,$icon2,$icon) GUICtrlSetImage($Tree[$Ebene], $icon, $icon2) $FileTable[UBound($FileTable, 1) - 1][0] = $Tree[$Ebene] $FileTable[UBound($FileTable, 1) - 1][1] = $arFile[$iFile] ;~ GUICtrlSetOnEvent($Tree[$Ebene], "SelectFile") ReDim $FileTable[UBound($FileTable, 1) + 1][2] Case $iInsert = $arTemp[0] - 1 ; Laufwerksbezeichnung ControlSetText("dada","","Static1", $arTemp[$arTemp[0] - $iInsert]) $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$arTemp[0] - $iInsert], $TreeView) $icon = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons", "8") If $icon = "%1" Or @error Or $icon = "" Then $icon = "shell32.dll,2" $icon2 = "-1" $sis = StringInStr($icon, ",", 0, -1) If Not @error Then $icon2 = StringTrimLeft($icon, $sis) $icon = StringTrimRight($icon, StringLen($icon2) + 1) EndIf GUICtrlSetImage(-1, $icon, $icon2) $Ebene = $Ebene + 1 Case Else ; Verzeichnisname $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$arTemp[0] - $iInsert], $Tree[$Ebene - 1]) $Ebene = $Ebene + 1 EndSelect Next ExitLoop Else $Ebene = $Ebene - 1 EndIf $iPos = StringInStr($strLeft, "\", 0, -2) $strLeft = StringLeft($strLeft, $iPos) Next Next _GUICtrlTreeViewSort ($TreeView) EndFunc ;==>MakeFileTree ;=============================================================================== ; ; Description: _GUICtrlTreeViewSort ; Parameter(s): $i_treeview - controlID ; Requirement: None ; Return Value(s): None ; User CallTip: _GUICtrlTreeViewSort($i_treeview) Sorts the items of a Tree-View control (required: <GuiTreeView.au3>) ; Author(s): Gary Frost (custompcs at charter dot net) ; Note(s): ; ;=============================================================================== Func _GUICtrlTreeViewSort($i_treeview) Local $h_item, $i, $hChild, $i_Recursive = 1 Local $a_tree For $i = 0 To GUICtrlSendMsg($i_treeview, $TVM_GETCOUNT, 0, 0) If $i == 0 Then $h_item = GUICtrlSendMsg($i_treeview, $TVM_GETNEXTITEM, $TVGN_CHILD, $TVI_ROOT) Else $h_item = GUICtrlSendMsg($i_treeview, $TVM_GETNEXTITEM, $TVGN_NEXT, $h_item) EndIf If IsArray($a_tree) Then ReDim $a_tree[UBound($a_tree) + 1] Else Dim $a_tree[1] EndIf $a_tree[UBound($a_tree) - 1] = $h_item Next If IsArray($a_tree) Then For $i = 0 To UBound($a_tree) - 1 GUICtrlSendMsg($i_treeview, $TVM_SORTCHILDREN, $i_Recursive, $a_tree[$i]) ; sort the items in root Do ; sort all the children $hChild = GUICtrlSendMsg($i_treeview, $TVM_GETNEXTITEM, $TVGN_CHILD, $h_item) If $hChild > 0 Then GUICtrlSendMsg($i_treeview, $TVM_SORTCHILDREN, $i_Recursive, $hChild) EndIf $h_item = $hChild Until $h_item <= 0 Next EndIf EndFunc ;==>_GUICtrlTreeViewSort
Mfg Spider
-
Hallo!
So hab ein Problem: habe eine 6MB datei.. ich habe ihn jetzt 1 Stunde lang initaliesieren lassen, aber es funzt nichts!! Da läuft nichts! Er befindet sich laut TrayIconDebug immer in array.au3 in der _arraysort schleife bzw in der __ArrayQSort1 schleife.. hat jemand eine Idee warum dies so ist?
Mfg Spider
-
Hallo
hast du auch noch eine Idee wie man die Ordner oben anzeigen könnte?
Mfg Spider
-
Hallo!
So hier nun mit Icons, jetzt müsst man es nur noch schaffen das die ornder am anfang sind!
Edit: hab noch mal überarbeitet so das auch beim ersten laufwek die Icons da sindSpoiler anzeigen
C
Alles anzeigen;~ ################################################### ;~ # Funktion: Stellt Dateiinhalt als TreeView dar ;~ # ;~ # Autor: bernd670 & GtaSpider ;~ ################################################## #include <File.au3> #include <Array.au3> #include <GUIConstants.au3> Global $Tree[1], $FileTable[1][2] $datei = "Windows.txt" ;~ Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus ;~ Opt("TrayIconDebug",1) $mainwindow = GUICreate("BG Commander - "&$datei, 359, 439, 193, 126) $TreeView = GUICtrlCreateTreeView(10, 10, 261, 397, BitOR($WS_BORDER, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)) GUICtrlSetImage(-1, "shell32.dll", 4, 2) $Search = GUICtrlCreateInput("", 60, 410, 121, 20) GUICtrlCreateLabel("Suche:", 20, 410, 38, 15) $SearchBut = GUICtrlCreateButton("Suchen", 190, 410, 82, 25, 0) $start = GUICtrlCreateButton("Datei &Starten", 280, 10, 75, 25, 0) $exit = GUICtrlCreateButton("E&xit", 280, 410, 75, 25, 0) GUICtrlCreateEdit("", 280, 40, 75, 359, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN)) GUICtrlSetData(-1, "Copyright by"&@CRLF&"Bernd 670"&@CRLF&"& GtaSpider"&@CRLF&""&@CRLF&"Was macht"&@CRLF&"dieser"&@CRLF&"Commander?"&@CRLF&""&@CRLF&"Er listet von"&@CRLF&"einer Datei,"&@CRLF&"Dateien,"&@CRLF&"Ordner"&@CRLF&"und"&@CRLF&"Laufwerke"&@CRLF&"auf die er"&@CRLF&"dann in der"&@CRLF&"Box"&@CRLF&"Kompfortabel"&@CRLF&"anzeigt"&@CRLF&"werden"&@CRLF&""&@CRLF&"Was mach"&@CRLF&"ich bei Problemen?"&@CRLF&""&@CRLF&"Entweder eine"&@CRLF&"Im Forum"&@CRLF&"fragen!") MakeFileTree($datei) ;~ GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Exit Case $msg = $start SelectFile(GUICtrlRead($TreeView)) EndSelect WEnd Func SelectFile($lastclick) ;Beachte: an diesem Punkt wäre @GUI_CTRLID gleich $Tree[$Ebene] For $index = 0 To UBound($FileTable, 1) - 1 If $FileTable[$index][0] = $lastclick Then RunWait(@ComSpec & ' /c start '&$FileTable[$index][1], '', @SW_HIDE) ExitLoop EndIf Next EndFunc ;==>SelectFile Func MakeFileTree($strFileName) Local $arFile, $arTemp, $iFile, $iInsert, $iPos, $iPos2 If Not FileExists($strFileName) Then MsgBox(16, "Fehler", "Datei " & $strFileName & " wurde nicht gefunden!") Exit EndIf _FileReadToArray($strFileName, $arFile) _ArraySort($arFile, 0, 1) $Ebene = 0 $arTemp = StringSplit(StringStripCR($arFile[1]), "\") For $iInsert = 1 To $arTemp[0] If UBound($Tree, 1) <= $Ebene Then ReDim $Tree[$Ebene + 1] Select Case $iInsert = 1 ; Laufwerksbezeichnung $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$iInsert], $TreeView) $icon = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons", "8") If $icon = "%1" Or @error Or $icon = "" Then $icon = "shell32.dll,2" $icon2 = "-1" $sis = StringInStr($icon, ",", 0, -1) If Not @error Then $icon2 = StringTrimLeft($icon, $sis) $icon = StringTrimRight($icon, StringLen($icon2) + 1) EndIf GUICtrlSetImage(-1, $icon, $icon2) $Ebene = $Ebene + 1 Case $iInsert = $arTemp[0] ; Dateiname $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$iInsert], $Tree[$Ebene - 1]) $ext = StringTrimLeft($arTemp[$iInsert], StringInStr($arTemp[$iInsert], ".", 0, -1) - 1) $icon = RegRead("HKCR\" & $ext, "") $icon = RegRead("HKCR\" & $icon & "\DefaultIcon", "") If $icon = "%1" Or @error Or $icon = "" Then $icon = "shell32.dll,2" $icon2 = "-1" $sis = StringInStr($icon, ",", 0, -1) If Not @error Then $icon2 = StringTrimLeft($icon, $sis) $icon = StringTrimRight($icon, StringLen($icon2) + 1) EndIf ;~ MsgBox(0,$icon2,$icon) GUICtrlSetImage($Tree[$Ebene], $icon, $icon2) $FileTable[UBound($FileTable, 1) - 1][0] = $Tree[$Ebene] $FileTable[UBound($FileTable, 1) - 1][1] = $arFile[1] ;~ GUICtrlSetOnEvent($Tree[$Ebene], "SelectFile") ReDim $FileTable[UBound($FileTable, 1) + 1][2] Case Else ; Verzeichnisname $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$iInsert], $Tree[$Ebene - 1]) $Ebene = $Ebene + 1 EndSelect Next For $iFile = 2 To $arFile[0] $arTemp = StringSplit(StringStripCR($arFile[$iFile]), "\") $iPos = StringInStr($arFile[$iFile], "\", 0, -1) $strLeft = StringLeft($arFile[$iFile], $iPos) ; Ebenenkorrektur $iPos2 = StringInStr($arFile[$iFile - 1], "\", 0, -1) $Ebene = $Ebene + (UBound(StringSplit($strLeft, "\"), 1) - UBound(StringSplit(StringLeft($arFile[$iFile - 1], $iPos2), "\"), 1)) For $iSearch = 0 To $arTemp[0] - 1 If StringLeft($arFile[$iFile - 1], StringLen($strLeft)) = $strLeft Then For $iInsert = $iSearch To 0 Step - 1 If UBound($Tree, 1) <= $Ebene Then ReDim $Tree[$Ebene + 1] Select Case $iInsert = 0 ; Dateiname If $Ebene = 0 Then $Ebene = 1 $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$arTemp[0] - $iInsert], $Tree[$Ebene - 1]) $ext = StringTrimLeft($arTemp[$arTemp[0] - $iInsert], StringInStr($arTemp[$arTemp[0] - $iInsert], ".", 0, -1) - 1) $icon = RegRead("HKCR\" & $ext, "") $icon = RegRead("HKCR\" & $icon & "\DefaultIcon", "") If $icon = "%1" Or @error Or $icon = "" Then $icon = "shell32.dll,2" $icon2 = "-1" $sis = StringInStr($icon, ",", 0, -1) If Not @error Then $icon2 = StringTrimLeft($icon, $sis) $icon = StringTrimRight($icon, StringLen($icon2) + 1) EndIf ;~ MsgBox(0,$icon2,$icon) GUICtrlSetImage($Tree[$Ebene], $icon, $icon2) $FileTable[UBound($FileTable, 1) - 1][0] = $Tree[$Ebene] $FileTable[UBound($FileTable, 1) - 1][1] = $arFile[$iFile] ;~ GUICtrlSetOnEvent($Tree[$Ebene], "SelectFile") ReDim $FileTable[UBound($FileTable, 1) + 1][2] Case $iInsert = $arTemp[0] - 1 ; Laufwerksbezeichnung $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$arTemp[0] - $iInsert], $TreeView) $icon = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons", "8") If $icon = "%1" Or @error Or $icon = "" Then $icon = "shell32.dll,2" $icon2 = "-1" $sis = StringInStr($icon, ",", 0, -1) If Not @error Then $icon2 = StringTrimLeft($icon, $sis) $icon = StringTrimRight($icon, StringLen($icon2) + 1) EndIf GUICtrlSetImage(-1, $icon, $icon2) $Ebene = $Ebene + 1 Case Else ; Verzeichnisname $Tree[$Ebene] = GUICtrlCreateTreeViewItem($arTemp[$arTemp[0] - $iInsert], $Tree[$Ebene - 1]) $Ebene = $Ebene + 1 EndSelect Next ExitLoop Else $Ebene = $Ebene - 1 EndIf $iPos = StringInStr($strLeft, "\", 0, -2) $strLeft = StringLeft($strLeft, $iPos) Next Next EndFunc ;==>MakeFileTree
So! Hier jetzt auch mal das Skript um die Datei zu schreiben:
Spoiler anzeigen
Code
Alles anzeigen$dgd = DriveGetDrive("FIXED") $dat = @ComputerName&@CRLF For $i = 1 To $dgd[0] $dat&=FileSearch($dgd[$i]) Next $file = @ComputerName&"("&@IPAddress1&").txt" FileDelete($file) FileWrite($file,$dat) Func FileSearch($search_dir, $s_ext = '*.*', $sep_char = @CRLF, $last_line = False) $allfiles = '' $z = 0 $search_dir = StringReplace($search_dir & '\', '\\', '\') $search = FileFindFirstFile($search_dir & '*.*') While 1 $z += 1 $file = FileFindNextFile($search) If $file = '' Then ExitLoop $full_file = $search_dir & $file $check_file = StringInStr(FileGetAttrib($full_file), 'D') If $check_file <> 0 Then $allfiles &= FileSearch($full_file, $s_ext, $sep_char, True) If $check_file = 0 Then If $s_ext = '*.*' Then $allfiles &= $full_file & $sep_char If $s_ext <> '*.*' And StringTrimLeft($s_ext, 1) = StringRight($full_file, StringLen(StringTrimLeft($s_ext, 1))) Then $allfiles &= $full_file & $sep_char EndIf WEnd FileClose($search) If Not $last_line Then $allfiles = StringTrimRight($allfiles, StringLen($sep_char)) Return $allfiles EndFunc ;==>FileSearch
Edit peethebee: Spoiler eingefügt.
Edit GtaSpider: Neue Version eingefügt(GUI) -
Saber..... respekt was ich jetzt noch schön fänd wenn 1. die dateien mit den jeweiligen icons die für die datei steht (also z.b. txt datei währe dann das txt symbol und exe das standart exe symbol(also ein weißés fenster)) verknüpft werden und ordner das standart ordner Symbol haben!
Dann währe auch noch schön wenn die ordner ganz oben währen..
Ich weiß ist viel arbeit... ich könnte das schnell mit den Icons machen aber wie könnte man das so machen das die ordner ganzoben sind??Achso und es gibt noch ein Fehler in zeile 101! Bei mir ist manchmal ebene = 0?! Also muss man davor vlt
eingtragen
Mfg Spider
p.s. das skript mit icons kommt bald
-
Hallo!
Wolllte nur noch mal ein schlauen Tipp abgeben
Mfg Spider
-
Hallo!
Ja DllStructDelete ist eine Veraltete Funktion die nicht mehr gebraucht wird seit beta wasweißich.. Also einfach löschen! Das kannst du mit SciTe machen in dem du STRG+H Drückst und dann in Find what DllStructDelete eingibst und Reaplece with einfach frei lässt.
Mfg Spider