Установить программу через реестр

Мне нужно разработать процесс, который определит, установлены ли на компьютере пользователя определенные программы, и если да, то какая версия. Я считаю, что мне понадобится список с расположением реестра и ключами для поиска и подачи его в программу, что не является проблемой. Есть ли лучший способ сделать это?

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

9 ответов:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall

большинство программ, которые там перечислены. Посмотрите на ключи: DisplayName DisplayVersion

обратите внимание, что последний не всегда установлен!

на 64-разрядных системах ключ x86 (обычно с большим количеством записей):

HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall

вы можете использовать MSI API для перечисления всего, что установлено установщиком Windows, но это не будет перечислять все программное обеспечение, доступное на машине. Не зная больше о том, что вам нужно, я думаю, что понятие «установлено» немного расплывчато. Существует множество способов развертывания программного обеспечения в системе, начиная от больших сложных установщиков до ZIP-файлов и всего, что между ними.

Как добавить программу в автозагрузку через реестр

поделиться Brian Ensink

приложение не должно иметь какой-либо записи в реестре. На самом деле, многие приложения не нужно устанавливать вообще. Хорошим примером являются USB-накопители U3; программы на них просто запускаются из файловой системы.

Как уже отмечалось, большинство хороших приложений можно найти через их удалить раздел реестра, хотя.

На самом деле это пара ключей, для каждого пользователя и для каждой машины (HKCU/HKLM-Piskvor упоминается только один HKLM). Это не (всегда) дает вам каталог установки, хотя.

Если это в HKCU, то вы должны понимать, что HKEY_CURRENT_USER действительно означает «текущий пользователь». Другие пользователи имеют свои собственные записи HKCU и свое собственное установленное программное обеспечение.

Вы не можете найти это. Чтение каждый HKEY_USERS hive-это катастрофа в корпоративных сетях с роуминговыми профилями. Вы действительно не хотите получать 1000 учетных записей из вашего удаленного офиса [США|Китай|Европа].

даже если приложение установлено, и вы знаете, где оно не может иметь тот же «версия» понятие у вас есть.

Лучшим источником является ресурс «версия» в исполняемых файлах. Это действительно множественное число, поэтому вы должны найти их все, извлечь ресурсы версии из всех и в случае конфликта решить что-то разумное.

Так что — удачи. Есть десятки способов потерпеть неудачу.

вы можете использовать сценарий PowerShell для просмотра регистров и получения сведений об установленной программе. Скрипт ниже сгенерирует файл с полным списком установленных программ. Сохраните его с расширением». ps » и дважды щелкните файл.

Как удалить программу со всеми следами ее присутствия. Чистый реестр после удаления программы.

Читайте также:
Кто придумал твою программу


# # Generates a full list of installed programs. # # Temporary auxiliar file. $tmpFile = «tmp.txt» # File that will hold the programs list. $fileName = «programas-instalados.txt» # Columns separator. $separator = «,» # Delete previous files. Remove-Item $tmpFile Remove-Item $fileName # Creates the temporary file. Create-Item $tmpFile # Searchs register for programs — part 1 $loc = Get-ChildItem HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall $names = $loc |foreach-object foreach ($name in $names) < IF(-Not [string]::IsNullOrEmpty($name.DisplayName)) < $line = $name.DisplayName+$separator+$name.DisplayVersion+$separator+$name.InstallDate Write-Host $line Add-Content $tmpFile «$line`n» >> # Searchs register for programs — part 2 $loc = Get-ChildItem HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall $names = $loc |foreach-object foreach ($name in $names) < IF(-Not [string]::IsNullOrEmpty($name.DisplayName)) < $line = $name.DisplayName+$separator+$name.DisplayVersion+$separator+$name.InstallDate Write-Host $line Add-Content $tmpFile «$line`n» >> # Sorts the result, removes duplicate lines and # generates the final file. gc $tmpFile | sort | get-unique > $filename
поделиться Arivan Bastos

в дополнение ко всем разделам реестра, упомянутым выше, вы также можете посмотреть на HKEY_CURRENT_USERSoftwareMicrosoftInstallerProducts для программ, установленных только для текущего пользователя.

поделиться David Airapetyan

похоже, что поиск чего-то конкретного для установленной программы будет работать лучше, но HKCUSoftware и HKLMSoftware-это пятна для поиска.

Win32_Product никогда не показывает все, только программное обеспечение, установленное через установщик MSI (насколько я могу судить.)

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

раздел реестра HKEY_CURRENT_USERпрограммное обеспечениеМайкрософтWindows в НТраздел CurrentVersionAppCompatFlagsсовместимость помощникаунимался

Источник: coder-booster.ru

Как добавить игру в реестр windows 7

Пользователи спрашивают о том, как зарегистрировать dll файл в Windows 7 и 8. Обычно после того, как столкнулись с ошибками наподобие «Запуск программы невозможен, так как нужная dll отсутствует на компьютере». Об этом и поговорим.

На самом деле, регистрация библиотеки в системе не такая уж и сложная задача (покажу целых три вариации одного способа) — по сути, необходим лишь один шаг. Единственное обязательное требование — наличие у вас прав администратора Windows. Однако есть некоторые нюансы — например, даже успешная регистрация DLL не обязательно избавляет вас от ошибки «библиотека отсутствует на компьютере», а появление ошибки RegSvr32 с сообщением о том, что модуль не совместим с версией Windows на этом компьютере или точка входа DLLRegisterServer не найдена, не говорит о том, что вы что-то делаете не так (о чем это говорит разъясню в конце статьи).

Читайте также:
Программа для ГТА 4 чтобы не лагало

Три способа регистрации DLL в ОС

Описывая дальнейшие шаги, я исхожу из того, что вы нашли, куда нужно скопировать вашу библиотеку и DLL уже лежит в папку System32 или SysWOW64 (а возможно, где-то еще, если ей там следует находиться). Примечание: ниже будет описано, как зарегистрировать DLL библиотеку с помощью regsvr32.exe, однако обращаю ваше внимание на то, что если у вас 64-разрядная система, то у вас есть два regsvr32.exe — один в папке C:WindowsSysWOW64, второй — C:WindowsSystem32. И это разные файлы, причем 64-бит находится в папке System32. Рекомендую в каждом из способов использовать полный путь к regsvr32.exe, а не просто имя файла, как у меня показано в примерах.

  • Нажмите клавиши Windows + R или в меню Пуск Windows 7 выберите пункт «Выполнить» (если, конечно, у вас включено его отображение).
  • Введите regsvr32.exe путь_к_файлу_dll
  • Нажмите Ок или Enter.

После этого, если все прошло успешно вы должны будете увидеть сообщение о том, что библиотека была успешно зарегистрирована. Но, с большой вероятностью увидите другое сообщение — Модуль загружен, но точка входа DllRegisterServer не найдена и стоит проверить, что ваша DLL является правильным файлом (об этом, как я уже говорил, напишу позже).

Второй способ состоит в запуске командной строки от имени администратора и ввода все той же команды из предыдущего пункта.

  • Запустите командную строку от имени Администратора. В Windows 8 можно нажать клавиши Win+X, а затем выбрать нужный пункт меню. В Windows 7 вы можете найти командную строку в меню Пуск, кликнуть по ней правой кнопкой мыши и выбрать пункт «Запуск от имени администратора».
  • Введите команду regsvr32.exe путь_к_библиотеке_dll (пример вы можете видеть на скриншоте).

Опять же, вероятно, что вам не удастся зарегистрировать DLL в системе.

И последний способ, который также может пригодиться в некоторых случаях:

  • Кликните правой кнопкой мыши по DLL, которую нужно зарегистрировать и выберите пункт меню «Открыть с помощью».
  • Нажмите «Обзор» и найдите файл regsvr32.exe в папке Windows/System32 или Windows/SysWow64, откройте DLL с помощью него.
Читайте также:
Обучающая программа автомеханика по ремонту автомобилей с торрента

Суть всех описанных способов зарегистрировать DLL в системе одна и та же, просто несколько разные способы запуска одной и той же команды — кому что удобнее. А теперь о том, почему у вас ничего не получается.

Почему не удается зарегистрировать DLL

Итак, у вас отсутствует какой-то файл DLL, из-за чего при запуске игры или программы вы видите ошибку, вы скачали этот файл из Интернета и пробуете зарегистрировать, но либо точка входа DllRegisterServer, либо модуль не совместим с текущей версией Windows, а может и что-то еще, то есть регистрация DLL невозможно.

Почему это происходит (далее будет и про то, как это исправить):

  • Не все файлы DLL предназначены для того, чтобы их регистрировали. Для того, чтобы его можно было зарегистрировать данным способом, он должен иметь поддержку той самой функции DllRegisterServer. Иногда ошибка бывает также вызвана тем, что библиотека уже зарегистрирована.
  • Некоторые сайты, предлагающие скачать DLL, содержат по факту, файлы-пустышки с искомым вами именем и их невозможно зарегистрировать, так как на самом деле это не библиотека.

А теперь о том, как это исправить:

  • Если вы программист и регистрируете свою DLL, попробуйте regasm.exe
  • Если вы пользователь и у вас что-то не запускается с сообщением о том, что DLL отсутствует на компьютере — поищите в Интернете, что это за файл, а не где его скачать. Обычно, зная это, вы можете скачать официальный установщик, который установит оригинальные библиотеки и зарегистрирует их в системе — например, для всех файлов с именем, начинающегося с d3d достаточно поставить DirectX с официального сайта Microsoft, для msvc — одну из версий Visual Studio Redistributable. (А если не запускается какая-то игра с торрента, то загляните-ка в отчеты антивируса, он мог удалить нужные DLL, это часто бывает с некоторыми модифицированными библиотеками).
  • Обычно, вместо регистрации DLL срабатывает размещение файла в одной папке с исполняемым файлом exe, который требует эту библиотеку.

На этом завершаю, надеюсь, что-то стало более ясно, чем было.

Источник: altarena.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru