Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2012, 19:59   #11
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Хаха))) Спасибо, хорошая история про Shell Folders.
Программирую уже лет 7 простенькие программки на ХР, сейчас уже на 7ку. А только теперь узнал, что Shell Folders по сути ничего))))
А не узнал бы, если б не появилось желание обойтись без реестра, как в былые времена)

Совет, забейте на "Shell Folders", я изменил адреса там в первые 15мин после установки Win7 ))) в попытке быстро и легко перенести всё на родное место)
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 08.06.2012, 08:24   #12
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Написал как то отдельный Юнит и теперь просто когда это нужно подключаю к проекту и всё. Вот полный код юнита:
Код:
unit SystemDirs;

interface
  function GetWindowsDir : string;		    // Папка Windows
  function GetSystem32Dir : string;		    // System32
  function GetDesktopDir : string;		    // Общий рабочий стол
  function GetUserDesktopDir : string;		// Рабочий стол данного пользователя
  function GetMyDocsDir : string;		      // Мои документы пользователя
  function GetAllMyDocsDir : string;      // Мои документы всех пользователей
  function GetProgramFilesDir : string;		// Program Files
  function GetUserAppDataDir : string;		// Application Data текущего пользователя
  function GetAppDataDir : string;		    // Application Data для всех пользователей
  function GetTemplatesDir : string;      // Папка шаблнов MS Office

implementation

uses
  Windows, ShlObj;


function GetWindowsDir : string;
var
  c   : array [0..MAX_PATH] of char;
  dir : string;
begin
  SHGetFolderPath(0, CSIDL_WINDOWS, 0, 0, c);
  dir := c;
  result := dir + '\';
end;

function GetSystem32Dir : string;
var
  c   : array [0..MAX_PATH] of char;
  dir : string;
begin
  SHGetFolderPath(0, CSIDL_SYSTEM, 0, 0, c);
  dir := c;
  result := dir + '\';
end;

function GetDesktopDir : string;
var
  c   : array [0..MAX_PATH] of char;
  dir : string;
begin
  SHGetFolderPath(0, CSIDL_COMMON_DESKTOPDIRECTORY, 0, 0, c);
  dir := c;
  result := dir + '\';
end;

function GetUserDesktopDir : string;
var
  c   : array [0..MAX_PATH] of char;
  dir : string;
begin
  SHGetFolderPath(0, CSIDL_DESKTOPDIRECTORY, 0, 0, c);
  dir := c;
  result := dir + '\';
end;

function GetMyDocsDir : string;
var
  c   : array [0..MAX_PATH] of char;
  dir : string;
begin
  SHGetFolderPath(0, CSIDL_MYDOCUMENTS, 0, 0, c);
  dir := c;
  result := dir + '\';
end;

function GetProgramFilesDir : string;
var
  c   : array [0..MAX_PATH] of char;
  dir : string;
begin
  SHGetFolderPath(0, CSIDL_PROGRAM_FILES, 0, 0, c);
  dir := c;
  result := dir + '\';
end;

function GetUserAppDataDir : string;
var
  c   : array [0..MAX_PATH] of char;
  dir : string;
begin
  SHGetFolderPath(0, CSIDL_APPDATA, 0, 0, c);
  dir := c;
  result := dir + '\';
end;

function GetAppDataDir : string;
var
  c   : array [0..MAX_PATH] of char;
  dir : string;
begin
  SHGetFolderPath(0, CSIDL_COMMON_APPDATA, 0, 0, c);
  dir := c;
  result := dir + '\';
end;

function GetAllMyDocsDir : string;
var
  c   : array [0..MAX_PATH] of char;
  dir : string;
begin
  SHGetFolderPath(0, CSIDL_COMMON_DOCUMENTS, 0, 0, c);
  dir := c;
  result := dir + '\';
end;

function GetTemplatesDir : string;
var
  c   : array [0..MAX_PATH] of char;
  dir : string;
begin
  SHGetFolderPath(0, CSIDL_TEMPLATES, 0, 0, c);
  dir := c;
  result := dir + '\';
end;

end.
FaTaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема найти путь к винде при запуске программы через удаленный рабочий стол grenles Общие вопросы Delphi 4 12.04.2009 23:29
создание файла в папке Мои Документы (Delphi) sonic007 Помощь студентам 1 27.05.2008 17:07
Как узнать расположение папки мои документы? apromix Win Api 4 08.05.2008 15:04
Как программно узнать путь к базе.Соединение через adoconnection. Moel БД в Delphi 1 26.10.2007 08:32
Как изменить рабочий стол через sendmessage Romanbl4 Win Api 6 18.07.2007 14:35