Антон |
Отправлено: 07.01.2006, 11:48 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 8
|
Подскажите как открыть Мои Документы,Рабочий стол не зная буквы диска и имя пользователя. |
|
AVC |
Отправлено: 10.01.2006, 09:34 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Вот то, чем пользуюсь сам. Устроит?
CODE |
//---------------------------------------------------------------------------
// Получение стандартных каталогов по их именам
// Возврат
// Путь к каталогу с завершающим \ (DirAdds)
// Пустая строка при ошибке
// *AVC 18.08.2005 переработка на без TRegistry и добавление DirAdds
//---------------------------------------------------------------------------
// ... == C:\Documents and Settings\avc
// AppData ...\Application Data
// Cookies ...\Cookies
// Desktop ...\Рабочий стол
// Favorites ...\Избранное
// NetHood ...\NetHood
// Personal ...\Мои документы
// My Pictures ...\Мои документы\Мои рисунки
// PrintHood ...\PrintHood
// Recent ...\Recent
// SendTo ...\SendTo
// Start Menu ...\Главное меню
// Templates ...\Шаблоны
// Programs ...\Главное меню\Программы
// Startup ...\Главное меню\Программы\Автозагрузка
// Local Settings ...\Local Settings
// Local AppData ...\Local Settings\Application Data
// Cache ...\Local Settings\Temporary Internet Files
// History ...\Local Settings\History
// Administrative Tools ...\Главное меню\Программы\Администрирование
// My Music ...\Мои документы\\Мои музыкальные записи
//
// Fonts C:\WINNT\Fonts
//---------------------------------------------------------------------------
PACKAGE AnsiString __fastcall AxGetShellFolder (const AnsiString& ShellFolder_Name)
{
AnsiString SubKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
HKEY hKey;
long lerr;
lerr = RegOpenKeyEx(HKEY_CURRENT_USER, SubKey.c_str(), 0, KEY_READ, &hKey);
if (lerr != ERROR_SUCCESS) return "";
char buf[300];
DWORD bufsize = sizeof(buf);
DWORD type;
lerr = RegQueryValueEx(hKey, ShellFolder_Name.c_str(), NULL, &type, buf, &bufsize);
if (lerr != ERROR_SUCCESS) memset(buf, 0x00, bufsize);
RegCloseKey(hKey);
return DirAdds(AnsiString(buf));
}
| |
|
|