PDA

Показать полную графическую версию : ассоциации и перезагрузка


AlterEgoFS
27-11-2012, 17:06
windows 7 проф 32
ассоциации запоминаются до перезагрузки
использую способ assoc+ftype
в автозагрузке ничего не стоит такого, чтобы изменяло ассоциации

Iska
27-11-2012, 17:10
AlterEgoFS, запуск командной строки от имени администратора?!

AlterEgoFS
27-11-2012, 17:13
Iska, конечно

AlterEgoFS
28-11-2012, 13:01
ну почему я

opel431
28-11-2012, 14:32
ассоциации запоминаются до перезагрузки »
Так и должно быть. Практически, после выполнения команды ASSOC [.*расширение[=[*тип файла]]], в HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*Имя расширения\*Параметр по умолчанию, подставляется сопоставленный тип файла.
Запуск от имени Администратор, необходим только для предоставления прав доступа к реестру - SeBackupPrivilege и SeRestorePrivilege.
Команда, совершенно не влияет на расширение текущего пользователя - если есть пользовательская ассоциация, отличная от ассоциации для всех пользователей. В этом случае, для применения ассоциации к текущему пользователю, необходимо удалять ассоциацию пользователя - HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\*расширение\UserChoice .

Возможно, после выполнения команды ASSOC, всем приложениям, сразу посылается сообщение (SHChangeNotify) об изменениях в реестре - не смотрел, можете отследить по обновлению ярлыков на рабочем столе.
Посмотрел - изменения вносятся сразу.

AlterEgoFS
28-11-2012, 14:45
удалял весь HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts и всё равно тоже самое
Так и должно быть »
я пользуюсь этим способом ещё со времён хп, и в 7ке тоже запоминались до недавнего времени, а потом что то пошло нетак

opel431
28-11-2012, 14:53
Я, не понял, исходя из вашего вопроса, речь идет о том, что у вас, ассоциации запоминаются без перезагрузки. Или просто, вами не совсем корректно (вразумительно) задан вопрос!

удалял весь HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts и всё равно тоже самое »
Нужно удалять и HKEY_CURRENT_USER\SOFTWARE\Classes\*расширение

AlterEgoFS
28-11-2012, 14:55
речь идёт о том, что после перезагруки слетают ассоциации, которые я назначил и о том, что раньше этого не было

HKEY_CURRENT_USER\SOFTWARE\Classes\*расширение »
там нет нужного мне расширения

речь идёт о том, что после перезагруки слетают ассоциации, которые я назначил и о том, что раньше этого не было »
у меня не запоминаются ассоциации
вот что я делаю:
выставляю иконку, прогу, иконку в меню, всё-всё делаю как обычно чтобы, допустим, txt открывался в akelpad
и всё хорошо - иконка, прога, всё работает
но стоит мне перезагрузиться, и вот:
http://i48.fastpic.ru/big/2012/1128/c1/70254e107e18c01813fd063901423ac1.png
никакой иконки, никакого akelpad'а, вылезает окно выбора программы по умолчанию

opel431
28-11-2012, 15:17
речь идёт о том, что после перезагруки слетают ассоциации, которые я назначил и о том, что раньше этого не было »
Повторюсь - ASSOC, вносит изменения для всех пользователей (HKLM) но, не затрагивает ассоциации текущего пользователя (HKCU) - если пользователь изменил ассоциации по умолчанию (например установил программу, которая изменила ассоциации для текущего пользователя). Ну, что не понятно - к примеру, для всех пользователей архивы ассоциированы с 7-Zip, а при установке пользователем WinRAR, его ассоциации будут связаны с WinRAR, для остальных, так и останется 7-Zip.

у меня не запоминаются ассоциации »
Ну так и нужно было ставить вопрос, мне например вопрос показался совсем с другой проблемой - ассоциации запоминаются до перезагрузки », а не в плане их сохранения после перезагрузки.

Кроме того, теперь уже совсем непонятно, вы вели речь, о консольной ASSOC, теперь, судя по всему, о стандартной утилите "Сопоставление типов файлов или протоколов..."

AlterEgoFS
28-11-2012, 15:20
хорошо, пусть так
но я вам говорил, что раньше и assoc работал, а после определённого момента перестал
да, немного не так выразился
как нужно ассоциировать для всех пользователей?

Кроме того, теперь уже совсем непонятно, вы вели речь, о консольной ASSOC, теперь, судя по всему, о стандартной утилите "Сопоставление типов файлов или протоколов..." »

про тот же txt

assoc .txt=txtfile
ftype txtfile="некий путь\akelpad.exe" "%1"

вот я про что говорил

opel431
28-11-2012, 15:37
как нужно ассоциировать для всех пользователей? »
Как хотите:
1. "Программы по умолчанию "-> "Сопоставление типов файлов или протоколов...".
2. Через командную строку или командный файл -> удаление ассоциаций пользователя (Ключи и подключи в HKCU\Classes\*расширение, HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\*расширение) -> в HKLM, удаление подключей в ключе (HKLM\Classes\*расширение\....) -> новая ассоциация через ASSOC. Возможно корректировка или удаление параметров MIME в ключе.

вот я про что говорил »

Детальный пример:
Посмотреть, каким образом обрабатывается открытие документов Microsoft Word:

ASSOC .doc - получить информацию о типе файла, ассоциированного с расширением .doc
.doc=Word.Document.8 - ответ на ASSOC
ftype word.document.8 - отобразить командную строку для открытия файлов данного типа ( .doc )
word.document.8="C:\Program Files\Microsoft Office\Office14\WINWORD.EXE" /n "%1" - строка запуска приложения с параметрами для открытия файлов данного типа (http://ab57.ru/cmdlist/ftype.html).

AlterEgoFS
28-11-2012, 15:59
http://i26.fastpic.ru/big/2012/1128/1f/742697a5c44516f6624125cf343ec11f.png

но txt не откруваются в akelpad, вылезает "выбрать программу по умолчанию"

opel431
28-11-2012, 17:18
но txt не откруваются в akelpad »
А что, в MIME зарегистрирован тип akelfile? Расширение и связанное приложение, немного разные вещи.

Ассоциация - это расширение (.txt) = тип файла (textfile), а AkelPad - это приложение, открывающее данный тип файла по умолчанию.

AlterEgoFS
29-11-2012, 16:44
но раньше открывался
не знаю, может я чего накосячил, может обновление
но раньше я делал батник
assoc .txt=txtfile
ftype txtfile="некий путь\akelpad.exe" "%1"
и он работал




© OSzone.net 2001-2012