1 台の PC で実行されている winservice があり、サーバーに接続されているため、この winservice にコマンドをプッシュできます。
コマンドの 1 つは次のようにする必要があります: isConnectedRemotly : 誰かが他のマシンからこのマシンに (リモートで) 接続した場合に true を返し、どのユーザー名 (接続先のセッション ユーザー名) に対して
どうすればそれができますか?
1 台の PC で実行されている winservice があり、サーバーに接続されているため、この winservice にコマンドをプッシュできます。
コマンドの 1 つは次のようにする必要があります: isConnectedRemotly : 誰かが他のマシンからこのマシンに (リモートで) 接続した場合に true を返し、どのユーザー名 (接続先のセッション ユーザー名) に対して
どうすればそれができますか?
それは依存します...「呼び出し元のプロセスがリモートセッションで実行されているかどうか」を意味する場合、プロセスのセッションIDを取得し、セッションの情報を取得して、リモートセッションであるかどうかを確認できます。
DWORD ProcessId; // filled by the calling program using GetCurrentProcessId()
DWORD SessionId, ByteCount;
LPTSTR Buffer;
if (ProcessIdToSessionId(ProcessId, &SessionId))
if (WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, SessionId,
WTSIsRemoteSession, &Buffer, &ByteCount))
if (WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, SessionId,
WTSUserName, &Buffer, &ByteCount))
{ // copy away the user name in Buffer
WTSFreeMemory(Buffer);
}