私は、次の関数に対して PROCESS_ALL_ACCESS 権限を持つ OpenProcess を使用し
て
い
ます
。ただし、Windows XP/2000 では、MSDN ライブラリによると、PROCESS_ALL_ACCESS でプロセスを開きません。
Windows Server 2008 および Windows Vista で、PROCESS_ALL_ACCESS フラグのサイズが増加しました。Windows Server 2008 および Windows Vista 用にコンパイルされたアプリケーションが Windows Server 2003 または Windows XP/2000 で実行される場合、PROCESS_ALL_ACCESS フラグが大きすぎるため、このフラグを指定する関数は ERROR_ACCESS_DENIED で失敗します。この問題を回避するには、操作に必要な最小限のアクセス権セットを指定してください。PROCESS_ALL_ACCESS を使用する必要がある場合は、_WIN32_WINNT をアプリケーションが対象とする最小のオペレーティング システムに設定します (たとえば、#define _WIN32_WINNT _WIN32_WINNT_WINXP)。
#define を使用して最小オペレーティング システムを設定する方法に慣れていません。上記の機能に対する代替アクセス権の組み合わせをいくつか試した後、すべて運が悪かったので、#define を使用して最小限のオペレーティング システムを定義する方法 (上記の例は機能しませんでした) および/またはプロセス権限を誰かに教えてもらえないかと尋ねました。それらの機能には必要になります。
どうもありがとう。