- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定プロセスの権限情報を取得できる?)
特定プロセスの権限情報を取得できる?
このQ&Aのポイント
- WindowsVista以降において権限周りが厳しくなったことで、UIPIにより別プロセスのウィンドウへのPostMessage等がブロックされるケースが出て難儀しています。
- 対応策を調べたところ、自アプリが昇格しないで通信する方法と、昇格する方法があるようですが、昇格しない場合はインストール先が制限されること、最初から昇格していては不要な場合までも高い権限レベルで起動してしまうことから、アプリ実行中に必要な場合だけ昇格する方向を模索しています。
- 通信周りをCOM化すれば通信可能らしい、というところまでは調べたのですが、必要な場合かどうかの判定をどうすれば良いかが分かっていません。VC++で通信相手のウィンドウハンドルを取得したところから、そのウィンドウを持つプロセスの権限情報を取得可能でしょうか?また、自アプリの現在の権限レベルを確認する手段はあるでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
http://msdn.microsoft.com/ja-jp/windows/dd871146.aspx のページに書かれている整合性レベル ( Integrity Level : IL ) のことですよね。 ↓のページが参考になると思います。 http://msdn.microsoft.com/en-us/library/bb625966.aspx ウィンドウハンドルからプロセスハンドルを取得するには、GetProcessId と OpenProcess を使用すれば良いと思います。
お礼
回答ありがとうございます。 参考ページを見ながら試してみたいと思います。