Как зарегистрировать программу в windows 10
. when altering one's mind becomes as easy as programming a computer, what does it mean to be human.
четверг, 23 сентября 2010 г.
Поиск исполняемого файла приложения
Когда функция ShellExecuteEx вызывается с именем исполняемого файла в своём параметре lpFile, то она будет искать этот файл в нескольких местах. Мы рекомендуем вам зарегистрировать своё приложение в ключе реестра App Paths, чтобы вам не пришлось модифицировать переменную окружения PATH.
- Текущий каталог.
- Каталог Windows (без подкаталогов).
- Каталог Windows\System32.
- Каталоги, указанные в переменной окружения PATH.
- (Рекомендуется) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths (подключ реестра App Paths).
Оба ключа реестра App Paths и Applications используются для регистрации и контроля поведения системы от имени приложений. Ключ App Paths является предпочтительным местом регистрации на компьютерах с Windows XP Service Pack 1 (SP1) и выше.
Использование подключа реестра App Paths
- Чтобы указать соответствие между именем исполняемого файла приложения и полным путём к приложению.
- Чтобы добавлять информацию к переменной окружения PATH индивидуально для приложения и процесса.
- Запись (Default) используется как полное имя файла.
- Запись Path этого ключа добавляется к переменной окружения PATH этого процесса. Если это не требуется, то значение Path можно не задавать.
- Оболочка ограничивает длину командной строки до MAX_PATH * 2 символов. Если в ключе реестра задано несколько файлов или их имена очень велики, то имена в конце списка могут быть потеряны, потому что командная строка будет усечена.
- Некоторые приложения не принимают несколько имён файлов в командной строке.
- Некоторые приложения, которые принимают несколько файлов, не распознают формат, в котором Оболочка передаёт их имена. Оболочка передаёт список параметров как строку с кавычками, но некоторые приложения ожидают строку без кавычек.
- Не все элементы, которые таскаются мышью, являются частью файловой системы. Например - принтеры. У таких элементов нет обычного пути Win32, поэтому нельзя предоставить разумное значение параметра lpParameters функции ShellExecuteEx.
- Добавить подключ к App Paths, имя которого будет совпадать с именем вашего исполняемого файла, как показано в примере:
- См. таблицу ниже для информации по записям в ключе App Paths:
Использование подключа реестра Applications
С помощью включения записей реестра под ключом HKEY_CLASSES_ROOT\Applications\ApplicationName.exe приложения могут предоставлять такую специфичную для приложения информацию:
Примеры
Вот некоторые примеры регистрации приложений через ключ реестра HKEY_CLASSES_ROOTApplicationsApplicationName.exe. Все записи имеют тип REG_SZ, за исключением DefaultIcon, который имеет тип REG_EXPAND_SZ.
Следующий пример показывает, что происходит, когда пользователь запускает апплет Программы по-умолчанию в Панели управления, чтобы изменить программу для открытия файлов .mp3 на App2ProgID. После изменения умолчания действие Verb1 больше не доступно, а действие Verb2 становится действием по-умолчанию.
Windows 10 Pro released in July 2015 Windows Vista Enterprise Windows Vista Business Windows Vista Home Basic Windows Vista Home Premium Windows Vista Ultimate Microsoft Windows XP Home Edition Microsoft Windows XP Professional Microsoft Windows XP Tablet PC Edition Windows 7 Enterprise Windows 7 Home Basic Windows 7 Home Premium Windows 7 Professional Windows 7 Ultimate Windows 8 Windows 8 Enterprise Windows 8 Pro Windows 8.1 Windows 8.1 Enterprise Windows 8.1 Pro Еще. Меньше
Аннотация
Regsvr32 — это служебная программа командной строки для регистрации и отмены регистрации элементов управления OLE, например ActiveX и библиотеки DLL в реестре Windows. Средство Regsvr32.exe установлено в папке %systemroot%\System32 в ОС Windows XP и более поздних версиях Windows.
Примечание. В 64-разрядных версиях Windows есть две версии файла Regsv32.exe:
64-разрядная версия — %systemroot%\System32\regsvr32.exe;
32-разрядная версия — %systemroot%\SysWoW64\regsvr32.exe.
Синтаксис команды Regsvr32
Программа RegSvr32.exe имеет следующие параметры командной строки.
Regsvr32 [/u] [/n] [/i[:строка_команд]] DLL-файл
/u — отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд; при использовании с ключом /u вызывает DllUnInstall.
/n — не вызывает DllRegisterServer; это может использоваться с ключом /i
Типичные решения ошибок Regsvr32
При появлении ошибки Regsvr32 попробуйте устранить ее одним из следующих способов.
Способ 1. Повторный запуск команды Regsvr32 в командной строке с повышенными привилегиямиЧтобы открыть командную строку с повышенными привилегиями, выполните указанные ниже действия.
Windows 8.1 и Windows 8Проведите пальцем от правого края экрана к центру и коснитесь кнопки Поиск. Либо, если вы используете мышь, переместите указатель в правый нижний угол экрана и щелкните кнопку Поиск. Введите запрос Командная строка в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Windows XPВойдите в систему в качестве администратора или с другой учетной записью с правами администратора и откройте окно "Командная строка".
Способ 2. Использование 32-разрядной версии Regsvr32 для регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС WindowsЕсли при регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС Windows появляется ошибка, выполните следующие действия.
Откройте командную строку с повышенными привилегиями.
Если 32-разрядная библиотека DLL находится в папке %systemroot%\System32, переместите ее в папку %systemroot%\SysWoW64.
В этом разделе описывается, как приложения могут предоставлять сведения о себе, необходимые для реализации определенных сценариев. Сюда входят сведения, необходимые для размещения приложения, команды, поддерживаемые приложением, а также типы файлов, которые может выполнять приложение.
Этот раздел организован следующим образом:
Приложения также можно зарегистрировать в окне Настройка доступа к программам и параметров по умолчанию (SPAD) и задать приложения панели управления программы по умолчанию (SYDP). Сведения о регистрации приложений в SPAD и SYDP см. в разделе рекомендации по сопоставлению файлов и программам по умолчанию, настройке доступа к программам и по умолчанию для компьютеров (SPAD).
Поиск исполняемого файла приложения
При вызове функции ShellExecuteEx с именем исполняемого файла в его параметре лпфиле существует несколько мест, где функция ищет файл. Мы рекомендуем зарегистрировать приложение в подразделе реестра app paths . Это позволяет избежать необходимости изменять переменную среды системного пути в приложениях.
Файл ищется в следующих расположениях:
- текущий рабочий каталог.
- Windows только каталог (подкаталоги не ищутся).
- каталог Windows \ System32 .
- Каталоги, перечисленные в переменной среды PATH.
- рекомендуется: HKEY по _ локального _ компьютера \ программное обеспечение \ Microsoft \ Windows \ CurrentVersion \ пути к приложению
Подразделы реестра " пути приложений " и " приложения " используются для регистрации и управления поведением системы от имени приложений. Подраздел app paths является предпочтительным расположением.
Использование подраздела путей к приложению
Записи, найденные в разделе пути к приложениям , используются в основном для следующих целей:
- Для преобразования имени исполняемого файла приложения в полный путь к этому файлу.
- Значение, чтобы предварительно доложить данные в переменную среды PATH для каждого приложения, отдельно для каждого процесса.
Если имя подраздела путей к приложению совпадает с именем файла, оболочка выполняет два действия:
- Запись (по умолчанию) используется в качестве полного пути к файлу.
- Запись пути для этого подраздела предваряется переменной среды PATH этого процесса. Если это не требуется, можно опустить значение пути.
Возможны следующие проблемы, которые следует учитывать:
- Оболочка ограничивает длину командной строки МАКСИМАЛЬным числом символов, равным _ * 2. Если имеется много файлов, перечисленных в качестве записей реестра, или их пути слишком длинные, имена файлов, приведенные ниже в списке, могут быть потеряны, так как Командная строка усекается.
- Некоторые приложения не принимают несколько имен файлов в командной строке.
- Некоторые приложения, принимающие несколько имен файлов, не распознают формат, в котором они предоставляются оболочкой. Оболочка предоставляет список параметров в виде строки в кавычках, но некоторым приложениям могут потребоваться строки без кавычек.
- Не все элементы, которые можно перетаскивать, являются частью файловой системы; Например, «принтеры». Эти элементы не имеют стандартного пути Win32, поэтому нет способа предоставить осмысленное значение лппараметерс для ShellExecuteEx.
Использование записи Дроптаржет позволяет избежать этих потенциальных проблем, предоставляя доступ ко всем форматам буфера обмена, включая кфстр _ шеллидлист (для длинных списков файлов) и кфстр _ филеконтентс (для объектов, не являющихся объектами файловой системы).
Для регистрации и управления поведением приложений с помощью подраздела путей приложений:
Добавьте подраздел с тем же именем, что и у исполняемого файла, в подраздел пути к приложению , как показано в следующей записи реестра.
Сведения о записях подраздела пути приложения см. в следующей таблице.
[!Note]
Помимо записей (по умолчанию), пути и Дроптаржет, распознаваемых оболочкой, приложение может также добавлять пользовательские значения в подраздел пути приложения в исполняемом файле. Мы рекомендуем разработчикам приложений использовать подраздел пути к приложению , чтобы указать специфический для приложения путь вместо добавления к глобальному системному пути.
Использование подраздела приложений
С помощью записей реестра, перечисленных в разделе _ _ корневые приложения для классов hKey \ \ ApplicationName.exe , приложения могут предоставлять сведения, относящиеся к приложению, приведенные в следующей таблице.
Запись реестра | Описание |
---|---|
\команда оболочки | Предоставляет метод Verb для вызова приложения из Опенвис. Если определение глагола не указано, система предполагает, что приложение поддерживает CreateProcess, и передает имя файла в командной строке. эта функция применяется ко всем методам команд, включая дроптаржет, ExecuteCommand и платформа динамических данных Exchange (DDE). |
дефаултикон | Позволяет приложению указать конкретный значок для представления приложения вместо первого значка, хранящегося в файле .exe. |
фриендляппнаме | Предоставляет способ получения локализуемого имени, отображаемого для приложения, а не только сведений о версии, которые могут быть не подлежат локализации. Ассокстр запроса на сопоставление считывает это значение записи реестра и возвращается к использованию имени филедескриптион в сведениях о версии. Если это имя отсутствует, запрос ассоциации по умолчанию имеет отображаемое имя файла. Приложения должны использовать ассокстр _ фриендляппнаме для получения этих сведений, чтобы получить правильное поведение. |
суппортедтипес | Список типов файлов, поддерживаемых приложением. Это позволит включить приложение в список каскадного меню диалогового окна Открыть с помощью . |
нупенвис | Указывает, что для открытия этого типа файлов не указано ни одно приложение. Имейте в виду, что если подключ Опенвиспрогидс был задан для приложения по типу файла, а сам подраздел ProgID не имеет записи Нупенвис, это приложение появится в списке рекомендуемых или доступных приложений, даже если в нем указана запись Нупенвис. Дополнительные сведения см. в разделе как включить приложение в диалоговое окно "Открыть с помощью " и как исключить приложение из диалогового окна "Открыть с помощью". |
ишостапп | Указывает, что процесс является ведущим процессом, например Rundll32.exe или Dllhost.exe, и не должен учитываться при закреплении в меню запуска или включении в список наиболее часто используемых (часто используемые). При запуске с ярлыком, содержащим список аргументов, не равный null, или явные идентификаторы модели пользователя приложения (аппусермоделидс), процесс можно закрепить (как это сочетание клавиш). Такие сочетания клавиш являются кандидатами для включения в список наиболее часто используемых. |
OnStartPage | Указывает, что исполняемый файл и ярлыки приложения следует исключить из меню Пуск , а также закреплять или включать в список наиболее часто используемых программ. Эта запись обычно используется для исключения системных средств, установщиков и программ-установщиков и файлов readme. |
усиксекутаблефортаскбарграупикон | Заставляет панель задач использовать значок этого исполняемого файла по умолчанию, если для этого приложения нет ярлыка также прикрепляемые, а вместо значка окна, которое было впервые обнаружено. |
таскбарграупикон | Задает значок, используемый для переопределения значка панели задач. Обычно для панели задач используется значок окна. Установка записи Таскбарграупикон приводит к тому, что система использует значок из .exe приложения. |
Примеры
Ниже приведены некоторые примеры регистраций приложений с помощью _ _ корневых \ приложений \ ApplicationName.exe подраздел "классы hKey". Все значения записей реестра имеют тип reg _ SZ , за исключением дефаултикон , который имеет тип _ раскрытия reg Expand _ SZ .
В следующем примере реестра показано, что происходит, когда пользователь запускает элемент программы по умолчанию на панели управления, чтобы изменить значение по умолчанию для .mp3 файлов на App2ProgID. После изменения значения по умолчанию Verb1 больше не доступно, а Verb2 становится значением по умолчанию.
Значения реестра для наблюдаемых типов определяются как подразделы подраздела реестра hKey _ _ root \ системфилеассоЦиатионс . Например, текст распознанного типа регистрируется следующим образом:
Реестр операционной системы Windows является огромной базой данных, где хранятся настройки системы, информация о конфигурации компьютера. В нем фиксируются любые изменения в составе и структуре программного обеспечения вашего компьютера. Но случается, что какая-либо программа (особенно это касается игр) из-за некорректной установки в операционной системе либо по другим причинам остается не внесенной в реестр, и пользователь вынужден делать это вручную.
- Как прописать программу в реестре
- Где находится список автозагрузки в реестре windows
- Как внести файл в реестр
- Компьютер под управлением операционной системы Windows
Прежде чем что-либо изменить в реестре, создайте его резервную копию. Для этого нажмите левой клавишей мышки кнопку «Пуск» и в открывшемся меню запустите окно «Выполнить» . Открыть окно можно также, если нажать клавиши win+R. Затем введите в строку команду «regedit». Откроется редактор реестра. В разворачивающемся пункте меню «Файл» выберете команду «Экспорт». В открывшемся диалоговом окне выберете папку, где будет сохранен файл, введите его название (оно может быть любым) и поставьте переключатель в положение «Весь реестр». Нажмите «Сохранить».
Навигация по ветвям реестра подобна переходу к какой-либо папке в «Проводнике» и осуществляется щелчком по плюсикам, расположенным у названия. Найдите в левом окне значок папки с названием «HKEY_LOCAL_MACHINE», щелкните на значок плюс у названия. В развернувшемся списке подразделов найдите значок папки SOFTWARE и в свою очередь щелкните на плюсике или дважды на самом значке.
В развернувшемся списке найдите название интересующей вас программы и выделите его щелчком мыши. Еще раз проверьте в строке состояния (самый низ окна), в той ли ветви реестра вы находитесь. Там должна быть такая строка: «Мой компьютерHKEY_LOCAL_MACHINE SOFTWAREИмя_вашей_программы».
Перейдите в правое окно и щелкните по свободному месту правой кнопкой. Перейдите на пункт меню «Создать», и выберете затем «Строковый параметр». Задайте имя «InstallDir» новому ключу и нажмите Enter.
Как правило, при двойном клике по файлу или выборе команды «Открыть» стандартного контекстного меню оболочки Windows, происходит автоматический запуск приложения, способного отображать или редактировать выбранный документ. Информация о соответствиях расширений файлов их типам, а типов - программам, хранится в реестре операционной системы. Обычно эта информация заносится в реестр при инсталляции программ. Если же этого не произошло, можно зарегистрировать тип файла вручную.
- Как зарегистрировать тип файла
- Как включить показ расширений файлов в Windows 7
- Как получить расширение файла
Зарегистрируйте расширение файла и сопоставьте его с символическим идентификатором типа. В левой панели редактора реестра выделите корневой раздел с именем HKEY_CLASSES_ROOT. Создайте в нем ключ с названием, соответствующим расширению файлов регистрируемого типа. Для этого кликните по имени раздела правой кнопкой мыши или откройте меню «Правка». Далее выберите пункты «Создать» и «Раздел». Введите расширение, включая точку (например, .myapp) и нажмите Enter.
В левой панели выделите вновь созданный раздел. В правой панели дважды кликните по элементу с названием «(По умолчанию)». В появившемся диалоговом окне введите идентификатор регистрируемого типа файла. Он может быть любым, но должен быть уникальным. Имеет смысл давать простые и запоминающиеся названия типам файлов.
Зарегистрируйте тип файла. В разделе HKEY_CLASSES_ROOT создайте ключ с именем, соответствующем названию типа, введенному на втором шаге. Для создания ключа реестра произведите действия, аналогичные описанным ранее. В качестве параметра по умолчанию созданного раздела введите короткое описание, характеризующее информацию, которая хранится в файлах регистрируемого типа.
Назначьте иконку файлам регистрируемого типа. Создайте ключ с именем DefaultIcon в разделе, добавленном на третьем шаге. В качестве значения по умолчанию данного ключа введите путь к файлу иконки, исполняемому модулю или динамической библиотеке. В двух последних случаях после имени файла через запятую можно указать идентификатор ресурса изображения, содержащегося в модуле.
Измените значение по умолчанию ключа command, введя в него команду запуска приложения, способного открывать файлы регистрируемого типа. Используйте заполнитель %1 для указания места подстановки имени открываемого файла в командную строку.
Читайте также: