Option ExplicitPrivate Const BIF_RETURNONLYFSDIRS = 1
Private Const BIF_DONTGOBELOWDOMAIN = 2Private Const MAX_PATH = 1024
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BrowseInfo) _
    As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, _
    ByVal pszPath As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As _
    String) As LongPrivate lpIDList As Long
Private sBuffer As String
Private szTitle As String
Private tBrowseInfo As BrowseInfo
Private Type BrowseInfo
    hwndOwner As Long
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long
    ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
End Type
Private Sub cmdBrowser_Click()
    ' Get folder from user
    szTitle = "Browser your image location"
    
    ' Get folder from user
    With tBrowseInfo
       ' .hwndOwner = Me.hWnd
        .lpszTitle = lstrcat(szTitle, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
    End With
    
    lpIDList = SHBrowseForFolder(tBrowseInfo)
    
    If (lpIDList) Then
        
        sBuffer = Space(MAX_PATH)
        SHGetPathFromIDList lpIDList, sBuffer
        sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
        If Right(sBuffer, 1) <> "\" Then
            sBuffer = sBuffer & "\"
        End If
        
        txtDir.Text = sBuffer
    Else
        
    End If
    
End Sub我想得到txtDir.text值.
怎么得到.是不是还得定义一个函数输出txtDir的值才能被外部程序调用/
<HTML>
<HEAD>
<TITLE>selectUpload.CAB</TITLE>
</HEAD>
<BODY>
<OBJECT ID="selectUpload"
CLASSID="CLSID:DC561D86-E305-489D-AC0C-3FD0DCE95F41"
CODEBASE="selectUpload.CAB#version=1,0,0,0">
</OBJECT>
</BODY>
</HTML>

解决方案 »

  1.   

    你要定义一个公共属性,其它程序才能访问。txtdir 这个控件是你放在自定义控件内部的吧,从外面是访问不到它的。你可以加一个属性过程:Public Property Get SelectDir() As string
        SelectDir = txtdir.text
    End Property然后在网页中用selectupload.selectdir 就能获取了。
      

  2.   

    对了.为什么我自动安装的时候说我的CAB没有签名.禁止安装.
      

  3.   

    那就是因为你没有签名嘛!
    改一下IE的设置,对于未签名的OCX也可以安装就行了。
    怎么做一个签名,偶不会;即使签了名,IE也会提示非认证的,你总不能去认证吧?那是要向MICROSOFT交钱的。