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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2010, 18:59   #1
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию Общие функции и процедуры

Давним давно, роясь по различным сайтам посвященным Delphi, я находил некие коды, состоящие (а главное и работающие) примерно вот так:
Код:
edit1.text:=%system%+'Folders Etc/...";
или %root%, %win%.
Где можно ознакомится с полным списком таких вот функций, которые сразу дают полный необходимый параметр (если это %system% - то мы получаем путь к папке system_32, если это %win% - путь к папке с WINDOWS и тп)?
В моей текущей задаче мне нужно программно получить путь к папке Temp, причём проблема в том, что в версиях 2000-XP это папка лежит C:\Temp, а в версии 7 - C:\Windows\Temp (ну помню что не в одинаковых директориях, может и не здесь). Потому константой я путь к папке объявить не могу. Мне нужны функции и процедуры получения разнообразных путей к системным папкам.
Заранее спасибо.
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });
Sensizu вне форума Ответить с цитированием
Старый 17.06.2010, 19:43   #2
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Можно использовать функцию GetSpecialFolderPath для работы с модулем ShlObj.
Функция имеет вид:
Код:
uses SHFolder;
...
function GetSpecialFolderPath(folder : integer) : string;
const
  SHGFP_TYPE_CURRENT = 0;
var
  path: array [0..MAX_PATH] of char;
begin
  if SUCCEEDED(SHGetFolderPath(0,folder,0,SHGFP_TYPE_CURRENT,@path[0])) then
    Result := path
  else
    Result := '';
end;
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 17.06.2010, 19:44   #3
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Использование этой WinAPI-функции:
Код:
// Следующие идентификаторы имеются в модуле ShlObj:
CSIDL_DESKTOP = $0000;
// Виртуальный каталог, представляющий Рабочий стол. (Корень в проводнике)
CSIDL_INTERNET = $0001;
// Виртуальный каталог для Internet Explorer.
CSIDL_PROGRAMS = $0002;
// Меню Пуск -> Программы
CSIDL_CONTROLS = $0003;
// Виртуальный каталог, содержащий иконки пунктов панели управления
CSIDL_PRINTERS = $0004;
// Виртуальный каталог, содержащий установленные принтеры
CSIDL_PERSONAL = $0005;
// Виртуальный каталог, представляющий папку "Мои документы"
// До Vista ссылался на какталог "Мои документы" на жёстком диске
CSIDL_FAVORITES = $0006;
// Избранное. (обычно C:\Documents and Settings\username\Favorites)
CSIDL_STARTUP = $0007;
// Пуск -> Программы -> Автозагрузка
CSIDL_RECENT = $0008;
// Недавние документы (обычно C:\Documents and Settings\username\My Recent Documents
// Для добавления ссылки документа используйте SHAddToRecentDocs
CSIDL_SENDTO = $0009;
// Папка, содержащая ярлыки меню "Отправить" (Sent to...)
//(обычно C:\Documents and Settings\username\SendTo)
CSIDL_BITBUCKET = $000a;
// Виртуальный каталог, содержащий файлы в корзине текущего пользователя
CSIDL_STARTMENU = $000b;
// Элементы меню Пуск текущего пользователя
//(обычно C:\Documents and Settings\username\Start Menu)
CSIDL_DESKTOPDIRECTORY = $0010;
// Рабочий стол текущего пользователя (обычно C:\Documents and Settings\username\Desktop)
CSIDL_DRIVES = $0011;
// Виртуальный каталог, представляющий папку "Мой компьютер"
CSIDL_NETWORK = $0012;
// Виртуальный каталог, представляющий "Сетевое окружение"
CSIDL_NETHOOD = $0013;
// Папка "My Nethood Places" (обычно C:\Documents and Settings\username\NetHood)
// В неё ссылки на избранные расшаренные ресурсы
CSIDL_FONTS = $0014;
// Папка, содержащая установленные шрифты. (обычно C:\Windows\Fonts)
CSIDL_TEMPLATES = $0015;
// Шаблоны документов. (Обычно Settings\username\Templates)
CSIDL_COMMON_STARTMENU = $0016;
// Элементы меню Пуск для всех пользователей.
//(обычно C:\Documents and Settings\All Users\Start Menu)
// Константы, начинающиеся на CSIDL_COMMON_ существуют только в NT версиях
CSIDL_COMMON_PROGRAMS = $0017;
// Меню Пуск -> программы для всех пользователей
//(обычно C:\Documents and Settings\All Users\Start Menu\Programs)
CSIDL_COMMON_STARTUP = $0018;
// Меню Пуск -> Программы -> Автозагрузка для всех пользователей
//(обычно C:\Documents and Settings\All Users\Start Menu\Programs\Startup)
CSIDL_COMMON_DESKTOPDIRECTORY = $0019;
// Элементы Рабочего стола для всех пользователей
//(обычно C:\Documents and Settings\All Users\Desktop)
CSIDL_APPDATA = $001a;
// Папка, в которой рограммы должны хранить свои данные
//(C:\Documents and Settings\username\Application Data)
CSIDL_PRINTHOOD = $001b;
// Установленные принтеры.
//(обычно C:\Documents and Settings\username\PrintHood)
CSIDL_ALTSTARTUP = $001d; // DBCS
// user's nonlocalized Startup program group. Устарело.
CSIDL_COMMON_ALTSTARTUP = $001e; // DBCS
// Устарело
CSIDL_COMMON_FAVORITES = $001f;
// Ссылки "Избранное" для всех пользователей
CSIDL_INTERNET_CACHE = $0020;
// Временные Internet файлы
//(обычно C:\Documents and Settings\username\Local Settings\Temporary Internet Files)
CSIDL_COOKIES = $0021;
// Папка для хранения Cookies (обычно C:\Documents and Settings\username\Cookies)
CSIDL_HISTORY = $0022;
// Хранит ссылки интернет истории IE
}
// Следующих идентификаторов нет в ShlObj:
CSIDL_ADMINTOOLS = $30;
// Административные инструменты текущего пользователя (например консоль MMC). Win2000+

CSIDL_CDBURN_AREA = $3b;
// Папка для файлов, подготовленных к записи на CD/DVD
//(Обычно C:\Documents and Settings\username\Local Settings\Application Data\Microsoft\CD Burning)

CSIDL_COMMON_ADMINTOOLS = $2f;
// Папка, содержащая инструменты администрирования

CSIDL_COMMON_APPDATA = $23;
// Папака AppData для всех пользователей.
//(обычно C:\Documents and Settings\All Users\Application Data)

CSIDL_COMMON_DOCUMENTS = $2e;
// Папка "Общие документы" (обычно C:\Documents and Settings\All Users\Documents)

CSIDL_COMMON_TEMPLATES = $2d;
// Папка шаблонов документов для всех пользователей
//(Обычно C:\Documents and Settings\All Users\Templates)

CSIDL_COMMON_MUSIC = $35;
// Папка "Моя музыка" для всех пользователей.
//(обычно C:\Documents and Settings\All Users\Documents\My Music)
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 17.06.2010, 19:45   #4
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Продолжение.
Код:
CSIDL_COMMON_PICTURES = $36;
// Папка "Мои рисунки" для всех пользователей.
//(обычно C:\Documents and Settings\All Users\Documents\My Pictures)

CSIDL_COMMON_VIDEO = $37;
// Папка "Моё видео" для всех пользователей
//(C:\Documents and Settings\All Users\Documents\My Videos)

CSIDL_COMPUTERSNEARME = $3d;
// Виртуальная папка, представляет список компьютеров в вашей рабочей группе

CSIDL_CONNECTIONS = $31;
// Виртуальная папка, представляет список сетевых подключений

CSIDL_LOCAL_APPDATA = $1c;
// AppData для приложений, которые не переносятся на другой компьютер
//(обычно C:\Documents and Settings\username\Local Settings\Application Data)

CSIDL_MYDOCUMENTS = $0c;
// Виртуальный каталог, представляющий папку "Мои документы"

CSIDL_MYMUSIC = $0d;
// Папка "Моя музыка"

CSIDL_MYPICTURES = $27;
// Папка "Мои картинки"

CSIDL_MYVIDEO = $0e;
// Папка "Моё видео"

CSIDL_PROFILE = $28;
// Папка пользователя (обычно C:\Documents and Settings\username)

CSIDL_PROGRAM_FILES = $26;
// Папка Program Files (обычно C:\Program Files)

CSIDL_PROGRAM_FILESX86 = $2a;

CSIDL_PROGRAM_FILES_COMMON = $2b;
// Папка Program Files\Common (обычно C:\Program Files\Common)

CSIDL_PROGRAM_FILES_COMMONX86 = $2c;

CSIDL_RESOURCES = $38;
// Папка для ресерсов. Vista и выше (обычно C:\Windows\Resources)

CSIDL_RESOURCES_LOCALIZED = $39;

CSIDL_SYSTEM = $25;
// Папака System (обычно C:\Windows\System32 или C:\Windows\System)

CSIDL_SYSTEMX86 = $29;

CSIDL_WINDOWS = $24;
// Папка Windows. Она же %windir% или %SYSTEMROOT% (обычно C:\Windows)
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 17.06.2010, 20:24   #5
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию

Оно то классно, но как получить доступ в папку с временными файлами? =\ среди предоставленных кодов её там нет.
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });
Sensizu вне форума Ответить с цитированием
Старый 17.06.2010, 21:01   #6
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Я этот материал брал из немного устаревшего справочника функций по WIN API. Если поискать в Инете справочник посвежее (желательно полный), то, думаю, найдете. Я тоже поищу. Если найду что-то стоящее - отпишусь.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 17.06.2010, 21:42   #7
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
Сообщение от Sensizu Посмотреть сообщение
Оно то классно, но как получить доступ в папку с временными файлами? =\ среди предоставленных кодов её там нет.
http://valeevildar.blogspot.com/2008/05/windows_31.html
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры и Функции hewlett Помощь студентам 1 13.05.2010 15:18
процедуры и функции barby-Nastya Помощь студентам 2 25.04.2010 18:46
процедуры и функции Dzhem Помощь студентам 6 27.01.2010 17:40
Процедуры и функции Asira Помощь студентам 13 12.01.2010 18:22
Администрирование\управление компьютером\Общие папки\Общие ресурсы\прекратить общий доступ lm_strj Безопасность, Шифрование 2 13.10.2007 21:28