セッション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