Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> путь к файлу, путь к файлу 
V
    Опции темы
northener
Дата 13.11.2011, 00:25 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Akella @  12.11.2011,  21:12 Найти цитируемый пост)
 with TRegistry.Create do

А кто и где нам в Микрософте обещал, что реестр для всех версий Винды будет совместим?
Обещали нам только, что API'шные функции будут совместимы (в меру возможностей).


Это сообщение отредактировал(а) northener - 14.11.2011, 23:07


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
CodeMonkey
Дата 13.11.2011, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(Akella @  12.11.2011,  22:12 Найти цитируемый пост)
with TRegistry.Create do


От тебя не ожидал.

http://www.transl-gunsmoker.ru/2008/12/shell-folders.html


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Akella
Дата 14.11.2011, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Цитата(northener @  13.11.2011,  00:25 Найти цитируемый пост)
P.S. Второй раз за рабочий день спорю с модератором. 
Ведь сколько раз предупреждал себя, что этого делать не нужно! :( 


ты путаешь функции модератора и обычного пользователя форума, не делай  этого

Добавлено через 4 минуты и 24 секунды
Цитата(CodeMonkey @ 13.11.2011,  00:26)
Цитата(Akella @  12.11.2011,  22:12 Найти цитируемый пост)
with TRegistry.Create do


От тебя не ожидал.

http://www.transl-gunsmoker.ru/2008/12/shell-folders.html

судя по этой ссылке: http://msdn.microsoft.com/en-us/library/bb...4(v=VS.85).aspx

константа CSIDL_MYDOCUMENTS появилась в Version 6.0. (6.0    Windows XP)

А до этого её не было. Или я ошибаюсь?

Таким образом в Windows 2000 программы выдаст исключение, так?
PM MAIL   Вверх
CodeMonkey
Дата 14.11.2011, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(Akella @  14.11.2011,  11:52 Найти цитируемый пост)
судя по этой ссылке: http://msdn.microsoft.com/en-us/library/bb...4(v=VS.85).aspx

константа CSIDL_MYDOCUMENTS появилась в Version 6.0. (6.0    Windows XP)

А до этого её не было. Или я ошибаюсь?

Таким образом в Windows 2000 программы выдаст исключение, так? 


Ты смотришь на виртуальную My documents. Она - с XP, да.

А физическая My documents была и до этого. 


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Akella
Дата 14.11.2011, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



не понял :(
PM MAIL   Вверх
CodeMonkey
Дата 14.11.2011, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



По твоей ссылке см. CSIDL_PERSONAL


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Akella
Дата 14.11.2011, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Т.е. мне предварительно нужно вычислить версию винды, а уж потом выбирать, какую константу использовать?
PM MAIL   Вверх
northener
Дата 14.11.2011, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Akella @  14.11.2011,  10:52 Найти цитируемый пост)
ты путаешь функции модератора и обычного пользователя форума, не делай  этого

Понял. smile Некоторые другие модераторы придерживаются других правил.

Добавлено @ 23:12
Цитата(Akella @  14.11.2011,  21:19 Найти цитируемый пост)
Т.е. мне предварительно нужно вычислить версию винды, а уж потом выбирать, какую константу использовать? 

Имхо, Винда сама разберется куда писать и откуда читать, если использовать именно CSIDL_PERSONAL.

Это сообщение отредактировал(а) northener - 15.11.2011, 00:29


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
CodeMonkey
Дата 15.11.2011, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(Akella @  14.11.2011,  22:19 Найти цитируемый пост)
Т.е. мне предварительно нужно вычислить версию винды, а уж потом выбирать, какую константу использовать? 


Нет, эти две константы равны. Просто до XP Мои документы была физической папкой.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Akella
Дата 17.11.2011, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Цитата(northener @  14.11.2011,  23:08 Найти цитируемый пост)
Имхо, Винда сама разберется куда писать и откуда читать, если использовать именно CSIDL_PERSONAL.

тогда зачем вторая константа?

Добавлено через 1 минуту и 1 секунду
Цитата(CodeMonkey @ 15.11.2011,  08:46)
Цитата(Akella @  14.11.2011,  22:19 Найти цитируемый пост)
Т.е. мне предварительно нужно вычислить версию винды, а уж потом выбирать, какую константу использовать? 


Нет, эти две константы равны. Просто до XP Мои документы была физической папкой.

в семёрке папка Documents тоже физическая

Добавлено через 2 минуты и 43 секунды
Где я не прав? Путь к папке Мои документы в реестре живёт уже лет 20. Вы думаете, что с помощью константы винда как-то по другому путь вычисляет? В итоге всё равно всё сводится к реестру.
PM MAIL   Вверх
CodeMonkey
Дата 17.11.2011, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(Akella @  17.11.2011,  13:46 Найти цитируемый пост)
тогда зачем вторая константа?


Это не вторая константа. Это одна и та же константа. Но у неё два имени.

Её второе имя добавили в XP. До XP была только PERSONAL.

Цитата(Akella @  17.11.2011,  13:46 Найти цитируемый пост)
в семёрке папка Documents тоже физическая


Вообще-то в Win7 нет папки Мои документы. Если у тебя Win7 стоит - попробуй тыкнуть в "Документы". Увидишь интересную надпись "Documents Library; includes: 2 location(s)".

Цитата(Akella @  17.11.2011,  13:46 Найти цитируемый пост)
Где я не прав?


Ты про что конкретно? Ты дофига где не прав smile  (не сочти за наезд)

1. 
Цитата(Akella @  12.11.2011,  22:12 Найти цитируемый пост)
sMyDocAppPath := IncludeTrailingPathDelimiter(ReadString('Personal'));


Где не прав: 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. 
Цитата(Akella @  14.11.2011,  11:52 Найти цитируемый пост)
Таким образом в Windows 2000 программы выдаст исключение, так? 


Где не прав: CSIDL_PERSONAL была всегда.

3. 
Цитата(Akella @  14.11.2011,  22:19 Найти цитируемый пост)
Т.е. мне предварительно нужно вычислить версию винды, а уж потом выбирать, какую константу использовать? 


Где не прав: CSIDL_MYDOCUMENTS = CSIDL_PERSONAL.

ShlObj.h:
Код
#define CSIDL_MYDOCUMENTS               CSIDL_PERSONAL
#define CSIDL_PERSONAL                  0x0005       


4. 
Цитата(Akella @  17.11.2011,  13:46 Найти цитируемый пост)
в семёрке папка Documents тоже физическая


Где не прав: в Windows 7 нет папки Мои документы. Есть библиотека "Документы".

Даже если брать утверждение для XP, это не совсем верное.

До XP Мои документы была физической папкой, представленной на рабочем столе. Т.е. прямо в папке рабочего стола была физическая папка Мои документы. И ей соответствовала CSIDL_PERSONAL. Всегда. Ферштейн?

А в XP Мои документы более не является физической папкой. Если ты посмотришь на физическое хранилище рабочего стола, то никакой Мои документы там не будет. Понимаешь? У Моих документов есть физическое хранилище, но сама папка, начиная с XP, - виртуальная.

В этом же время ввели псевдоним CSIDL_MyDocuments. Он тождественно равен CSIDL_PERSONAL.

PIDL к виртуальной папке (виртуальная Мои документы на рабочем столе) или путь к физической (физическое хранилище Мои документы) - возвращаются разными функциями. 

Вот так надо трактовать документацию.

5. 
Цитата(Akella @  14.11.2011,  22:19 Найти цитируемый пост)
Путь к папке Мои документы в реестре живёт уже лет 20


Где не прав: люди перебегают на красный свет со времён появления светофоров. Из чего не следует, что это правильно.

6. 
Цитата(Akella @  14.11.2011,  22:19 Найти цитируемый пост)
Вы думаете, что с помощью константы винда как-то по другому путь вычисляет?


Где не прав: "знали ли вы, что если вы ни разу не открывали свою папку "Шрифты", и никакая программа ни разу не вызывала SHGetSpecialFolderLocation(CSIDL_FONTS), то никакой записи "Fonts" в ключе "Shell Folders" не будет?"

Как видишь, по другому. Функция возвращает результат всегда, реестр - не всегда.

7. 
Цитата(Akella @  14.11.2011,  22:19 Найти цитируемый пост)
В итоге всё равно всё сводится к реестру.


Где не прав: http://www.transl-gunsmoker.ru/2008/12/shell-folders.html 

Чёрным по белому разработчик Windows говорит, что реестр не является первоисточником этой информации. Это поведение было убрано ещё в бетах Windows 95.

Добавлено через 4 минуты и 1 секунду
Чтобы было совсем ясно: есть разница между "это - работает" и "это - правильно".

Это сообщение отредактировал(а) CodeMonkey - 17.11.2011, 15:38


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Akella
Дата 18.11.2011, 17:41 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Цитата(CodeMonkey @  17.11.2011,  15:36 Найти цитируемый пост)
Её второе имя добавили в XP. До XP была только PERSONAL.

Зачем мне использовать её второе имя.
У константы не может быть два имени. Это просто два константы или две переменных, ссылающиеся на одно и тоже значение. Мне так кажется.

Добавлено @ 17:42
Цитата(CodeMonkey @  17.11.2011,  15:36 Найти цитируемый пост)
Вообще-то в Win7 нет папки Мои документы. Если у тебя Win7 стоит - попробуй тыкнуть в "Документы". Увидишь интересную надпись "Documents Library; includes: 2 location(s)".


а где я писал, что Мои документы в семёрке физическая папка smile

Добавлено @ 17:42
Цитата(CodeMonkey @  17.11.2011,  15:36 Найти цитируемый пост)
Ты про что конкретно? Ты дофига где не прав   (не сочти за наезд)

ФСЁ, ты забанен  smile

Добавлено @ 17:44
Цитата
Другими словами, ключ реестра "Shell Folders" существует только затем, чтобы на RTM версии Windows 95 могли работать четыре программы, написанные в 1994-м году. 


но это работает до сих пор, уже почти 20 лет smile

Добавлено @ 17:47
Цитата(CodeMonkey @  17.11.2011,  15:36 Найти цитируемый пост)
Где не прав: CSIDL_PERSONAL была всегда.

Зачем тогда CSIDL_MYDOCUMENTS?

Это вносит путаницу.

Добавлено @ 17:49
Цитата(CodeMonkey @  17.11.2011,  15:36 Найти цитируемый пост)
Т.е. прямо в папке рабочего стола была физическая папка Мои документы.

и в Win2000?

Добавлено через 10 минут
Цитата(CodeMonkey @  17.11.2011,  15:36 Найти цитируемый пост)
но сама папка, начиная с XP, - виртуальная.

с трудом верится

Добавлено через 11 минут и 20 секунд
Цитата(CodeMonkey @  17.11.2011,  15:36 Найти цитируемый пост)
Где не прав: "знали ли вы, что если вы ни разу не открывали свою папку "Шрифты", и никакая программа ни разу не вызывала SHGetSpecialFolderLocation(CSIDL_FONTS), то никакой записи "Fonts" в ключе "Shell Folders" не будет?"


но это не про папку Мои документы

Добавлено через 13 минут и 23 секунды
В любом случае я понял. Короче наворотили разработчики винды.....
PM MAIL   Вверх
northener
Дата 18.11.2011, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Akella @  18.11.2011,  17:41 Найти цитируемый пост)
В любом случае я понял.

Т.е. Это в сочетании с вышенаписанным следует читать "Понял, но не принял"!

Цитата(Akella @  18.11.2011,  17:41 Найти цитируемый пост)
Короче наворотили разработчики винды...

А разве мы все (разработчики) не "обязаны" поддерживать обратную совместимость? А порой из-за изначальной непродуманности проекта обратная совместимость может быть реализована только костылями. :(


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Lols
Дата 19.11.2011, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 21.10.2011

Репутация: нет
Всего: нет



Уважаемые, определитесь про 7ю винду - тут уже у меня шкурный интерес. Так что с папкой?
PM MAIL   Вверх
northener
Дата 19.11.2011, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Lols @  19.11.2011,  01:55 Найти цитируемый пост)
Уважаемые, определитесь про 7ю винду - тут уже у меня шкурный интерес. Так что с папкой? 

А какие проблемы с папкой?



--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0675 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.