プロセスの優先順位クラスを取得するにはGetPriorityClass()関数を利用します。(戻る)
- プロセスのハンドルを開く(OpenProcess)
- プロセスの優先順位クラスを取得(GetPriorityClass)
- プロセスのハンドルを閉じる(CloseHandle)
プロセスを開くときにPROCESS_QUERY_INFORMATIONアクセス権を割り当てる必要があります。
定数
定数 | 意味 |
---|---|
REALTIME_PRIORITY_CLASS | リアルタイム(R) |
HIGH_PRIORITY_CLASS | 高(H) |
ABOVE_NORMAL_PRIORITY_CLASS | 通常以上(A) |
NORMAL_PRIORITY_CLASS | 通常(N) |
BELOW_NORMAL_PRIORITY_CLASS | 通常以下(B) |
IDLE_PRIORITY_CLASS | 底(L) |
日本語の表記はタスクマネージャの『優先度の設定(P)』と同じにしています。
プロトタイプ宣言
HANDLE OpenProcess( DWORD dwDesiredAccess, // アクセス・フラグ BOOL bInheritHandle, // ハンドルの継承オプション DWORD dwProcessId // プロセス識別子 ); BOOL CloseHandle( HANDLE hObject // オブジェクトのハンドル ); DWORD GetPriorityClass( HANDLE hProcess // プロセスのハンドル );
サンプル
#include <stdio.h> #include <stdlib.h> #include <windows.h> // break付きのキーワード #define CASE break;case #define DEFAULT break;default // メイン関数 int main( int argc, char *argv[] ) { DWORD dwProcessID = GetCurrentProcessId(); HANDLE hProcess; LPTSTR lpMsg; if ( argc > 1 ){ dwProcessID = atoi( argv[1] ); } if ( (hProcess = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,dwProcessID)) != NULL ){ switch ( GetPriorityClass(hProcess) ){ CASE REALTIME_PRIORITY_CLASS: lpMsg = TEXT("REALTIME_PRIORITY_CLASS『リアルタイム(R)』"); CASE HIGH_PRIORITY_CLASS: lpMsg = TEXT("HIGH_PRIORITY_CLASS『高(H)』"); CASE ABOVE_NORMAL_PRIORITY_CLASS: lpMsg = TEXT("ABOVE_NORMAL_PRIORITY_CLASS『通常以上(A)』"); CASE NORMAL_PRIORITY_CLASS: lpMsg = TEXT("NORMAL_PRIORITY_CLASS『通常(N)』"); CASE BELOW_NORMAL_PRIORITY_CLASS: lpMsg = TEXT("BELOW_NORMAL_PRIORITY_CLASS『通常以下(B)』"); CASE IDLE_PRIORITY_CLASS: lpMsg = TEXT("IDLE_PRIORITY_CLASS『底(L)』"); DEFAULT: lpMsg = TEXT("open error"); } printf( TEXT("プロセスID :%lu\n"), dwProcessID ); printf( TEXT("プロセス・ハンドル:0x%p\n"), hProcess ); printf( TEXT("プロセスの優先順位:%s\n"), lpMsg ); CloseHandle( hProcess ); return 0; } printf( TEXT("%lu:OpenProcess()関数のエラーです。\n"), GetLastError() ); return 1; }
関連記事
- プロセスの時間情報を取得
- プロセスのハンドル数を取得
- プロセスのメモリ情報を取得
- プロセスのメモリ・ページ情報を取得
- プロセスのI/O操作情報を取得
- プロセスのGDI/USERオブジェクトを取得
- プロセスの最大/最小ワーキングセットを取得
- プロセスのワーキングセットを最小化
- プロセスのセッションIDを取得
- プロセスの優先順位クラスを取得
※コメント投稿者のブログIDはブログ作成者のみに通知されます