0
我在一臺PC上運行的WINSERVICE,它連接到服務器,所以我們可以把一個命令,這個winservcice。Programly檢測,如果我的機器上遠程訪問
一個命令應該是:isConnectedRemotly:如果有人從其他機器(遠程),以及其用戶名(它連接會話的用戶名)
連接到本機應該返回true我該怎麼辦那?
我在一臺PC上運行的WINSERVICE,它連接到服務器,所以我們可以把一個命令,這個winservcice。Programly檢測,如果我的機器上遠程訪問
一個命令應該是:isConnectedRemotly:如果有人從其他機器(遠程),以及其用戶名(它連接會話的用戶名)
連接到本機應該返回true我該怎麼辦那?
這取決於...如果你的意思是「被調用進程的遠程會話下運行,你可以obtain the session id for the process和get info for the session,以檢查它是否是一個遠程會話,喜歡的東西:
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);
}
爲什麼需要第二個「WTSQuerySessionInformation」呼叫(WTSUserName)2,NO,我想知道:「是登錄到遠程會話的用戶名」 – Joseph
第一次調用'WTSQuerySessionInformation()'與參數-3 ='WTSIsRemoteSession'確定用戶是否登錄到遠程會話中,第二次調用檢索用戶名('WTSUserName') –