bräuchte mal eure Hilfe danke

  • Zu aller erst, ist mir aus deinem Post absolut nicht ersichtlich, was du mit dem Program überhaupt machen willst, bzw. wo denn genau der Fehler liegt.

    Zitat

    bei den eigenschaften wenn ich c amanfang anzeigen lassen will listet er mir das ganze flasch auf ürgendwie aber wenn ich eine rar datei oder andere dateien öffne geht es wieder

    Bitte was?! Ich habe in deinem Programm keine möglichkeiten Archive zu öffnen. Selbst wenn ich den entsprechenden Eintrag im Contextmenu wähle. Außerdem solltest du vielleicht darauf achten sowas hier in deine Sätze einzubauen:
    . , ! ? -
    Die Dinger wurden vor langer Zeit, und nicht ohne Grund erfunden. Denn Interpunktion vereinfacht das Lesen eines Textes ungemein.


    Aber hier schonmal ein paar fehlerquellen die ich gefunden habe:

    [autoit]

    $path ="C:\Dokumente und Einstellungen\Administrator\Desktop"

    [/autoit]


    Funktioniert bei mir nicht weil
    1. Ich nicht als Benutzer "Administrator" eingeloggt bin,
    2. Es bei mir kein "Dokumente und Einstellungen" gibt. Vista halt.
    Da solltest du etwas dynamischer sein.
    Denn im moment gibt es mir ein

    Code
    C:\Users\Shkal\Desktop\AutoIT Projekte\AutoIt.de Forum\ürgendwie\New beta.au3 (206) : ==> Subscript used with non-Array variable.:
    Global $listviewItems[$FileList[0] + 1]
    Global $listviewItems[$FileList^ ERROR


    [autoit]

    Global $HeaderCombo = "Lokaler Datenträger (C:)|Lokaler Datenträger (D:)|Lokaler Datenträger (E:)|Desktop|Eigene Dateien|Gemeinsame Dokumente"

    [/autoit]


    Ich habe kein Laufwerk E:. Warum wird es dann angezeigt? Jetzt stell dir vor ich hätte auch noch F: bis O: (Kenne viele die ihre Platten in 10 oder mehr Partitionen zerteilen.) - da hab ich auch keine Möglichkeit mir diese Laufwerke anzeigen zu lassen. Wieder mal: Sehr undynamisch und steif.

    [autoit]


    GUICtrlCreatePic (@ScriptDir &"\data\Images\software\1.bmp",0,0,600,63, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_DISABLED))
    GUICtrlCreatePic ("J:\Projeckte\Devil_Unpack\data\Images\software\3.bmp",0,0,600,325, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_DISABLED))

    [/autoit]

    Erklärt sich von selbst. Ist zwar nett dass du uns die Bilder mitgibst aber die Pfade sollte man dann schon relativ und nicht absolut halten.

    Bin mir sicher da haben sich noch etliche solcher Fehler eingeschlichen. Aber Kleinvieh macht ja bekanntlich auch Mist.

  • "C:\Dokumente und Einstellungen\" gibt es glaub ich als Hardlink für die Programme.

    Recht hast du - ich sollte erst gucken, dann schreiben.

    Was allerdings nichts daran ändert dass ich nicht "Administrator" sondern "Shkal" heiße...
    @UserName ist hier das Zauberwort

  • ja keiner weiter eine idee wie man die einstellungen raus bekommt so wie beim datein öffnen und mit den laufwerken mit den untergliederungen in 10 teilen dann müsste ich mal, wissen wie man laufwerge sucht automatisch da ich aber das noch nie gebraucht habe werde ich mal googln und mal eine udf suchen, aber da ich es ja weiss wie viele laufwerke bei mir drauf sind dachte ich mir das ich diese option ja nicht brauche verstehst du wollte ja nur hilfe haben mit den eigenschaften.

  • Hallo sirocool,

    dein eigentliches Problem habe ich zwar nicht verstanden was du meinst, aber wenn du alle verfügbaren LW in einer Combo anzeigen lassen willst, dann könntest du es so machen:

    [autoit]

    Global $HeaderCombo = ""
    For $i = 65 to 90
    if FileChangeDir( chr($i) & ":\") Then $HeaderCombo = $HeaderCombo & "Lokaler Datenräger (" & chr($i) & ";)"
    Next
    GUICtrlSetData($Combo1,$HeaderCombo)

    [/autoit]

    mfg (Auto)Bert

  • [autoit]


    $listviewItems[$i] = GUICtrlCreateListViewItem($FileList[$i] & "|" & $FileList[0] & "|" &$FileList[12], $listview)

    [/autoit]


    (zb. Zeile 184)
    Was soll denn bitte das hier bewirken?
    $FileList[0] Ist die anzahl der gefundenen Ordner/Dateien. Nicht die größe.
    &$FileList[12] ist das 12te Element (wäre bei mir der Ordner "Document and Settings")

    Vielleicht solltest du da anfangen.

  • Hier, ich hoffe das ist es was du willst.
    Statt:

    Spoiler anzeigen
    [autoit]


    Global $listviewItems[$FileList[0] + 1]
    For $i = 1 To UBound($FileList) - 1
    $listviewItems[$i] = GUICtrlCreateListViewItem($FileList[$i] & "|" & $FileList[0] & "|" &$FileList[3], $listview)
    Next

    [/autoit]


    Ist es nun das hier:

    Spoiler anzeigen
    [autoit]


    Global $listviewItems[$FileList[0] + 1], $ItemSize[$FileList[0] + 1], $ItemType[$FileList[0] + 1]
    For $i = 1 To UBound($FileList) - 1
    If StringInStr(FileGetAttrib($path&$FileList[$i]),"D",1) Then
    $ItemType[$i] = "Ordner"
    $ItemSize[$i] = DirGetSize($path&$FileList[$i],2) ; Hier empfehle ich den Rekursiv-Modus auszuschalten - Sonst dauert es zu lange für große verzeichnisse wie zb C:/Windows
    Else
    $ItemType[$i] = "Datei"
    $ItemSize[$i] = FileGetSize($path&$FileList[$i])

    EndIf
    $listviewItems[$i] = GUICtrlCreateListViewItem($FileList[$i] & "|" & $ItemSize[$i] & "|" & $ItemType[$i], $listview)
    Next

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

    Aber wahrscheinlich kommt eh gleich irgendwer mit einer Super überfunktion die das alles mit einer Zeile erledigt...

  • Ähm... Schon mal DriveGetDrive() gehört?

    Aus der Hilfe :

    Code
    $var = DriveGetDrive( "all" )
    If NOT @error Then
    	MsgBox(4096,"", "Found " & $var[0] & " drives")
    	For $i = 1 to $var[0]
        	MsgBox(4096,"Drive " & $i, $var[$i])
    	Next
    EndIf
  • ja was hat DriveGetDrive() mit meiner ersten hauptsächlichen frage zu tun die ich oben im ersten post gefragt habe und DriveGetDrive() habe ich schon lange in der hilfe gefunden nur das ist nicht mein problem gewessen es ging um eigenschaften auslesen und nicht ob ich die laufwerke finde mein problem war das hier

    Spoiler anzeigen
    [autoit]


    Global $listviewItems[$FileList[0] + 1]
    For $i = 1 To UBound($FileList) - 1
    $listviewItems[$i] = GUICtrlCreateListViewItem($FileList[$i] & "|" & $FileList[0] & "|" &$FileList[3], $listview)
    Next

    [/autoit]

    aber so wie ich es von SEuBo

    bekommen habe funktioniert es in meinen script ürgendwie nicht wenn ich es ersetze durch das hier

    Spoiler anzeigen
    [autoit]


    Global $listviewItems[$FileList[0] + 1], $ItemSize[$FileList[0] + 1], $ItemType[$FileList[0] + 1]
    For $i = 1 To UBound($FileList) - 1
    If StringInStr(FileGetAttrib($path&$FileList[$i]),"D",1) Then
    $ItemType[$i] = "Ordner"
    $ItemSize[$i] = DirGetSize($path&$FileList[$i],2) ; Hier empfehle ich den Rekursiv-Modus auszuschalten - Sonst dauert es zu lange für große verzeichnisse wie zb C:/Windows
    Else
    $ItemType[$i] = "Datei"
    $ItemSize[$i] = FileGetSize($path&$FileList[$i])

    EndIf
    $listviewItems[$i] = GUICtrlCreateListViewItem($FileList[$i] & "|" & $ItemSize[$i] & "|" & $ItemType[$i], $listview)
    Next

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

    da kommen ürgendwie fehler wäre nett wenn du mal kleines beispiel machst danke

  • Es geht dir also darum die Eigenschaften von nem Laufwerk/mehreren LW´s abzufragen ?
    Kannst dir ja mal in der Hilfe alle Drive... Funktionen anschauen.
    Freien Speicher auf einem LW kannst du beispielsweise mit DriveSpaceFree() anfragen.

    BtW: Die Punkt-, Komma- und Satzzeichentasten sind auf der Tastatur zum benutzen gedacht.
    Ahja ürgendwie -> Irgendwie

  • BItteschön... einfach mit deiner vorhandenen ersetzen und damit weiterarbeiten wenns dir gefällt...
    Schau dir die Funktion _FillListView() von mir mal an - habe dir mehrere Vorschläge gemacht "wie" du die Ordnergröße ermittelst - entweder garnicht (gibt ein "-"), "Normal" oder Rekursiv ( sehr langsam bei grossen Verzeichnissen).

    EDIT: Variable Laufwerkanzahl und -Buchstaben hinzugefügt.
    EDIT: Rechtschreibfehler ausgebessert.