php エディタ Banana は実用的なツール、つまり 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;
名前空間 GetSoftWarePathExp
{
public 部分クラス Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
文字列 SoftName = textBox1.Text.ToString();
文字列 strKeyName = string.Empty;
文字列 SoftPath = @\"SOFTWARE\Microsoft\Windows\CurrentVersion\アプリ パス\\";
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 = \"友人、プログラム パスの取得に失敗しました!\";
}
}
}
}
注: 参照を追加する必要があります: 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 メソッドに渡されるパラメータが空の文字列、取得されるのは名前のない値です。この名前のない値がレジストリ エディターに表示されると、名前が表示される代わりに文字列「(デフォルト)」が表示されます。この例では空の文字列を渡しています。Adobe Readerというソフトウェアのインストール情報を例にすると、下図の最初のレジストリ情報が取得されます。このとき、名前の項目には「(」という文字列が表示されます。デフォルト)"。
4 プログラムの実行結果
(1) Adobe Readerのインストールパスを取得します
「AcroRd32」と入力し、「パスを取得」をクリックし、以下を取得します。結果、はい レジストリに記録されている情報と一致しません。
2) chrome のインストール パスを取得します
「chrome」と入力し、「パスを取得」をクリックすると、以下の結果が得られます。レジストリは?
5 さらに一言
開発では、特定の種類の操作を実行するように特定のプログラムが指定されることがあります。これには、プログラムを開くためにレジストリ情報を読み取る必要がある場合があります。ただ、プログラムによってはそのような登録情報がない場合もあるので、その場合は別の方法をとらなければなりません。
以上がwinpe でのローカル レジストリ ポインティング ツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。