OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

利用者に指定させたディレクトリー情報を取得したい

  • 困ってます
  • 質問No.212813
  • 閲覧数124
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 43% (10/23)

VB6.0で、ファイル選択のWinAPI:GetOpenFileNameを使って、利用者に指定させた
ディレクトリー情報("c:\temp"等のホルダー情報)を取得したいのですが、うまくいきません。

このAPIは、ファイルの選択しかできないのでしょうか?
ディレクトリー情報を取得するには、他のWinAPI関数があるのでしょうか?

お教え下さい。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル14

ベストアンサー率 51% (1179/2272)

こんにちは。maruru01です。

フォルダ選択のAPI
SHBrowseForFolder
を使用します。
フォルダ名を返す関数を参考までに。

標準モジュールに、

Public Type BROWSEINFO
  hwndOwner As Long
  pidlRoot As Long
  pszDisplayName As String
  lpszTitle As String
  ulFlags As Long
  lpfn As Long
  lParam As Long
  iImage As Long
End Type

Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSEINFO) As Long

Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pIDL As Long, ByVal pszPath As String) As Long

'API使用のフォルダー指定ダイアログ
'Msg:ダイアログのタイトル
'Frm:使用するフォーム(通常はMeを指定)
Public Function GetFolder(Msg As String, Frm As Form) As String

  Const MAX_PATH = 260
  Dim lngRetValue As Long
  Dim strBuffer As String * MAX_PATH
  Dim strPathBuffer As String * MAX_PATH
  Dim udtBrowseInfo As BROWSEINFO
  Dim ReturnPath As String
  Dim rt As String

  strBuffer = String(Len(strBuffer), vbNullChar)
  strBuffer = App.Path & vbNullChar

  If Msg = "" Then
    Msg = "フォルダーを指定してください。"
  End If

  With udtBrowseInfo
    .hwndOwner = Frm.hWnd
    .pidlRoot = &H0
    .pszDisplayName = strBuffer
    .lpszTitle = Msg & vbNullChar
    .ulFlags = &H1
    .lpfn = 0
    .lParam = 0
    .iImage = 0
  End With

  lngRetValue = SHBrowseForFolder(udtBrowseInfo)
  If lngRetValue <> 0& Then
    lngRetValue = SHGetPathFromIDList(lngRetValue, strPathBuffer)
    If lngRetValue = 0 Then
      rt = ""
    Else
      ReturnPath = Left(strPathBuffer, InStr(strPathBuffer, vbNullChar) - 1)
      rt = ReturnPath
    End If
  Else
    rt = ""
  End If
  GetFolder = rt

End Function
お礼コメント
vboshietekudsai

お礼率 43% (10/23)

ありがとうございました。お蔭様で、解決致しました。
投稿日時 - 2002-02-06 16:58:29
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ