首頁  >  文章  >  電腦教學  >  winpe下本地註冊表指向工具

winpe下本地註冊表指向工具

WBOY
WBOY轉載
2024-02-09 15:20:39981瀏覽

php小編香蕉為您介紹一款實用的工具-WinPE下本機註冊表指向工具。在WinPE系統中,由於沒有直接存取本機註冊表的能力,我們無法修改或查詢註冊表資訊。而這款工具則提供了一個簡單而有效的解決方案,可以將WinPE系統的登錄機碼指向本機系統,使得我們可以方便地進行登錄機碼的操作。無論是修復系統問題或系統維護,這個工具都能幫助我們節省時間和精力。

在登錄中記錄這些資訊的位置是:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App 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 = @\"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\\";

RegistryKey regKey = Registry.LocalMachine;

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

## objectect objResult = regSubKey.GetValue(strKeyName);

RegistryValueKind regValueKind = regSubKey.GetValueKind(strKeyName);

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

Kind.# {

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刪除