2017-11-11 22 views
0

私は、Windows Formsアプリケーションでレジストリ値を更新する必要があります。アプリケーションをデバッグすると、値が適切に保存されます。しかし、インストーラ(Visual Studioセットアッププロジェクト - .vdproj)の完了後にアプリケーションを起動すると、アプリケーションは正常に起動しますが、レジストリ値は正しく保存されません。「システム」ユーザーとしてレジストリ値を更新する方法

エラーはありませんが、地域によってはこの商品を見つけられない場合があります。

.exeをダブルクリックすると、値が正しく保存されています。

インストーラがアプリケーションを「システム」ユーザーとして起動するためですか?

どうすれば解決できますか?

+0

インストーラはUACの仰角を求め、インストーラから起動するプログラムを昇格させるようにします。あなたがレジストリを覗いたとき、それは一般にかなり大きな違いを作ります。あなたが昇格したときに問題が発生する理由はかなりわかりませんが、それを修正する必要があります。そして、それを行うコードを隠さないでください。プログラムを起動しないで簡単に起動する方法はありません。ただしないでください。 –

+0

あなたのコードがどのレジストリエントリを更新しようとしているのかを言うべきですが、例えばHKCUエントリの場合は、システムアカウントとの相違点を見ます。また、セットアップがあなたのためにこれを行うときにレジストリエントリを作成するプログラムが必要な理由も不明です。 – PhilDW

+0

@PhilDW私は私の方法が間違っていると理解し、セットアップ自体によって作成されたエントリを持つことができました。 –

答えて

1

あなたのコードがどのレジストリエントリを更新しようとしているのかを言うべきですが、HKCUエントリの場合は、たとえば、システムアカウントで実行されている相違点が表示されます。

セットアップがこれを行うときにレジストリエントリを作成するプログラムがなぜ必要なのかも不明で、うまくいきます。 Visual Studioのセットアッププロジェクトでは、レジストリビューにあります。レジストリに格納する可能性のある値の多くは、標準のWindowsインストーラプロパティとして使用でき、[TARGETDIR]などの角かっこの構文を使用して格納できます。

関連する問題