Re: デスクトップのパスの取得


[コメントツリー表示を見る] [発言時刻順表示を見る]

Posted by Uz on 2000/10/03 15:03:59

In Reply to: デスクトップのパスの取得 Posted by ともや on 2000/10/03 14:45:49


    > デスクトップのパスの取得はどうすればいいのでしょうか?
    > 色々調べていたのですがわかりませんでした。
    > ただ、ログインしているユーザ毎にパスって違いますよね...

    APIがあるのでそれを使用します。
    ほかにもレジストリを読むなんて方法もあるようですが
    APIの方が簡単だと思います。

    サンプル

    Option Explicit

    Private Const MAX_PATH = 256

    Private Const CSIDL_DESKTOP = &H0

    Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" ( _
    ByVal hWnd As Long, _
    ByVal nFolder As Long, _
    ppidl As Long _
    ) As Long

    Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _
    Alias "SHGetPathFromIDListA" ( _
    ByVal ppidl As Long, _
    ByVal pszPath As String _
    ) As Long

    Private Sub Form_Load()
    Dim ret As Long
    Dim ItemIDList As Long
    Dim FolderPath As String * MAX_PATH

    ret = SHGetSpecialFolderLocation(Form1.hWnd, CSIDL_DESKTOP, ItemIDList)
    ret = SHGetPathFromIDList(ItemIDList, FolderPath)
    Call MsgBox(FolderPath)
    End Sub


記事スレッド一覧