DOBON.NET DOBON.NETプログラミング掲示板過去ログ

共有スタートアップフォルダ

分類:[全般]

こんにちは

System.Environment.GetFolderPath(Environment.SpecialFolder.Startup)
で各ユーザのスタートアップのフォルダ名を取得できますが、
全ユーザ共通のスタートアップフォルダ名を取得するにはどうすればいいでしょうか?
■No193に返信(hiroさんの記事)
> こんにちは
> 
> System.Environment.GetFolderPath(Environment.SpecialFolder.Startup)
> で各ユーザのスタートアップのフォルダ名を取得できますが、
> 全ユーザ共通のスタートアップフォルダ名を取得するにはどうすればいいでしょうか?

SHGetFolderPath関数を使わないとだめかもしれませんね。

下のサンプルはこちらを参考にしました。
・CodeProject - C# does Shell, Part 1
http://www.codeproject.com/csharp/csdoesshell1.asp

//定義
[System.Runtime.InteropServices.DllImport("shell32.dll")]
public static extern Int32 SHGetFolderPath(
    IntPtr hwndOwner,
    Int32 nFolder,
    IntPtr hToken,
    UInt32 dwFlags,
    System.Text.StringBuilder pszPath);

//使用
const Int32 CSIDL_COMMON_STARTUP = 0x18;
const UInt32 SHGFP_TYPE_CURRENT = 0;

System.Text.StringBuilder path = new System.Text.StringBuilder(256);
if (SHGetFolderPath(IntPtr.Zero,CSIDL_COMMON_STARTUP,IntPtr.Zero,SHGFP_TYPE_CURRENT,path) == 0)
{
    Console.WriteLine(path.ToString());
}
ありがとうございます

DOBON.NET | プログラミング道 | プログラミング掲示板