皮皮网

皮皮网

【风吹雨聚合源码】【blue20170921源码】【himall3.1源码】dirlistbox源码

时间:2024-11-19 02:20:43 分类:娱乐

1.vb问题:希望可以给代码

dirlistbox源码

vb问题:希望可以给代码

       先新建一个模块,源码里面添加API声明

       Option Explicit

       Declare Function MoveWindow Lib "user" (ByVal hwnd As Long,源码风吹雨聚合源码 ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

       Declare Function SendMessage Lib "user" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

       Public Const LB_INITSTORAGE = &H1A8

       Public Const LB_ADDSTRING = &H

       Public Const WM_SETREDRAW = &HB

       Public Const WM_VSCROLL = &H

       Public Const SB_BOTTOM = 7

       Declare Function GetLogicalDrives Lib "kernel" () As Long

       Declare Function FindFirstFile Lib "kernel" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN_FIND_DATA) As Long

       Public Const INVALID_HANDLE_VALUE = -1

       Declare Function FindNextFile Lib "kernel" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN_FIND_DATA) As Long

       Declare Function FindClose Lib "kernel" (ByVal hFindFile As Long) As Long

       Type FILETIME

       dwLowDateTime As Long

       dwHighDateTime As Long

       End Type

       Public Const MaxLFNPath =

       Type WIN_FIND_DATA

       dwFileAttributes As Long

       ftCreationTime As FILETIME

       ftLastAccessTime As FILETIME

       ftLastWriteTime As FILETIME

       nFileSizeHigh As Long

       nFileSizeLow As Long

       dwReserved0 As Long

       dwReserved1 As Long

       cFileName As String * MaxLFNPath

       cShortFileName As String *

       End Type

       然后在窗体上制作2个菜单,放置一个ListBox和一个PictureBox

       完整代码如下:

       Option Explicit

       Dim PicHeight%,源码blue20170921源码 hLB&, FileSpec$, UseFileSpec%

       Dim TotalDirs%, TotalFiles%, Running%

       Dim WFD As WIN_FIND_DATA, hItem&, hFile&

       Const vbBackslash = "\"

       Const vbAllFiles = "*.*"

       Const vbKeyDot =

       Private Sub Form_Load()

       ScaleMode = vbPixels

       PicHeight% = Picture1.Height

       hLB& = List1.hwnd

       SendMessage hLB&, LB_INITSTORAGE, &, ByVal & *

       Move (Screen.Width - Width) * 0.5, (Screen.Height - Height) * 0.5

       End Sub

       Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

       If KeyCode = vbKeyEscape And Running% Then Running% = False

       End Sub

       Private Sub Form_Resize()

       MoveWindow hLB&, 0, 0, ScaleWidth, ScaleHeight - PicHeight%, True

       End Sub

       Private Sub Form_Unload(Cancel As Integer)

       Set Form1 = Nothing

       End

       End Sub

       Private Sub mnuFindFiles_Click()

       If Running% Then: Running% = False: Exit Sub

       Dim drvbitmask&, maxpwr%, pwr%

       On Error Resume Next

       FileSpec$ = InputBox("Enter a file spec:" & vbCrLf & vbCrLf & "Searching will begin at drive A and continue " & "until no more drives are found. " & "Click Stop! at any time." & vbCrLf & "The * and ? wildcards can be used.", "Find File(s)", "*.exe")

       If Len(FileSpec$) = 0 Then Exit Sub

       MousePointer =

       Running% = True

       UseFileSpec% = True

       mnuFindFiles.Caption = "&Stop!"

       mnuFolderInfo.Enabled = False

       List1.Clear

       drvbitmask& = GetLogicalDrives()

       If drvbitmask& Then

       maxpwr% = Int(Log(drvbitmask&) / Log(2))

       For pwr% = 0 To maxpwr%

       If Running% And (2 ^ pwr% And drvbitmask&) Then _

       Call SearchDirs(Chr$(vbKeyA + pwr%) & ":\")

       Next

       End If

       Running% = False

       UseFileSpec% = False

       mnuFindFiles.Caption = "&Find File(s)..."

       mnuFolderInfo.Enabled = True

       MousePointer = 0

       Picture1.Cls

       Picture1.Print "Find File(s): " & List1.ListCount & " items found matching " & """" & FileSpec$ & """"

       Beep

       End Sub

       Private Sub mnuFolderInfo_Click()

       If Running% Then: Running% = False: Exit Sub

       Dim searchpath$

       On Error Resume Next

       searchpath$ = InputBox("输入要查找的目标路径", "文件夹信息", "C:\")

       If Len(searchpath$) < 2 Then Exit Sub

       If Mid$(searchpath$, 2, 1) <> ":" Then Exit Sub

       If Right$(searchpath$, 1) <> vbBackslash Then searchpath$ = searchpath$ & vbBackslash

       If FindClose(FindFirstFile(searchpath$ & vbAllFiles, WFD)) = False Then

       End If

       MousePointer =

       Running% = True

       mnuFolderInfo.Caption = "停止(&S)"

       mnuFindFiles.Enabled = False

       List1.Clear

       TotalDirs% = 0

       TotalFiles% = 0

       Call SearchDirs(searchpath$)

       Running% = False

       mnuFolderInfo.Caption = "文件夹信息(&F)"

       mnuFindFiles.Enabled = True

       Picture1.Cls

       MousePointer = 0

       MsgBox "Total folders: " & vbTab & TotalDirs% & vbCrLf & "Total files: " & vbTab & TotalFiles%, , "Folder Info for: " & searchpath$

       End Sub

       Private Sub SearchDirs(curpath$)

       Dim dirs%, dirbuf$(), i%

       Picture1.Cls

       Picture1.Print "Searching " & curpath$

       DoEvents

       If Not Running% Then Exit Sub

       hItem& = FindFirstFile(curpath$ & vbAllFiles, WFD)

       If hItem& <> INVALID_HANDLE_VALUE Then

       Do

       If (WFD.dwFileAttributes And vbDirectory) Then

       If Asc(WFD.cFileName) <> vbKeyDot Then

       TotalDirs% = TotalDirs% + 1

       If (dirs% Mod ) = 0 Then ReDim Preserve dirbuf$(dirs% + )

       dirs% = dirs% + 1

       dirbuf$(dirs%) = Left$(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 1)

       End If

       ElseIf Not UseFileSpec% Then

       TotalFiles% = TotalFiles% + 1

       End If

       Loop While FindNextFile(hItem&, WFD)

       Call FindClose(hItem&)

       End If

       If UseFileSpec% Then

       SendMessage hLB&, WM_SETREDRAW, 0, 0

       Call SearchFileSpec(curpath$)

       SendMessage hLB&, WM_VSCROLL, SB_BOTTOM, 0

       SendMessage hLB&, WM_SETREDRAW, 1, 0

       End If

       For i% = 1 To dirs%: SearchDirs curpath$ & dirbuf$(i%) & vbBackslash: Next i%

       End Sub

       Private Sub SearchFileSpec(curpath$)

       hFile& = FindFirstFile(curpath$ & FileSpec$, WFD)

       If hFile& <> INVALID_HANDLE_VALUE Then

       Do

       DoEvents

       If Not Running% Then Exit Sub

       SendMessage hLB&, LB_ADDSTRING, 0, ByVal curpath$ & Left$(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 1)

       Loop While FindNextFile(hFile&, WFD)

       Call FindClose(hFile&)

       End If

       End Sub

       程序运行时就能够通过输入文件名而进行模糊查找了

       如果还不明白,就加我QQ,源码himall3.1源码我把我做好的源码修改ce源码函数程序发给你看

       QQ号: