На моем ПК с Windows-10 есть несколько файлов с расширением .dmupgrade . Они должны быть открыты с помощью программы C:\Program Files\<Company>\TaskbarUtility.exe .

У меня также есть другая версия TaskbarUtility.exe на моем ПК, в каталоге C:\<Company>\Tools\TaskbarUtility\ .

По неизвестной причине при двойном щелчке по файлу .dmupgrade программа C:\<Company>\Tools\TaskbarUtility\TaskbarUtility.exe , поэтому я попытался изменить это: щелкнул правой кнопкой мыши файл *.dmupgrade , нажал кнопку « Change при Opens with , я выбрал файл C:\Program Files\<Company>\TaskbarUtility.exe и нажал Ok .
При двойном щелчке кажется, что программа C:\<Company>\Tools\TaskbarUtility.exe снова используется для открытия файла.

Я искал в реестре, в следующем месте:

 Computer\
   HKEY_CURRENT_USER\
     Software\
       Microsoft\
         Windows\
           CurrentVersion\
             Explorer\
               FileExts\
                .dmupgrade\
                  OpenWithList

Это дает только TaskbarUtility.exe в качестве ответа (без каких-либо ссылок на каталоги). Ключ HKEY_CLASSES_ROOT\.dmupgrade существует, но не заполнен.

Я проверил переменную среды PATH , и, по-видимому, там нет каталога C:\<Company>\Tools .

Я проверил C:\Program Files\<Company>\Tools\TaskbarUtility.exe (с помощью приложения-эмулятора Ubuntu), это не ссылка на другую программу:

Prompt>file TaskbarUtility.exe
TaskbarUtility.exe: PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows

Таким образом, мой вопрос: когда я настраиваю расширение файла, которое будет открыто с определенной программой, как Windows узнает, в каком каталоге искать эту программу? Можно ли справиться с этим с помощью команд WMIC ?

заранее спасибо

1 ответ1

1

В то время как некоторые люди assoc и ftype как бесполезные в этой связанной Q & A,
Вышеуказанный вопрос свидетельствует об обратном.

Оба, assoc и ftype являются внутренними командами для cmd.exe

assoc /?
assoc.com /? 
assoc.exe /?
help assoc

Вернет тот же текст справки:

Displays or modifies file extension associations

ASSOC [.ext[=[fileType]]]

 .ext      Specifies the file extension to associate the file type with
 fileType  Specifies the file type to associate with the file extension

Type ASSOC without parameters to display the current file associations.
If ASSOC is invoked with just a file extension, it displays the current
file association for that file extension.  Specify nothing for the file
type and the command will delete the association for the file extension.

Но файла нет (поэтому в PowerShell это не работает). То же самое относится и к ftype.

Чтобы посмотреть, какой тип файла связан с расширением (здесь .txt):

> assoc .txt
.txt=txtfile

Чтобы посмотреть, какая команда используется для открытия этого типа файла:

> ftype txtfile
txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1

Для других глаголов вы должны пройти путь через реестр

> Reg query "HKCR\txtfile" /S
HKEY_CLASSES_ROOT\txtfile
    (Default)    REG_SZ    Text Document
    EditFlags    REG_DWORD    0x210000
    FriendlyTypeName    REG_EXPAND_SZ    @%SystemRoot%\system32\notepad.exe,-469

HKEY_CLASSES_ROOT\txtfile\DefaultIcon
    (Default)    REG_EXPAND_SZ    %SystemRoot%\system32\imageres.dll,-102

HKEY_CLASSES_ROOT\txtfile\shell

HKEY_CLASSES_ROOT\txtfile\shell\open

HKEY_CLASSES_ROOT\txtfile\shell\open\command
    (Default)    REG_EXPAND_SZ    %SystemRoot%\system32\NOTEPAD.EXE %1

HKEY_CLASSES_ROOT\txtfile\shell\print

HKEY_CLASSES_ROOT\txtfile\shell\print\command
    (Default)    REG_EXPAND_SZ    %SystemRoot%\system32\NOTEPAD.EXE /p %1

HKEY_CLASSES_ROOT\txtfile\shell\printto

HKEY_CLASSES_ROOT\txtfile\shell\printto\command
    (Default)    REG_EXPAND_SZ    %SystemRoot%\system32\notepad.exe /pt "%1" "%2" "%3" "%4"

Изменить: приложение к исходному вопросу:
Настоящим результаты assoc и ftype перед:

Prompt>assoc .dmupgrade
.dmupgrade=dmupgrade

Prompt>ftype dmupgrade
dmupgrade=C:\<Company>\Tools\TaskbarUtility\TaskbarUtility.exe "%l"

Следующая команда была запущена:

Prompt>ftype dmupgrade=C:\Program Files\<Company>\TaskbarUtility.exe "%1"

Сначала это не удалось, потому что мне нужно было выполнять это как администратор :-), но после открытия приглашения администратора моя проблема была решена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .