2

消費電力の追跡、プロセスの列挙、プロセスごとの CPU 使用率の計算など、あらゆる種類の低レベルのデバイス API 作業を行うために、学習および個人消費を目的とした Metro アプリを作成したいと考えています。残念ながら、これらのデスクトップ API はMetro アプリケーションから禁止されています。

これを回避する最初の試みは、Windows 以外のストア C++ ライブラリを作成することでした。このライブラリには、や などのWINAPI_FAMILY関数を使用するために変数が正しく設定されています。残念ながら、最初の引数でトークンをリターン コードとともに渡すと失敗するのは、この後者の関数呼び出しです。QueryIdleProcessorCycleTime()CallNtPowerInformation()ProcessorInformationSTATUS_ACCESS_DENIED

興味深いことに、最初の引数としてCallNtPowerInformation()指定すると問題SystemBatteryStateなく動作するため、プロセッサ情報を取得するために Metro アプリとして実行する場合に、何らかのアクセス権限が不足していると思います。Metro アプリは非常に制限された権限で実行されると読んだので、これらの権限を増やして API 呼び出しを適切に実行できるようにする方法を探しています。コーディング エラーではなくプロセス特権であることをテストするために、コンソール アプリケーションから C++ ライブラリを使用しましたが、すべて問題なく動作しました。

面倒な作業をすべて実行し、ソケットを介して Metro アプリに結果を伝える 2 つ目のデスクトップ バックグラウンド プロセスを作成する必要はありません。これでうまくいくことはわかっていますが、すべてを同じプロセス空間に収めたいと思います。

4

0 に答える 0