- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:権限昇格の確認を出さないプロダクトIDの取得方法)
権限昇格の確認を出さないプロダクトIDの取得方法
このQ&Aのポイント
- Visual Studio2013を使用して、C#とC++を使った開発を行っています。C++でWindowsのレジストリを読む処理を書いたところ、管理者権限でないと読めない問題が発生しました。
- ネットの情報を参考に、Visual Studioでマニフェストファイルを作成し起動時に管理者に昇格させるようにしました。しかし、レジストリを読む処理を行う際、常に権限昇格の確認ダイアログが表示されます。
- また、UACが有効だとプログラム内からexeを起動できなくなる可能性があるとの記事も見つけました。UACを無効にすることで解決する場合もあるようです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
読み出すだけなら,Usersの権限で可能です。 読めなかった,という時のRegQueryValueExなりのAPIの戻り値は,何でしたか。 実は64bit OS上の32bit ProcessでHKLM\SOFTWARE\Wow6432Nodeを見に行っていた,ということはないでしょうか。 http://msdn.microsoft.com/en-us/library/aa384129.aspx を参考に,KEY_WOW64_64KEYを常時指定してもよいでしょう。 なお,昇格が必要なアプリケーションをUACのダイアログなしで起動する方法は,基本的に昇格済みのプロセスから起動するしかありません。 そもそも昇格が本当に必要かは調べる必要がありますが。