VB - Töltse ki a TreeView-t a rendszerlemezekkel és azok könyvtárával

Itt van egy rutin, amely kitöltheti a TreeView-t a rendszerlemezekkel és azok könyvtárával.

Leírás

A probléma az volt, hogy megtaláljuk a csomópontok kulcsát, mivel néha egy kulcsot kétszer tettek közzé, majd megoldást találtam:

  • Használja a teljes utat kulcsként, és így biztos, hogy nem lesz ismétlődés.
  • Nem tudtam tesztelni a hálózati meghajtókat
  • Eltávolítottam a rendszerkönyvtárakat, célom egy kép felfedezése (letölthető).
  • A rutin rekurzív és viszonylag rövid.
  • Ne lepődj meg, mennyi ideig tart (attól függően, hogy a rendszered), de a rutin csaknem olyan gyors, mint a Windows Intéző, kivéve, hogy az nem indul el automatikusan indításként.
  • A projekt teljes képét letöltheti a VB6-ban.
  • Ha egy képre kattint, az üzenet megjeleníti a számot és a teljes elérési utat.
  • Megváltoztathatja a szűrőket más képek megjelenítéséhez is.

A projekt egyéni OCX-t és DLL-t tartalmaz:

  • Csomagolja ki a mappát.
  • Ne kattintson a projektre, menjen a VB6 ikonra, kattintson jobb egérgombbal az ikonra, és nyissa meg a rendszergazdát.
  • A megnyitáskor kattintson a „Meglévő” gombra, és nyissa meg az LN_Explorateur.vpb projektet
  • Módosítsa a TreeView szélességét a piros vonal mozgatásával (kattintson a vonalra és mozgassa).
    • Módosítsa az indexképek méretét az 'S' gombbal.

A kép megjelenítése a Gdi + dll-vel történik a legegyszerűbb kifejezésre csökkentve.

  • Azt hiszem, a rutin könnyen átültethető a VB.Net-re

Kód

Opció kifejezett

 Sub Initialise_TreeDir (TreeDir As TreeView) Dim ExpDr, Rep, Drv, S Stringként, N, D, a, r, Unite Dim Cle karakterláncként, sztringként, Num As Integer, Sr Integer Dim nodX Node Num = 64 ExpDr = CreateObject ("Scripting.FileSystemObject") beállítása Drv = ExpDr.Drives minden D-hez Drv S = D.DriveLetter '& ":" Ha D.DriveType = 3 Ezután réseaux N = D.ShareName ElseIf D.DriveType = 1 Akkor 'DD externe N = "- Média amovible - (" & D.VolumeName & ")" Incr Num: Cle = SS = S & ":" nodX = TreeDir.Nodes.Add (,, Cle, S & N, 6) S, Cle, TreeDir ElseIf D.DriveType = 2 Ezután 'DD N = D.VolumeName Incr Num: Cle = SS = S &': "Set nodX = TreeDir.Nodes.Add (,, Cle, S & "- (" & N & ")", 2) Kifejezés S, Cle, TreeDir ElseIf D.DriveType = 4 Ezután "DVD On Error Folytatás Következő N = D.VolumeName Ha Err = 71 Akkor N =" Lecteur DVD - (vide) "Else N =" Lecteur DVD - ("& N &") "Vége Ha Incr szám: Cle = Chr (Num) &" 0 "S = S &": "A nodX = TreeDir.Nodes beállítása .Add (,, Cle, S & N, 3) Else Stop End Ha S = "" D = "" Következő Set nodX = Semmi készlet ExpDr = Semmi sem Drv = Semmi végső alrész (Chem mint karaktersorozat, Cle mint karakterlánc, TreeDir mint fa nézet) Dim Rep, sRp, Obj, sRep, sR2 Dim sCle mint karakterlánc, Num As Integer, Sr, mint Integer Dim nodX Node, NbsR mint integer, S, mint Str = Sr = 9 Chem = Chem & IIf (Right (Chem, 1) = "", "", "") Obj = CreateObject ("Scripting .FileSystemObject ") Set Rep = Obj.Getfolder (Chem) Ha balra (Rep.Name, 1) =" $ "Ezután GoTo Passe2 Set sRep = Rep.subfolders Minden sRp-re SRep S = UCase (sRp.Name) Ha balra (S, 1) = "$" Vagy S = "WINDOWS" Vagy sRp.Attributes> 100 Vagy sRp.Attributes = 19 _ Vagy Bal (S, 6) = "RENDSZER" Vagy Balra (S, 7) = "PROGRAM" Vagy Balra (S, 4) = "FELHASZNÁLÓ" _ Vagy Balra (S, 6) = "VEZETŐ" vagy Balra (S, 5) = "TOOLS" Ezután GoTo Passe On Error Folytatás Következő készlet sR2 = sRp.subfolders NbsR = sR2 .Count If Err 0 Ezután Err = 0: GoTo Passe Incr Sr sCle = sRp.Path & "" On GoTo 0 'Debug.Print sRp.Name; ""; Ciklus; ""; sCle Set nodX = TreeDir.Nodes.Add (Cle, tvwChild, sCle, sRp.Name, 5, 4) Ha NbsR> 0 Ezután AjoutRep sRp.Path, sCle, TreeDir vége Ha Passe: Next Passe2: Set Obj = Semmi beállítás Rep = Semmi beállítás sRep = Semmi Set nodX = Semmi Set sR2 = Semmi vége 

Letöltések

  • link1
  • Link2

Credits

Előző Cikk Következő Cikk

Top Tippek