如何找到安装程序的注册表文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何找到安装程序的注册表文件相关的知识,希望对你有一定的参考价值。

想清除程序的注册表信息,卸载之后,注册表信息还存留着,可不知道这些安装程序的在注册表的位置,请哪位高人指点一下,如杀毒软件之类的软件在注册表中的位置~~~~~~~~~~~
极品密盘在注册表的位置

你可以这样来解决:
1.右击“我的电脑-属性-硬件-设备管理器-查看-显示隐藏的设备”,将与杀毒软件有关的隐藏设备卸载(如果有的话)。
2.打开“控制面板-管理工具-服务”,将与杀软有关的服务全部停用,设置成“已禁用”。
3.运行Msconfig命令,在启动模块里,将杀软的开机启动项停用。然后重启。
4.卸载杀毒软件。
5.重装杀软(在重装前最好用Windows优化大师清理一下注册表)。

另外你也可以借助一些专业的卸载软件,个人推荐用这2个:
Your Uninstaller
Cleanse Uninstaller
这2个软件能将一个软件从你的系统中连根拔起,连带注册表项也能清理!

极品密盘小资料的介绍
http://hi.baidu.com/%C6%A6%D7%D3%B2%CB/blog/item/545da21147ab6c7ccb80c40f.html

参考资料:http://zhidao.baidu.com/question/16311329.html?si=2

参考技术A 比如卡巴
你就运行regedit
搜索kav的项和键
手动找会找傻你的。
或者你去找些专门讲解注册表的书来看,网上很多。
他会教你所有注册表的作用。比如开机要跳个对话框出来。
如果你有兴趣的话。
不然,建议使用第三方软件来清除。明白?本回答被提问者采纳
参考技术B 运行"regedit"然后依次展开

"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall"

在下拉菜单中显示的都是“添加/删除程序”中的项目,找到对应的软件名,右键删除,退出,重启电脑 .
参考技术C 1.打开开始栏里的运行,输入“regedit”打开注册表编辑栏
2.然后打开HKEY_LOCAL_MACHINE。
3.接下来SOFTWARE
4.然后在所成列的注册表源注册记录中,就能找到你所安装的非系统主要软件的注册项,选中,删除。
5.补充一下,依靠第3方软件来清除注册表文件,在目前的研究看来是不可取的。

如果还有别的疑问请补充。祝您愉快~~~中关村鼎好商城3108# QQ:136322909 石先生
参考技术D 下载一个regvac的小工具来做这事

用它可以很轻松地把那些没用的清出系统,很方便
但是能不能做到真正的彻底那就不知了

如何使用 WiX 安装程序注册文件类型/扩展名?

【中文标题】如何使用 WiX 安装程序注册文件类型/扩展名?【英文标题】:How to register file types/extensions with a WiX installer? 【发布时间】:2010-09-13 09:43:33 【问题描述】:

我在 WiX 文档(或谷歌,就此而言)中没有找到这个问题的明确答案。当然,我可以在 HKCR 中编写适当的注册表项,但这让我觉得很脏,我希望这是一个标准任务,应该有一个很好的默认解决方案。

对于奖励积分,我想知道如何使其“安全”,即不要覆盖文件类型的现有注册,并且只有在安装期间已注册且未更改时才在卸载时删除注册。

【问题讨论】:

【参考方案1】:

“如果你的应用程序处理它自己的文件数据类型,你将需要为它注册一个文件关联。在你的组件中放置一个 ProgId。FileId 应该引用 File 元素的 Id 属性来描述要处理的文件此扩展名的文件。注意感叹号:它将返回文件的短路径而不是长路径:"

<ProgId Id='AcmeFoobar.xyzfile' Description='Acme Foobar data file'>
  <Extension Id='xyz' ContentType='application/xyz'>
     <Verb Id='open' Sequence='10' Command='Open' Target='[!FileId]' Argument='"%1"' />
  </Extension>
</ProgId>

参考:https://www.firegiant.com/wix/tutorial/getting-started/beyond-files/

【讨论】:

【参考方案2】:

很遗憾,无法与 Windows Installer 建立“安全”关联。

我们只是将所有内容写入注册表,然后有一个单独的组件接管系统范围的默认设置,并且仅在没有其他应用程序已将自身注册为默认设置时安装。

Vista 有新的“默认程序”界面,您再次将所有内容写入注册表。这是我们在安装程序中使用的完整示例。 (WiX 3.0)

更新:距离我最初的回答已经过去了 12 个月,我对文件关联有了更好的理解。我现在不是手动编写所有内容,而是使用正确的ProgId 定义来改进广告包的处理。请参阅更新的代码posted in response to this question。

<Component ....>
    <RegistryValue Root="HKLM" Key="SOFTWARE\AcmeFoobar\Capabilities" Name="ApplicationDescription" Value="ACME Foobar XYZ Editor" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\AcmeFoobar\Capabilities" Name="ApplicationIcon" Value="[APPLICATIONFOLDER]AcmeFoobar.exe,0" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\AcmeFoobar\Capabilities" Name="ApplicationName" Value="ACME Foobar" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\AcmeFoobar\Capabilities\DefaultIcon" Value="[APPLICATIONFOLDER]AcmeFoobar.exe,1" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\AcmeFoobar\Capabilities\FileAssociations" Name=".xyz" Value="AcmeFoobar.Document" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\AcmeFoobar\Capabilities\MIMEAssociations" Name="application/xyz" Value="AcmeFoobar.Document" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\AcmeFoobar\Capabilities\shell\Open\command" Value="&quot;[APPLICATIONFOLDER]AcmeFoobar.exe&quot; &quot;%1&quot;" Type="string" />

    <RegistryValue Root="HKLM" Key="SOFTWARE\RegisteredApplications" Name="Acme Foobar" Value="SOFTWARE\AcmeFoobar\Capabilities" Type="string" />

    <RegistryValue Root="HKLM" Key="SOFTWARE\Classes\.xyz" Name="Content Type" Value="application/xyz" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\Classes\.xyz\AcmeFoobar.Document\ShellNew" Value="" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\Classes\.xyz\OpenWithList\AcmeFoobar.exe" Value="" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\Classes\.xyz\OpenWithProgids" Name="AcmeFoobar.Document" Value="" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Applications\AcmeFoobar.exe\SupportedTypes" Name=".xyz" Value="" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Applications\AcmeFoobar.exe\shell\open" Name="FriendlyAppName" Value="ACME Foobar" Type="string" />

    <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AcmeFoobar.exe" Value="[!AcmeFoobar.exe]" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AcmeFoobar.exe" Name="Path" Value="[APPLICATIONFOLDER]" Type="string" />

    <RegistryValue Root="HKLM" Key="SOFTWARE\Classes\SystemFileAssociations\.xyz\shell\edit.AcmeFoobar.exe" Value="Edit with ACME Foobar" Type="string" />
    <RegistryValue Root="HKLM" Key="SOFTWARE\Classes\SystemFileAssociations\.xyz\shell\edit.AcmeFoobar.exe\command" Value="&quot;[APPLICATIONFOLDER]AcmeFoobar.exe&quot; &quot;%1&quot;" Type="string" />

</Component>



<Component ....>
    <ProgId Id="AcmeFoobar.Document" Description="ACME XYZ Document">
        <Extension Id="pdf" ContentType="application/xyz">
            <Verb Id="open" Command="Open" TargetFile="[APPLICATIONFOLDER]AcmeFoobar.exe" Argument="%1" />
        </Extension>
    </ProgId>

    <Condition><![CDATA[DEFAULTVIEWER=1]]></Condition>
</Component>

【讨论】:

@saschabeumont 难道我们不应该修改 HKCR 条目而不是 HKLM 来进行文件类型映射吗? xyz 是否区分大小写? 如果您想为同一个应用程序拥有多个文件扩展名怎么办? 对于以ProgId 作为其子元素的组件,.... 是什么?组件的“关键路径”是什么?【参考方案3】:

经过一些额外的研究,我在WiX Tutorial 中找到了这个问题的部分答案。它显示了一个广告解决方案,不适用于 WiX 3.0,但鉴于这些信息,我想通了。将 ProgId 元素添加到包含您的可执行文件的组件中,如下所示:

<ProgId Id="MyApplication.MyFile" Description="My file type">
  <Extension Id="myext" ContentType="application/whatever">
    <Verb Id="open" Command="open" TargetFile="MyApplication.exe" Argument="&quot;%1&quot;"/>
  </Extension>
</ProgId>

myext 是不带点的文件扩展名,MyApplication.exe 是可执行文件的文件 ID(不是名称)(即 File 元素的 Id 属性)。 这将使用您的可执行文件注册文件类型,并将提供一个默认图标(一个带有应用程序图标的白页),这足以满足我的需要。如果您想指定一个专用图标,似乎您仍然需要自己执行此操作,如下所示(链接教程中的代码):

<Registry Id='FooIcon1' Root='HKCR' Key='.xyz' Action='write' Type='string' Value='AcmeFoobar.xyzfile' />
<Registry Id='FooIcon2' Root='HKCR' Key='AcmeFoobar.xyzfile' Action='write' Type='string' Value='Acme Foobar data file' />
<Registry Id='FooIcon3' Root='HKCR' Key='AcmeFoobar.xyzfile\DefaultIcon' Action='write' Type='string' Value='[INSTALLDIR]Foobar.exe,1' />

我没有为我的额外问题找到一个好的解决方案。

编辑:我在上一个答案出现之前就开始写这篇文章了。但是,与之前的答案相比,我的解决方案确实有效。

【讨论】:

@VK:确实如此。究竟什么似乎不适合你?与此类似的代码自 2008 年左右就已在此处投入生产,从未更改过,并且仍然有效。另一方面,您现在可以将 Icon 用于广告解决方案,而无需安装图标文件(或者如果您可以安装文件或将其保存在可执行文件中,则只需使用 File)。那么,这里有什么不适合你的呢? 我使用了这段代码,但是我的应用程序没有设置为默认应用程序。 这不要与设置默认应用程序混淆,它只为某种文件类型注册一个打开动词,并且只有在没有其他文件类型已经注册时才会成为默认值。您需要更具体地了解您想要实现的目标。您可能还想查看 saschabeaumont 链接的答案,它使用广告。

以上是关于如何找到安装程序的注册表文件的主要内容,如果未能解决你的问题,请参考以下文章

我安装cad时显示已安装,但是找不到程序,怎么办?

如何解决缺少OCX问题,如何在win7 64位下注册OCX

怎么从注册表卸载MAYA?

在window中,要打开一个文件时,系统是怎样找到相应的程序打开这个文件的?

如何查看程序安装过程中对系统做的所有修改?(包括文件,注册表),有啥软件可以查看?

开机时出现【没有找到libprotobuf.dll,因此这个程序未能启动。重新安装应用程序可能会修复此问题。】