首页  >  文章  >  电脑教程  >  winpe下本地注册表指向工具

winpe下本地注册表指向工具

WBOY
WBOY转载
2024-02-09 15:20:39981浏览

php小编香蕉为您介绍一款实用的工具——WinPE下本地注册表指向工具。在WinPE系统中,由于没有直接访问本地注册表的能力,我们无法修改或查询注册表信息。而这款工具则提供了一个简单而有效的解决方案,可以将WinPE系统的注册表指向本地系统,使得我们可以方便地进行注册表的操作。无论是修复系统问题还是进行系统维护,这个工具都能帮助我们节省时间和精力。

在注册表中记录这些信息的位置是:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionApp Paths

因此,我们只要能访问到注册表的这个位置,就可以获取到某些软件的名称和安装路径信息。

本博文使用C#访问注册表获取软件的安装路径并进行显示。

1 示例程序主画面说明

示例程序主画面如下图所示。

winpe下本地注册表指向工具

在画面中的文本框中输入可执行程序的名称,然后点击“获取路径”按钮。接下来,画面的下一行将显示该程序的完整安装路径信息。请注意,输入的可执行文件名称必须是该程序在注册表中的名称。例如,Adobe Reader在注册表中的名称为“AcroRd32.exe”。

2 示例程序完整代码

using System;

using System.Windows.Forms;

using Microsoft.Win32;

namespace GetSoftWarePathExp

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

try

{

string softName = textBox1.Text.ToString();

string strKeyName = string.Empty;

string softPath = @"SOFTWAREMicrosoftWindowsCurrentVersionApp Paths\";

RegistryKey regKey = Registry.LocalMachine;

RegistryKey regSubKey = regKey.OpenSubKey(softPath + softName + ".exe", false);

object objResult = regSubKey.GetValue(strKeyName);

RegistryValueKind regValueKind = regSubKey.GetValueKind(strKeyName);

if (regValueKind == Microsoft.Win32.RegistryValueKind.String)

{

this.label3.Text = objResult.ToString();

}

}

catch

{

this.label3.Text = "朋友,获取程序路径失败!";

}

}

}

}

注意:需要添加引用:using Microsoft.Win32;

3 代码说明

(1)代码“RegistryKey regKey = Registry.LocalMachine”使regKey 指向注册表主键HKEY_LOCAL_MACHINE。

(2)代码“RegistryKey regSubKey = regKey.OpenSubKey(softPath + softName + ".exe", false)”使regSubKey 指向我们需要查找的注册表子健。

(3)代码“object objResult = regSubKey.GetValue(strKeyName)”获取注册表的键值。

(4)代码“RegistryValueKind regValueKind = regSubKey.GetValueKind(strKeyName)”获取注册表的键值类型。

(5)最后输出获取到的键值信息。

(6)程序若出错,输出“朋友,获取程序路径失败!”的提示信息。

注意:RegistryKey.GetValue和RegistryKey.GetValueKind方法均需要传入一个参数指示要检索的值的名称,当传递给RegistryKey.GetValue和RegistryKey.GetValueKind方法的参数为一个空字符串时,则检索的是一个未命名的值,在注册表编辑器中显示此未命名的值时,将显示字符串“(Default)”,而不是显示一个名称。在本例中,传入的就是一个空字符串,若以检索软件Adobe Reader的安装信息为例,则获取的是下图中的第一条注册表信息,此时名称项显示字符串“(默认)”。

winpe下本地注册表指向工具

4 程序运行结果

(1)获取Adobe Reader的安装路径

输入“AcroRd32”,点击“获取路径”,得到以下结果,是不是和注册表中记录的信息一致啊。

winpe下本地注册表指向工具

2)获取chrome的安装路径

输入“chrome”,点击“获取路径”,得到以下结果,是不是和注册表中记录的信息一致啊。

winpe下本地注册表指向工具

5 多说两句

在开发中,有时会指定特定程序来执行某类操作,这时可能会涉及读取注册表信息来打开程序。只是有些程序可能不存在这样的注册信息,这时,我们就必须采取其他方式了。


以上是winpe下本地注册表指向工具的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:pc-daily.com。如有侵权,请联系admin@php.cn删除