セッションIdを取得するには、ProcessIdToSessionId()関数にプロセスIdを渡します。
#include <stdio.h> #include <tchar.h> #include <iostream> #include <string> #include <windows.h> /* プロセスIdからセッションIdを取得する */ int _tmain ( int argc , _TCHAR* argv[] ) { // std::wcoutのロケールを設定 std::wcout.imbue( std::locale( "", std::locale::ctype ) ); // 現在のプロセスのIdを取得する DWORD dwProcessId = ::GetCurrentProcessId(); // プロセスIdの表示 std::wcout << L"ProcessId = " << dwProcessId << std::endl; // セッションId受け取り用 DWORD dwSessionId = 0; // プロセスIdからセッションIdを取得する if ( 0 != ::ProcessIdToSessionId( dwProcessId, &dwSessionId ) ) { // セッションIdの表示 std::wcout << L"SessionId = " << dwSessionId << std::endl; } else { // エラー std::wcout << L"取得できませんでした。" << std::endl; } // 処理結果を返す return( 0 ); }
ProcessId = 24436 SessionId = 1