分享

利用win32 api实现vb6选择目录功能

 局部地区有小雨 2014-12-27
Vb6代码  收藏代码
  1. Option Explicit  
  2. Public Type BrowseInfo  
  3.      hwndOwner As Long  
  4.      pIDLRoot As Long  
  5.      pszDisplayName As Long  
  6.      lpszTitle As Long  
  7.      ulFlags As Long  
  8.      lpfnCallback As Long  
  9.      lParam As Long  
  10.      iImage As Long  
  11. End Type  
  12.   
  13. Private Const BIF_RETURNONLYFSDIRS = 1  
  14. Private Const MAX_PATH = 260  
  15.   
  16. Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)  
  17. Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long  
  18.   
  19. Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long  
  20. Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long  
  21.   
  22. Public Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String  
  23.        
  24.     '定义变量  
  25.      Dim iNull As Integer  
  26.      Dim lpIDList As Long  
  27.      Dim lResult As Long  
  28.      Dim sPath As String  
  29.      Dim udtBI As BrowseInfo  
  30.   
  31.     '初始化.....  
  32.      With udtBI  
  33.         .hwndOwner = hwndOwner  
  34.         .lpszTitle = lstrcat(sPrompt, "")  
  35.         .ulFlags = BIF_RETURNONLYFSDIRS  
  36.      End With  
  37.   
  38.     '调用API  
  39.      lpIDList = SHBrowseForFolder(udtBI)  
  40.     '得到返回结果  
  41.     If lpIDList Then  
  42.         sPath = String$(MAX_PATH, 0)  
  43.         lResult = SHGetPathFromIDList(lpIDList, sPath)  
  44.         Call CoTaskMemFree(lpIDList)  
  45.         iNull = InStr(sPath, vbNullChar)  
  46.         If iNull Then sPath = Left$(sPath, iNull - 1)  
  47.      End If  
  48.      BrowseForFolder = sPath  
  49.   
  50. End Function  


直接调用获取路径
Java代码  收藏代码
  1. path = BrowseForFolder(hWnd, "请选择一个目录")  

hWnd是内置变量,无需定义赋值。   

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多