Re[11]: Узнать где находится папка "Accessories"
От: Centaur Россия  
Дата: 09.05.08 07:43
Оценка: 16 (1)
Здравствуйте, andrey.desman, Вы писали:

M>>CSIDL_COMMON_STARTMENU + "\Programs\Accessories\Media Center\Media Center Programs"

M>>Вот почему они там такое советуют?

AD>Они такое советуют, потому что это правильно Подсказка: попробуй прогуляться до папки с главным меню через cmd.exe. Как говорится, внешность бывает обманчива. Короче, Matrix has you


В MUI-версиях — имена папок локализуются средствами шелла. То есть каталог называется Accessories, а в desktop.ini написано, какую dll’ку загрузить и какой stringtable ресурс дёрнуть. А в «родных» локализованных версиях — средствами файловой системы, то есть каталог тупо так и называется Стандартные. По-моему, так. То есть, в версиях до XP и Server 2003 включительно.

В Vist’е вроде бы сделали все имена английскими и локализуемыми через ресурсы: What the %$#& is up with localized paths in Vista?
links vista localization michael kaplan
Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 04.05.08 12:20
Оценка:
В меню "Пуск/программы" находится папка "Accessories", хочется положить туда ярлык.
Проблемма в том, что на разных языках она называется по разному, в русской винде например "Стандартные".
В интернете/msdn чего-то ничего не нашел
Re: Узнать где находится папка "Accessories"
От: GGoga  
Дата: 05.05.08 10:51
Оценка:
Здравствуйте, maximilliangreat, Вы писали:

M>В меню "Пуск/программы" находится папка "Accessories", хочется положить туда ярлык.


Узнать имя в винде можно загрузив значение из реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion, свойство PF_AccessoriesName
Re[2]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 05.05.08 11:54
Оценка:
M>>В меню "Пуск/программы" находится папка "Accessories", хочется положить туда ярлык.

GG>Узнать имя в винде можно загрузив значение из реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion, свойство PF_AccessoriesName


Нет у меня в висте в реестре такого пункта И в МСДН про такой не написанно
Re[3]: Узнать где находится папка "Accessories"
От: GGoga  
Дата: 05.05.08 12:06
Оценка:
M>Нет у меня в висте в реестре такого пункта И в МСДН про такой не написанно

С Вистой работать не приходилось А если попробовать поиск по реестру по ключевому слову "Accessories"?
Re[4]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 05.05.08 12:35
Оценка:
Здравствуйте, GGoga, Вы писали:

GG>С Вистой работать не приходилось А если попробовать поиск по реестру по ключевому слову "Accessories"?


Я собственно с этого и начал свои поиски, но что-то ничего дельного не нашел
Сейчас проверил на другой висте там тоже нет.
А на ХР действительно есть такой ключ, там их даже два, ещё SM_AccessoriesName.
Ещё смущает что в интернете упоминания этого ключа выглядят в основном как кусок реестра.
Re[5]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 05.05.08 12:39
Оценка:
Плюс в Windows\CurrentVersion\Explorer\Shell Folders её тоже нет
И в параметрах функции SHGetKnownFolderPath тоже нет.
Прям хоть в "Игры" запихивай, она есть
Re[6]: Узнать где находится папка "Accessories"
От: GGoga  
Дата: 05.05.08 12:52
Оценка:
M>Плюс в Windows\CurrentVersion\Explorer\Shell Folders её тоже нет

Еще один маловероятный, но вариант. Посмотри переменные окружения (команда командной строки SET). Хотя вряд ли она чем-то сможет помочь Но с Вистой, к сожалению, ничем помочь не могу
Re[7]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 05.05.08 14:16
Оценка:
Здравствуйте, GGoga, Вы писали:


GG>Еще один маловероятный, но вариант. Посмотри переменные окружения (команда командной строки SET). Хотя вряд ли она чем-то сможет помочь


Да, забыл сказать, это тоже уже смотрел.

>Но с Вистой, к сожалению, ничем помочь не могу


Да впринципе, виста не так чтобы сверх от ХР отличается, меньше чем NT от 2000.

Мне в голову совсем дурная мысль пришла: а она вообще где-то указывается? Может просто при установке создается один раз и всё?
надо будет дистрибутив поковырять...
На одной из виртуалок у меня стоит русская ХР, на ней бетка IE8 английская, так вот она мне воздала именно английскую "Accessories"!
Я конечно понимаю что это бетка и что в макрософт правая рука не знает что делает левая, но блин это всё же таки IE.
Re: Узнать где находится папка "Accessories"
От: Alexey Frolov Беларусь  
Дата: 05.05.08 15:25
Оценка:
Здравствуйте, maximilliangreat, Вы писали:

M>В меню "Пуск/программы" находится папка "Accessories", хочется положить туда ярлык.

M>Проблемма в том, что на разных языках она называется по разному, в русской винде например "Стандартные".
M>В интернете/msdn чего-то ничего не нашел

где находится папка можно получить здесь

SHGetFolderPath(
CSIDL_PROGRAMS // для текущего пользователя
/* CSIDL_COMMON_PROGRAMS // для всех (All Users) */
)


т.е искомая вами папка будет находиться в этой папке,
но вот дальше проблема, как получить имя этой самой папки "Стандартные"("Accessories"), в msdn тоже найти не смог
Re[2]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 05.05.08 15:35
Оценка:
Здравствуйте, Alexey Frolov, Вы писали:


AF>где находится папка можно получить здесь

AF>
AF>SHGetFolderPath(
AF>CSIDL_PROGRAMS // для текущего пользователя

В моём случае даже проще, мне исталлятор её сразу возвращает

AF>т.е искомая вами папка будет находиться в этой папке,

AF>но вот дальше проблема, как получить имя этой самой папки "Стандартные"("Accessories"), в msdn тоже найти не смог

Re[2]: Узнать где находится папка "Accessories"
От: Alexey Frolov Беларусь  
Дата: 05.05.08 15:37
Оценка:
Сори, невнимательно прочитал, и сразу не заметил, что до этого пункта вы уже добрались, проблема только с названием
Re[8]: Узнать где находится папка "Accessories"
От: GGoga  
Дата: 05.05.08 17:32
Оценка:
M>Да впринципе, виста не так чтобы сверх от ХР отличается, меньше чем NT от 2000.

С этим спорить не буду, но иногда те небольшие отличия очень "достают", например как в данном случае
Но все-таки должен быть какой-то способ получения полного пути, единственный хороший помощник в этом деле — старый добрый google.com. Я уверен, что ты не один, кто столкнулся с такой проблемой

M>Мне в голову совсем дурная мысль пришла...


К стати, о дурных мыслях. Можно на крайний случай применить очень-очень "корявый" способ. Путь к папке Programms получить можно, а следовательно и узнать имена всех вложенных в него каталогов. Все приложения имеют названия ярлыков на английском языке, следовательно, можно сравнивать имена файлов каждой папки на наличие ярлыка на какое-нибудь стандартное приложение, находящееся в папке "Стандартные". (Но это просто очень карявый и крайний вариант!)

Удачи!
Re[9]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 06.05.08 09:09
Оценка:
Здравствуйте, GGoga, Вы писали:


GG> единственный хороший помощник в этом деле — старый добрый google.com. Я уверен, что ты не один, кто столкнулся с такой проблемой


Да вот только толи я слов для него правильных не знаю, толи ещё что, но ничё дельного пока не нашёл.
Зато нашел такую забавную вещь http://msdn.microsoft.com/en-us/library/bb174608.aspx

On Windows XP use: 
CSIDL_COMMON_STARTMENU + "\Programs\Accessories\Media Center\Media Center Programs"

Вот почему они там такое советуют?

GG>К стати, о дурных мыслях. Можно на крайний случай применить очень-очень "корявый" способ. Путь к папке Programms получить можно, а следовательно и узнать имена всех вложенных в него каталогов. Все приложения имеют названия ярлыков на английском языке, следовательно, можно сравнивать имена файлов каждой папки на наличие ярлыка на какое-нибудь стандартное приложение, находящееся в папке "Стандартные". (Но это просто очень карявый и крайний вариант!)


Ну собственно, пока единственный рабочий способ
Хотя конечно немножко стёмный, такие обычно после сервиспаков/новых версий работать пререстают
Re[10]: Узнать где находится папка "Accessories"
От: GGoga  
Дата: 06.05.08 09:59
Оценка:
Здравствуйте, maximilliangreat, Вы писали:

M>Хотя конечно немножко стёмный, такие обычно после сервиспаков/новых версий работать пререстают


В принципе, я не думаю, что после создания какого-нибудь сервис пака эту папку удалят. Вот какой-нибудь ярлык могут. Но в таком случае, можно создать массив имен ярлыков и проверять на вероятность наличия одного и более в папках, составить процентные соотношения, и выбрать папку, имеющую большый процентный коэффициент (на случай, если какой-нибудь ярлык MicroSoft вздумает перенести в другое место).
Re: Узнать где находится папка "Accessories"
От: Centaur Россия  
Дата: 06.05.08 11:43
Оценка:
Здравствуйте, maximilliangreat, Вы писали:

M>В меню "Пуск/программы" находится папка "Accessories", хочется положить туда ярлык.

M>Проблемма в том, что на разных языках она называется по разному, в русской винде например "Стандартные".

Собственно, все сложности с решением этой проблемы из-за того, что это неправильная проблема. Ваша программа не входит в поставку Windows и непонятно, почему вообще её ярлык должен быть в Accessories. Положите ярлык в Программы или в Программы/имя_пакета. Или в некоторых установочных движках есть возможность спросить пользователя, куда положить ярлыки. Если пользователь решит, что ему удобно вашу программу видеть в Стандартных, он её туда положит. Если нет — так и нечего.
Re[2]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 06.05.08 12:58
Оценка:
Здравствуйте, Centaur, Вы писали:


C>Собственно, все сложности с решением этой проблемы из-за того, что это неправильная проблема. Ваша программа не входит в поставку Windows и непонятно, почему вообще её ярлык должен быть в Accessories. Положите ярлык в Программы или в Программы/имя_пакета. Или в некоторых установочных движках есть возможность спросить пользователя, куда положить ярлыки. Если пользователь решит, что ему удобно вашу программу видеть в Стандартных, он её туда положит. Если нет — так и нечего.


Собственно, если бы я делал инсталятор к программе на продажу потенциальным потребителям, то это была бы действительно неправильная проблема.
Я, на самом деле, администратор и задачи у меня при создании этого инсталятора несколько иные, ставится всё будет через ГПО и, естественно, у пользователя ничего спрашиваться небудет, иначе смысла от это исталятора не будет, я 500 пользователям чего-то объяснять устану Крайне желательно всё же заcунуть ярлык в "Accessories".
Re[3]: Узнать где находится папка "Accessories"
От: Роман Дубров Украина Я@Blogspot
Дата: 06.05.08 14:52
Оценка:
maximilliangreat пишет:

> у пользователя ничего спрашиваться небудет, иначе смысла от это


а что если положить 2 ярлыка?

--
np: [foobar2000] not started
Posted via RSDN NNTP Server 2.1 beta
http://www.linkedin.com/in/romandubrov .::. http://roman-dubrov.blogspot.com/ .::. http://www.flickr.com/photos/romandubrov/
Re: Узнать где находится папка "Accessories"
От: serge_levin Россия  
Дата: 06.05.08 15:27
Оценка:
Здравствуйте, maximilliangreat, Вы писали:

M>В меню "Пуск/программы" находится папка "Accessories", хочется положить туда ярлык.

M>Проблемма в том, что на разных языках она называется по разному, в русской винде например "Стандартные".
M>В интернете/msdn чего-то ничего не нашел

Поиском по реестру нашел интересный ключ HKLM\Software\Microsoft\Windows\CurrentVersion
А в нем есть 2 строковых параметра — PF_AccessoriesName и SM_AccessoriesName.

Логично было бы предположить, что PF — это папка для исполняемых файлов стандартных программ (PF — Program Files), а SM — папка под Start Menu.

Интересно посмотреть, что творится при наличии MUI если у разных пользователей выставлены разные языки, а так же в локализованных версиях Windows.

У себя это все нашел в Windows XP SP 3 Eng.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 07.05.08 07:14
Оценка:
Здравствуйте, serge_levin, Вы писали:

_>Поиском по реестру нашел интересный ключ HKLM\Software\Microsoft\Windows\CurrentVersion

_>А в нем есть 2 строковых параметра — PF_AccessoriesName и SM_AccessoriesName.

GGoga уже писал, про эти параметры.
Действительно в 2000 и ХР они есть. Проблемма что в висте их нет, проверял на двух вистах.
Re[4]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 07.05.08 07:16
Оценка:
Здравствуйте, Роман Дубров, Вы писали:

РД>maximilliangreat пишет:


>> у пользователя ничего спрашиваться небудет, иначе смысла от это


РД>а что если положить 2 ярлыка?


Извиняюсь, не понял, зачем два ярлыка?
Re[5]: Узнать где находится папка "Accessories"
От: Роман Дубров Украина Я@Blogspot
Дата: 07.05.08 09:19
Оценка:
maximilliangreat пишет:

> Извиняюсь, не понял, зачем два ярлыка?


один в русскую папку, другой в английскую...

--
np: [foobar2000] not started
Posted via RSDN NNTP Server 2.1 beta
http://www.linkedin.com/in/romandubrov .::. http://roman-dubrov.blogspot.com/ .::. http://www.flickr.com/photos/romandubrov/
Re[6]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 07.05.08 10:34
Оценка:
Здравствуйте, Роман Дубров, Вы писали:

>> Извиняюсь, не понял, зачем два ярлыка?


РД>один в русскую папку, другой в английскую...


Хм, а да, навеное можно, проверять язык и кидать в нужную папку...
Re[6]: Узнать где находится папка "Accessories"
От: GGoga  
Дата: 07.05.08 13:03
Оценка:
Здравствуйте, Роман Дубров, Вы писали:

РД>один в русскую папку, другой в английскую...


А если потом понадобиться добавить функциональность в версию с, например, франзуским языком, а потом еще китайским, а потом еще десяток языков добавиться? Как быть в этом случае? Метод все равно не оргинальный
Re[10]: Узнать где находится папка "Accessories"
От: andrey.desman  
Дата: 08.05.08 18:34
Оценка:
Здравствуйте, maximilliangreat, Вы писали:

M>
M>On Windows XP use: 
M>CSIDL_COMMON_STARTMENU + "\Programs\Accessories\Media Center\Media Center Programs"

M>

M>Вот почему они там такое советуют?

Они такое советуют, потому что это правильно Подсказка: попробуй прогуляться до папки с главным меню через cmd.exe. Как говорится, внешность бывает обманчива. Короче, Matrix has you
Re[7]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 12.05.08 12:34
Оценка:
Здравствуйте, GGoga, Вы писали:

РД>>один в русскую папку, другой в английскую...


GG>А если потом понадобиться добавить функциональность в версию с, например, франзуским языком, а потом еще китайским, а потом еще десяток языков добавиться? Как быть в этом случае? Метод все равно не оргинальный


Да, не, кстати нормально, в моей сети врядли появится винда отличная от русской или английской, я wmi фильтры на русскую и английскую винду сделаю, ну и может на все остальные ещё один.

Проста задача очень узкая, поэту такое решение наверное оптимально
Re[12]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 12.05.08 13:34
Оценка:
Здравствуйте, Centaur, Вы писали:


C>В MUI-версиях — имена папок локализуются средствами шелла. То есть каталог называется Accessories, а в desktop.ini написано, какую dll’ку загрузить и какой stringtable ресурс дёрнуть. А в «родных» локализованных версиях — средствами файловой системы, то есть каталог тупо так и называется Стандартные. По-моему, так. То есть, в версиях до XP и Server 2003 включительно.


Ага, ага, именно так.

C>В Vist’е вроде бы сделали все имена английскими и локализуемыми через ресурсы:


Видел эту статью, НО у них опять в параметрах функции нет папки "Accessories"

Может кто-нибудь, у кого есть доступ к русской висте проверить там папки на диске как называются?
А то у меня везде английская, а ставить русскою только ради этого не хочется...
links vista localization michael kaplan
Re[13]: Узнать где находится папка "Accessories"
От: Роман Дубров Украина Я@Blogspot
Дата: 12.05.08 16:16
Оценка:
maximilliangreat пишет:

> Может кто-нибудь, у кого есть доступ к русской висте проверить там

> *папки на диске* как называются?

эх, только вчера сносил такую с принесенного ноута... увидел бы мессагу
— посмотрел бы

--
np: [foobar2000] not started
Posted via RSDN NNTP Server 2.1 beta
http://www.linkedin.com/in/romandubrov .::. http://roman-dubrov.blogspot.com/ .::. http://www.flickr.com/photos/romandubrov/
Re[13]: Узнать где находится папка "Accessories"
От: AlexZu Россия  
Дата: 12.05.08 18:01
Оценка:
Здравствуйте, maximilliangreat, Вы писали:

C>>В Vist’е вроде бы сделали все имена английскими и локализуемыми через ресурсы:

M>Может кто-нибудь, у кого есть доступ к русской висте проверить там папки на диске как называются?
M>А то у меня везде английская, а ставить русскою только ради этого не хочется...

C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\

Содержимое Desktop.ini (в папке Accessories):

[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21761
[LocalizedFileNames]
Windows Explorer.lnk=@%SystemRoot%\system32\shell32.dll,-22067
Run.lnk=@%SystemRoot%\system32\shell32.dll,-12710
Command Prompt.lnk=@%SystemRoot%\system32\shell32.dll,-22022
Notepad.lnk=@%SystemRoot%\system32\shell32.dll,-22051

vista localization
Re[14]: Узнать где находится папка "Accessories"
От: maximilliangreat  
Дата: 13.05.08 13:03
Оценка:
Здравствуйте, AlexZu, Вы писали:


AZ>C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\


Спасибо большое!

В "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\" я так понимаю то же самое
vista localization
Re[15]: Узнать где находится папка "Accessories"
От: AlexZu Россия  
Дата: 13.05.08 19:04
Оценка:
Здравствуйте, maximilliangreat, Вы писали:

M>В "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\" я так понимаю то же самое


ага
vista localization
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.