「スタートアップ」フォルダの定義は?

解決


ポント  2003-10-05 01:19:03  No: 79649

OS:Windows 98 Second Edition

タスクバーの「スタート」→「プログラム」→「スタートアップ」という項目で、ここへパソコン起動時に自動起動させたいアプリケーションやそのショートカットを配置しておけば、自動的に起動してくれますが、このフォルダはWindowsでどのように定義されているのですか? (Windowsのバージョンによって使用で着たり使用できなかったりというのがありますか? また、レジストリなどで「スタートアップ」フォルダの機能を果たすフォルダ名などが登録されているのでしょうか?)

VBとは、直接的な関係がなくて申し訳ありませんが、ご教授よろしくお願いします。


oku  URL  2003-10-05 07:55:55  No: 79650

APIのSHGetSpecialFolderLocationとSHGetPathFromIDListで
スタートアップのパスを取得できますよ。

Win95以上ならスタートアップはあったと思います。
Win3.1は覚えてません。

一応ソース載せときますね。

Option Explicit
'SHGetSpecialFolderLocation=>特殊フォルダの位置を取得する

'<引数>
'hWndOwner:ウインドウのハンドル
'nFolder:定数(CSIDL_××参照)
'ppidl:IDが入る変数

'<戻り値>
'正常終了0

Private Declare Function SHGetSpecialFolderLocation Lib "SHELL32" _
        (ByVal hwndOwner As Long, _
         ByVal nFolder As Long, _
         ppidl As Long) As Long

'SHGetPathFromIDList=>特殊フォルダのIDをパスに変換する

'<引数>
'pIDL :特殊フォルダのID
'pszPath:パス名を格納するバッファ

'<戻り値>
'正常終了0

Private Declare Function SHGetPathFromIDList Lib "SHELL32" _
        (ByVal pidl As Long, _
         ByVal pszPath As String) As Long

Private Const CSIDL_STARTUP = &H7           '[スタートアップ]

Private Sub Command1_Click()
    Dim lngRet          As Long       '戻り値
    Dim ID              As Long       'フォルダのID
    Dim strPath         As String    '取得したパス名を格納する変数

    '特殊フォルダの位置(ID)を取得する
    lngRet = SHGetSpecialFolderLocation(ByVal Me.hWnd, ByVal CSIDL_STARTUP, ID)

    'バッファを確保
    strPath = String$(256, vbNullChar)

    'IDからパス名へ変換する
    lngRet = SHGetPathFromIDList(ID, strPath)
    If strPath <> vbNullString Then
        Text1.Text = Left$(strPath, InStr(strPath, vbNullChar) - 1)
    End If
End Sub

レジストリはわかりません。


ポント  2003-10-06 22:38:59  No: 79651

コード例までいただいて、丁寧なお返事、どうもありがとうございます。おかげで取得できました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加