|
分類:[VB.NET/VB2005 以降]
お世話になります。
VB2005 で xp,vista 向けに開発をしている初心者です。
スタートメニュー(All Users)のパスを取得するため
以下のソースを作成しました。
しかし、SHGetSpecialFolderPath で False が返ってきてしまいます。
どのようにすれば SHGetSpecialFolderPath 関数が成功するのでしょうか。
よろしくお願い致します。
------------------------------------------------------------
' API 関数定義
Private Declare Function SHGetSpecialFolderPath Lib _
"Shell32" Alias "SHGetSpecialFolderPathA" ( _
ByVal hWnd As Long, _
ByVal lpPath As String, _
ByVal nFolder As Long, _
ByVal fCreate As Boolean) As Boolean
' フォルダID
Private Const CSIDL_COMMON_PROGRAMS = 23
' 共通プログラムメニューのパスを取得
Sub Main()
Dim strTemp As String = ""
Dim intPoint As Integer
Dim strPath As String
strTemp.PadLeft(256)
' 共通プログラムメニューのパスを取得
If SHGetSpecialFolderPath( _
0, strTemp, CSIDL_COMMON_PROGRAMS, False) Then
' 余計なNULL文字を削除
intPoint = InStr(strTemp, Chr(0))
strPath = Left(strTemp, intPoint - 1)
End If
End Sub
|