Vue3+electron によるデスクトップ ソフトウェアの開発 (7) - レジストリの変更とカスケード メニューの作成

シリーズ記事ディレクトリ

シリーズ第 1 回: vue3+electron によるデスクトップ ソフトウェア開発の紹介と実践 (0) - Electron アプリケーションの作成



序文

最近本当に怠けていて、3ヶ月、4ヶ月、5ヶ月、半年近くブログを更新していませんでした。この期間の反省の後、私は真実に気づきました - 横になるのは本当に快適です~~

プロジェクトはまだ進行中なので、ビジネスに関係のないアイデアも引き続き共有される可能性があります。

nsis を使用してレジストリを管理し、簡単な右クリック メニューを実現する方法についてはすでに説明しましたが、次の図に示すようなカスケード メニューを実現したい場合はどうすればよいでしょうか。


1. 右クリックカスケードメニューを作成する

学生が私と同じように、フロントエンドの初心者として、ゴミ記事の長い洗礼を経て Windows レジストリに熱心に取り組んでいる場合、最終的にはレジストリについて次のような単純な結論に達する可能性が高くなります。

レジストリ内の適切な場所に適切なファイル ディレクトリとパラメータを作成すると、Windows システムによって認識され、対応する操作が表示されます。

Microsoft の公式 Web サイトを確認すると: https://learn.microsoft.com/zh-CN/troubleshoot/windows-server/performance/windows-registry-advanced-users (ここのリンクは間違いではありませんが、クリックして見たくないです)

ここに画像の説明を挿入
他の人の紹介を見たことがありますか。上級ユーザーの場合は、レジストリを詳しく調べるつもりかどうか自問してください。

調査を行う予定がある場合は、上のリンクを検索してこの記事を閉じてください。

動作原理を理解したくない、提供する API メソッドを理解したくないが、ビジネスニーズを満たすために理解せずにレジストリを操作したいだけである場合は、以下をお読みください。

2. レジストリ構造を理解する

1. レジストリを手動で追加します - 第 1 レベルのメニュー

前回の記事では、nsis を介してレジストリを管理し、システムの右クリック メニューの機能を実現する方法を説明しました。

ここでは、図に示すように、「Computer\HKEY_CLASSES_ROOT*\shell\」のパスの下に「test」を手動で維持します。 この時点で、ファイルを右クリックすると、すでに test のメニュー項目があることがわかります
ここに画像の説明を挿入
。 。

現時点では、この「テスト」メニュー項目にサブ項目「コマンド」を追加し、そのデータを cmd.exe として保持します。

  • ステップ 1 - 新しいアイテムを作成します。

ここに画像の説明を挿入

  • 2 番目のステップ - コマンド項目に関連付けられた exe ファイル (例: cmd.exe) を維持します。

ここに画像の説明を挿入
確認後、test を右クリックすると、cmd の黒いウィンドウがポップアップすることがわかります。

2. レジストリを手動で追加します - セカンダリ メニューの親メニュー

セカンダリ メニューの作成には、SubCommands というキー文字列名が付けられます。

図に示すように、維持したいメニューの新しい文字列値を作成する必要があります (これは新しい項目ではないことに注意してください!!!)。

ここに画像の説明を挿入
次に、新しく作成した文字列値を維持します。
ここに画像の説明を挿入
最終的な結果は図のようになります。

ここに画像の説明を挿入
このとき、ファイルを右クリックすると、図に示すような効果が得られます。

ここに画像の説明を挿入
テスト メニューの後ろに矢印があります。これは、サブコマンド項目が有効であることを意味します。

しかし、ここには小さな落とし穴があります。SubCommands 文字列を維持する上記の図を見てみましょう。

ここに画像の説明を挿入
テストのデフォルト項目をクリックしてから「OK」をクリックしたため、デフォルト項目のデータが空であることがわかりますが、これはデフォルト項目を NULL 値で維持するのと同じです。デフォルト項目が NULL 値の場合、今後何をしても、どんなに努力しても二次メニューは正しく読み込まれません。つまり、ここは大きな落とし穴なのです。

テスト項目を削除してから、上記の操作をやり直します。デフォルトをクリックしないように注意して、「確認」をクリックします。図に示すように、正しいテスト項目を取得します。

ここに画像の説明を挿入
もちろん、この時点では、右クリック メニューのテスト項目にはまだ 2 番目のメニューがありません。これは、その 2 つの 2 番目のメニュー [test1] と [test2] がまだ維持されていないためです。test は、第 2 レベルのメニューの親メニューとしてのみみなすことができます。

3. レジストリを手動で追加します - 第 2 レベルのメニューのサブメニュー

無数のゴミ記事といくつかの高品質の製品の洗礼を経て、最終的に 2 番目のメニューが保持する必要があるレジストリ アドレスを見つけました: "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\"

登録フォームのアドレス バーにこのアドレスを入力し、アドレスの場所を見つけます。

ここに画像の説明を挿入
このシェルでは、図に示すように、テストの 2 次メニューを直接維持します。
ここに画像の説明を挿入
この時点で、ファイルを右クリックすると、テスト項目にすでに 2 つの 2 次メニューがあることがわかります。

ここに画像の説明を挿入
図に示すように、上記の [test1] と [test2] の下にコマンドを保持し、値のデータを cmd.exe に設定します。

ここに画像の説明を挿入
この時点で、[test——>test1] をクリックすると、cmd コマンド ラインが開きます。


要約する

C局は認定申請に1ヶ月以内に4記事書く必要がありますが、これは致命的ではないでしょうかo(╯□╰)o

この記事の概要: 第 2 レベルのサブ項目を作成する手順:

  1. レジストリ アドレス "Computer\HKEY_CLASSES_ROOT*\shell\" でテストを維持します。
  2. 文字列値SubCommands はtest の下に維持され、SubCommands のデータは次のように設定されます: test1;test2 2 つの値はセミコロンで区切られていることに注意してください
  3. レジストリ「Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\」に、test1 と test2 に対応するコマンドを保持します。

Je suppose que tu aimes

Origine blog.csdn.net/zjsj_lize/article/details/129852799
conseillé
Classement