php小編香蕉為您介紹一款實用的工具-WinPE下本機註冊表指向工具。在WinPE系統中,由於沒有直接存取本機註冊表的能力,我們無法修改或查詢註冊表資訊。而這款工具則提供了一個簡單而有效的解決方案,可以將WinPE系統的登錄機碼指向本機系統,使得我們可以方便地進行登錄機碼的操作。無論是修復系統問題或系統維護,這個工具都能幫助我們節省時間和精力。
在登錄中記錄這些資訊的位置是:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
#因此,我們只要能存取到註冊表的這個位置,就可以取得到某些軟體的名稱和安裝路徑資訊。
本部落格文章使用C#存取登錄機碼取得軟體的安裝路徑並進行顯示。
1 範例程式主畫面說明
範例程式主畫面如下圖所示。
在畫面中的文字方塊中輸入可執行程式的名稱,然後點選「取得路徑」按鈕。接下來,畫面的下一行將顯示該程式的完整安裝路徑資訊。請注意,輸入的可執行檔名稱必須是該程式在註冊表中的名稱。例如,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的安裝資訊為例,則獲取的是下圖中的第一個註冊表信息,此時名稱項目顯示字串「(預設)".
4 程式運行結果
(1)取得Adobe Reader的安裝路徑
輸入“AcroRd32”,點選“取得路徑”,得到下列結果,是不是和註冊表中記錄的資訊一致啊。
2)取得chrome的安裝路徑
輸入“chrome”,點選“取得路徑”,得到下列結果,是否和登錄中記錄的資訊一致啊。
5 多說兩句
在開發中,有時會指定特定程式來執行某類操作,這時可能會涉及讀取登錄資訊來開啟程式。只是有些程式可能不存在這樣的註冊訊息,這時,我們就必須採取其他方式了。
以上是winpe下本地註冊表指向工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!