![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
А кто и где нам в Микрософте обещал, что реестр для всех версий Винды будет совместим? Обещали нам только, что API'шные функции будут совместимы (в меру возможностей). Это сообщение отредактировал(а) northener - 14.11.2011, 23:07 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
ты путаешь функции модератора и обычного пользователя форума, не делай этого Добавлено через 4 минуты и 24 секунды
судя по этой ссылке: http://msdn.microsoft.com/en-us/library/bb...4(v=VS.85).aspx константа CSIDL_MYDOCUMENTS появилась в Version 6.0. (6.0 Windows XP) А до этого её не было. Или я ошибаюсь? Таким образом в Windows 2000 программы выдаст исключение, так? |
||||
|
|||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Ты смотришь на виртуальную My documents. Она - с XP, да. А физическая My documents была и до этого. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
не понял :(
|
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
По твоей ссылке см. CSIDL_PERSONAL
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
Т.е. мне предварительно нужно вычислить версию винды, а уж потом выбирать, какую константу использовать?
|
|||
|
||||
| northener |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Понял. Добавлено @ 23:12
Имхо, Винда сама разберется куда писать и откуда читать, если использовать именно CSIDL_PERSONAL. Это сообщение отредактировал(а) northener - 15.11.2011, 00:29 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
||||
|
|||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Нет, эти две константы равны. Просто до XP Мои документы была физической папкой. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
тогда зачем вторая константа? Добавлено через 1 минуту и 1 секунду в семёрке папка Documents тоже физическая Добавлено через 2 минуты и 43 секунды Где я не прав? Путь к папке Мои документы в реестре живёт уже лет 20. Вы думаете, что с помощью константы винда как-то по другому путь вычисляет? В итоге всё равно всё сводится к реестру. |
|||
|
||||
| CodeMonkey |
|
||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Это не вторая константа. Это одна и та же константа. Но у неё два имени. Её второе имя добавили в XP. До XP была только PERSONAL. Вообще-то в Win7 нет папки Мои документы. Если у тебя Win7 стоит - попробуй тыкнуть в "Документы". Увидишь интересную надпись "Documents Library; includes: 2 location(s)". Ты про что конкретно? Ты дофига где не прав 1.
Где не прав: http://www.transl-gunsmoker.ru/2008/12/shell-folders.html Чёрным по белому разработчик Windows говорит, что твой способ - неправильный. Специально для тебя в Windows 7 в том ключе создали значение "!Do not use this registry key" с данными "Use the SHGetFolderPath or SHGetKnownFolderPath function instead". 2. Где не прав: CSIDL_PERSONAL была всегда. 3.
Где не прав: CSIDL_MYDOCUMENTS = CSIDL_PERSONAL. ShlObj.h:
4. Где не прав: в Windows 7 нет папки Мои документы. Есть библиотека "Документы". Даже если брать утверждение для XP, это не совсем верное. До XP Мои документы была физической папкой, представленной на рабочем столе. Т.е. прямо в папке рабочего стола была физическая папка Мои документы. И ей соответствовала CSIDL_PERSONAL. Всегда. Ферштейн? А в XP Мои документы более не является физической папкой. Если ты посмотришь на физическое хранилище рабочего стола, то никакой Мои документы там не будет. Понимаешь? У Моих документов есть физическое хранилище, но сама папка, начиная с XP, - виртуальная. В этом же время ввели псевдоним CSIDL_MyDocuments. Он тождественно равен CSIDL_PERSONAL. PIDL к виртуальной папке (виртуальная Мои документы на рабочем столе) или путь к физической (физическое хранилище Мои документы) - возвращаются разными функциями. Вот так надо трактовать документацию. 5. Где не прав: люди перебегают на красный свет со времён появления светофоров. Из чего не следует, что это правильно. 6.
Где не прав: "знали ли вы, что если вы ни разу не открывали свою папку "Шрифты", и никакая программа ни разу не вызывала SHGetSpecialFolderLocation(CSIDL_FONTS), то никакой записи "Fonts" в ключе "Shell Folders" не будет?" Как видишь, по другому. Функция возвращает результат всегда, реестр - не всегда. 7. Где не прав: http://www.transl-gunsmoker.ru/2008/12/shell-folders.html Чёрным по белому разработчик Windows говорит, что реестр не является первоисточником этой информации. Это поведение было убрано ещё в бетах Windows 95. Добавлено через 4 минуты и 1 секунду Чтобы было совсем ясно: есть разница между "это - работает" и "это - правильно". Это сообщение отредактировал(а) CodeMonkey - 17.11.2011, 15:38 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
||||||||
|
|||||||||
| Akella |
|
||||||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
Зачем мне использовать её второе имя. У константы не может быть два имени. Это просто два константы или две переменных, ссылающиеся на одно и тоже значение. Мне так кажется. Добавлено @ 17:42
а где я писал, что Мои документы в семёрке физическая папка Добавлено @ 17:42
ФСЁ, ты забанен Добавлено @ 17:44
но это работает до сих пор, уже почти 20 лет Добавлено @ 17:47 Зачем тогда CSIDL_MYDOCUMENTS? Это вносит путаницу. Добавлено @ 17:49
и в Win2000? Добавлено через 10 минут с трудом верится Добавлено через 11 минут и 20 секунд
но это не про папку Мои документы Добавлено через 13 минут и 23 секунды В любом случае я понял. Короче наворотили разработчики винды..... |
||||||||||
|
|||||||||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Т.е. Это в сочетании с вышенаписанным следует читать "Понял, но не принял"! А разве мы все (разработчики) не "обязаны" поддерживать обратную совместимость? А порой из-за изначальной непродуманности проекта обратная совместимость может быть реализована только костылями. :( -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Lols |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 21.10.2011 Репутация: нет Всего: нет |
Уважаемые, определитесь про 7ю винду - тут уже у меня шкурный интерес. Так что с папкой?
|
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
А какие проблемы с папкой? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |