各位老大,帮我看看这段代码吧。我哭..........
Private Class BROWSEINFO
Public hOwner As Long
Public pidlRoot As Long
Public pszDisplayName As String
Public lpszTitle As String
Public ulFlags As Long
Public lpfn As Long
Public lParam As Long
Public iImage As Long
End Class
Const BIF_RETURNONLYFSDIRS = &H1
Private pidl As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (ByVal lpBrowseInfo As BROWSEINFO) As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim bi As BROWSEINFO
Dim r As Long
Dim pidl As Long
Dim path As String
Dim pos As Integer
bi.hOwner = Me.Handle.ToInt64 '句柄
bi.pidlRoot = 0& '展开根目录
bi.lpszTitle = "请选择软件安装路径:" '列表框标题
bi.ulFlags = BIF_RETURNONLYFSDIRS '规定只能选择文件夹,其他无效
pidl = SHBrowseForFolder(bi) '调用API函数显示列表框
'利用API函数获取返回的路径
path = Space$(512)
r = SHGetPathFromIDList(pidl&, path)
If r Then
pos = InStr(path, Chr(0))
Me.TextBox1.Text = Microsoft.VisualBasic.Left(path, pos - 1)
Else
Me.TextBox1.Text = ""
End If
End Sub
运行到
bi.hOwner = Me.Handle.ToInt64 '句柄
的时候,不知道出现什么问题。
痛苦死了。
谢谢各位老大。