Autostartordner finden
-
Hi, ich moechte den Autostartordner des Current User bwz der Local Machine finden.
Bis jetzt geh ich so vor:const char szStartUp[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders"; const char szCurUserStartValue[] = "Startup"; const char szLocMachineStartValue[] = "Common Startup"; ... if( GetRegValue(szStartUp, szCurUserStartValue, (char*)szKeyValue, &dwValueSize) == ERROR_SUCCESS) .... LONG cAutoStart::GetRegValue(const char* pszSubKey, const char* pszValueName, char* szValue, LPDWORD pdwSizeValueName, KEY_TYPE KeyType) { HKEY hOpenKey; HKEY hTmp = (KeyType == CUR_USER) ? HKEY_CURRENT_USER : HKEY_LOCAL_MACHINE; LONG lReturn; if( (lReturn = RegOpenKeyEx( hTmp, pszSubKey, 0, KEY_READ, &hOpenKey)) == ERROR_SUCCESS) { lReturn = RegQueryValueEx(hOpenKey, pszValueName, NULL, NULL, (LPBYTE) szValue, pdwSizeValueName); RegCloseKey(hOpenKey); } return lReturn; }Was auch soweit super klappt. Jetzt is nur die Frage ob das in den nachfolgern von WinXP auch noch klappt!? Oder sollte man das iwie anders machen?
Peace & Blessed Love C0de4Fun
-
hey,
char szStartUpPath[MAX_PATH]; SHGetFolderPath(NULL,CSIDL_STARTUP, NULL, SHGFP_TYPE_DEFAULT, szStartUpPath);Minimum operating systems:
Windows 95 with Internet Explorer 5.0, Windows 98 with Internet Explorer 5.0, Windows 98 Second Edition (SE), Windows NT 4.0 with Internet Explorer 5.0, Windows NT 4.0 with Service Pack 4 (SP4)MSDN LINK
klappt von win 95 - win 7 & ist kürzer / einfacher als deine methode
lg
-
Danke dir vielmals!
Scheint wunderbar zu funktioniern
Peace & a blessed day
-
Bitte nicht die Standardordner aus der Registry lesen: http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx
-
_Luckie schrieb:
Bitte nicht die Standardordner aus der Registry lesen: http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx
Meine volle Zustimmung!
Sog. "Registry Hacks" sind immer mit Vorsicht zu genießen..
Schließlich gibt es die offiziellen Funktionen:
-SHGetFolderPath(),
-SHGetSpecialFolderPath() (seit Win2000 ersetzt durch SHGetFolderPath()),
-SHGetFolderLocation() und
-SHGetSpecialFolderLocation() (seit Win2000 ersetzt durch SHGetFolderLocation()).
Nimm diese, und Du hast die wenigsten Ärger damit!
Seit Windows Vista und Windows 7 gibt es den Nachfolger "Known Folders" mit SHGetKnownFolderPath(): http://msdn.microsoft.com/en-us/library/bb776911(VS.85).aspx
Diese werden aber über COM angesprochen!Martin
-
_Luckie schrieb:
Bitte nicht die Standardordner aus der Registry lesen: http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx
Hey danke fuer den Link :).
New old Thing schrieb:
So when there's some setting you want to retrieve, and you don't want to read documentation, what do you do? You search the registry! (Sound familiar? People still do this today.)
Genau so gings mir au. Einfach mal in der Registry nach startup geschaut und das is dabei rauskommen

Peace & a blessed day C0de4fun