問題タブ [registry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
252 参照

registry - アンインストール プロセスで、レジストリ エントリの復元を適切に処理するにはどうすればよいですか?

アプリケーションのインストール中に Windows レジストリ設定を変更する必要がある場合があります。私は最近、アプリケーションをアンインストールしてもこれらの設定が復元されないことに不満を感じています。これについてさらに考えてみると、レジストリ設定を保存および復元するための適切な (または有効な) 方法がない可能性があることに気付きました。たとえば、次の一連のイベントを考えてみましょう。

  1. アプリケーション A は、ファイル拡張子 の Open アクションを所有しています.abc
  2. アプリケーション B がインストールされ、ファイル拡張子 の Open アクションをハイジャックします.abc
  3. アプリケーション A がアンインストールされます。
  4. アプリケーション B がアンインストールされます。

ステップ 3 で、アプリケーション A が十分にスマートであれば、Open アクションを所有していないことを検出し、それを復元する試みをスキップします。

ステップ 4 で、アプリケーション B が実行できる有効なアクションはありますか?

  • 何もしないと、削除された実行可能ファイルを指す Open アクションが残ります。
  • 同様に、アプリケーション A へのポインターの復元は、削除された実行可能ファイルです。
  • ユーザーに質問することは、通常、一般的なユーザーの技術的スキルをはるかに超えていると見なされるため、許可されていません。同意しない場合は、手順 1 と 2 で、ユーザーが回答する範囲外と思われる別のレジストリ変更に置き換えます。
  • 同様に、アクションを削除すると、ユーザーは後で何も知らずに決定を下さなければならなくなります。

これは、明確な唯一の「正しい」解決策がないという、私が想像できる多くの悪い状況の 1 つにすぎません。私の次のプロジェクトでは、インストール中にレジストリを変更する必要があります。アンインストールのベスト プラクティスまたは推奨プラクティスを知りたいです。残念ながら、私は現在の商用パッケージの不適切なアンインストール プラクティスに悩まされてきました。したがって、ここでのベスト プラクティスについてコンセンサスが得られていないことは承知しており、それを正しく行うには多くの作業が必要であるか、レジストリの設計上の欠陥のいずれかです。 、 または両方。

これは私にとって非常に現実的なプログラミングの問題です。これに対する画一的な正解があるかどうかわからないので、主観的とタグ付けします。お気軽に異議を唱えてください。

0 投票する
9 に答える
245641 参照

windows - レジストリを介してインストールされたプログラムを検出する

ユーザーのコンピューターに特定のプログラムがインストールされているかどうか、インストールされている場合はバージョンを検出するプロセスを開発する必要があります。レジストリの場所とキーを検索してプログラムに供給するためのリストが必要になると思いますが、これは問題ではありません。これを達成するためのより良い方法はありますか?

最初に考えたのは、アンインストール エントリのレジストリをチェックインすることでしたが、検出したいアプリの 1 つにレジストリがないようです。アプリケーションを使用してエントリを作成するすべてのレジストリの標準的な場所は?

0 投票する
1 に答える
8328 参照

visual-studio-2008 - Visual Studio 2008 \BackupFilesフォルダーはすべての新しいVSインスタンスが開かれたときに作成されます

VS2008がバックアップファイルを保存するパスに問題があると思います。数日後、.slnファイルが存在するのと同じフォルダーに新しい「VisualStudio2008」ディレクトリが作成されます。次に、最初の自動保存の時間が経過した後、バックアップファイルがこのフォルダーに保存されます。

[ツール-オプション]ダイアログを参照しましたが、静的にディレクトリを設定する方法が見つかりませんでした:C:\ document and setings \\ My Documents \ Visual Studio 2008 \BackupFiles。

誰かがこの問題の正しい解決策を教えてもらえますか(おそらく正しいレジストリエントリ-私は推測します)?ありがとう

0 投票する
3 に答える
971 参照

c# - 整数値の(byte [] lpData)をRegSetValueExW P/Invokeに渡す方法

レジストリキーに値を設定するこのP/InvokeRegSetValueExWがあります。C#で

4番目のparambyte[]lpdataに問題があります。値が5(int)のDWORDを渡す必要があります。文字列(REG_SZ)を渡せば、すべて問題ありません。GetBytes関数を使用して変換する必要があります。

GetBytes( "5")を呼び出すと、ASCII値53に変換されるため、レジストリ値に5ではなく53が書き込まれます。

0 投票する
3 に答える
431 参照

dll - 自己登録はなぜ悪いのですか?

大規模なインストーラー プログラムの一部としてコンポーネントをインストールするために自己登録が使用されると仮定すると、なぜ自己登録が悪いのでしょうか? たとえば、vb カスタム コントロールや capicom などを自己登録します。自分で作成した dll の場合、自己登録はおそらく安全ではないことは承知していますが、それらについては議論していません。

MSDN には、自己登録が良くない理由がいくつか挙げられています。

  • ロールバックが正しく機能しません。
    OK、この理由は理にかなっています。

  • 広告もうまくいきません。
    広告は特定の種類のソフトウェア クライアントにとってのみ重要であるという事実を無視すると、なぜこれが問題になるのか理解できません。コンポーネントではなく、メイン アプリケーションのみを宣伝する必要があります。

  • 自己登録は、ユーザーごとのキーを適切にサポートしません。
    だから何?すべてのユーザーに「共通」コンポーネントへのアクセスを許可することは、マシンに多数のユーザーがいる場合を除き、悪いことではありません。

  • 自己登録は、コーディング エラーの影響を受けやすくなります。
    Microsoft によって作成された dll の場合を除いて、私は間違いなくこれを信じることができます (エラーがある可能性がありますが、それらを信頼することが不合理だとは思いません)。また、ソフトウェアによって生成された tlb と ocx の場合、コーディング エラーはほとんどありません。

  • 自己登録 dll は、他の dll にリンクする場合があります。
    プログラムによって生成された dll の場合、これが原因で自己登録が失敗する可能性は低いと思われますが、登録キーを手動で追加するとうまくいきます。自己登録で、dll が見つからないというエラーが返されるようにしたいと考えています。

    私はこれが炎を描くと確信しています:/

    編集:実際に重要だと思う議論を取り消しました(ユーザーの応答と私自身に基づいて)。

  • 0 投票する
    18 に答える
    254055 参照

    batch-file - バッチ スクリプト内からレジストリ キーの値を取得するにはどうすればよいですか?

    REG QUERY コマンドを使用してキーの値を表示し、次のコマンドで結果を変数に設定する必要があります。

    しかし、キーが存在しない場合、コンソールにエラーが表示されます。このエラーを非表示にする必要があります。コマンドの後に 2>nul を入れて stderr を停止しようとしましたが、これはコマンドを呼び出すだけで機能します。

    次のようにFORコマンドに入れた場合:

    エラーが表示されます。エラーを非表示にする方法を知っている人はいますか?または、別のコマンドでもキーが存在するかどうかを確認できますか?

    ありがとう

    PS: Windows XP を使用しています。

    0 投票する
    4 に答える
    480 参照

    c# - C#コンボボックスの内容をレジストリに書き込む最良の方法は何ですか?

    ボタンがクリックされたときに実行時に埋められるコンボボックスがあります(データベースから約6つのアイテムが読み込まれます)。これらのコンボボックスアイテムをレジストリに書き込みたいので、プログラムがロードされたときにそれらを読み戻すことができるので、コンボボックスはデータベースから再読み込みする必要なく、すでに入力されています。

    私の質問は、これらをレジストリに書き込む最良の方法と、プログラムがロードされたときに selectedItem になるように、selectedItem をレジストリに書き込む方法です。

    どうもありがとう

    0 投票する
    2 に答える
    252 参照

    c# - 別の言語のレジストリ値

    .Netを必要とするアプリケーションがあります。レジストリ値をチェックして、.Netがインストールされているかどうか、およびそれが適切なバージョンであるかどうかを確認する方法を見つけました。

    私が知りたいのはこれです:レジストリ値はOSの言語設定に基づいて変更されますか?つまり、ペルーの誰かが.Netをインストールし、私のアプリケーションが次のようなものを呼び出す場合

    「バージョン」は認識されますか?または、スペイン語の「バージョン」である必要があります。

    0 投票する
    1 に答える
    7477 参照

    windows - WshShell.RegRead を使用して、名前がファイル パスであるレジストリ値を読み取る方法

    Windows Scripting Host によって実行される JavaScript を作成しています。特定の DLL の共有ファイル数をレジストリから読み取れるようにする必要があります。レジストリ キーと値は次のようになります。

    これを行うためにWshShell.RegReadメソッドを使用しようとしていますが、うまくいかないようです。問題は、このメソッドが、取得する値の連結されたキーパスと値名である単一のパラメーターのみを取ることだと思います。この場合の値の名前はそれ自体がパスであるため、メソッドはそれがキーの一部であると見なします。このメソッドに値の名前を認識させる方法はありますか?

    問題を示すコードは次のとおりです。

    私が見ているエラーは次のとおりです。