0

1 台の PC で実行されている winservice があり、サーバーに接続されているため、この winservice にコマンドをプッシュできます。

コマンドの 1 つは次のようにする必要があります: isConnectedRemotly : 誰かが他のマシンからこのマシンに (リモートで) 接続した場合に true を返し、どのユーザー名 (接続先のセッション ユーザー名) に対して

どうすればそれができますか?

4

1 に答える 1

0

それは依存します...「呼び出し元のプロセスがリモートセッションで実行されているかどうか」を意味する場合、プロセスのセッション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);
        }
于 2013-08-18T08:57:51.380 に答える