Does anyone know how to programmatically access the "All Users" Startup Menu?
In XP, located here:
C:\Documents and Settings\All Users\Start Menu\Programs\Startup
And in Windows 7, located here:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
Specifically, I've got a Setup and Deployment project, and I'd like to put a shortcut to the application in the Startup menu for all users so that the application is start whenever anyone logs in.
EDIT: I'm pretty sure this is where Brian got his answer from.
There is no constant defined for the normal way of Environment.GetFolderPath
for the all users start menu, but you can do it this way by using the Win32 API SHGetSpecialFolderPath
:
class Program
{
[DllImport("shell32.dll")]
static extern bool SHGetSpecialFolderPath(IntPtr hwndOwner,
[Out] StringBuilder lpszPath, int nFolder, bool fCreate);
const int CSIDL_COMMON_STARTMENU = 0x16; // All Users\Start Menu
static void Main(string[] args)
{
StringBuilder path = new StringBuilder(260);
SHGetSpecialFolderPath(IntPtr.Zero, path, CSIDL_COMMON_STARTMENU, false);
string s = path.ToString();
}
}