別のアプリケーションを閉じる必要がある win7 プラットフォームの c++ でアプリケーションを作成しています。私が使用する手順は次のとおりです。
- EnumProcess() ですべてのプロセスを列挙します。
- OpenProcess() でプロセス ハンドルを開きます。アクセス権は PROCESS_ALL_ACCESS|PROCESS_VM_READ です。
- 次に、EnumProcessModules() でプロセス モジュールを列挙します。
- モジュール名を GetModuleBaseName() で抽出し、持っているプロセス名と比較します。
- 一致するものが見つかったら、TerminateProcess() を使用してプロセスを強制終了します。
私が直面している問題は、これが WindowsXP では機能するが、Windows 7 (64 ビット) では機能しないことです。getlasterror() を使用すると、「アクセスが拒否されました」というエラーが表示されます。アクセス権と関係があると思います。両方のプラットフォームでこれを行う方法はありますか? または、win7 固有の API はありますか?