WTSEnumerateSessions的一点疑惑

时间:2021-09-29 19:51:18
我用XP远程登入2003,调用WTSEnumerateSessions枚举的时候得到了State == WTSActive的SessionId有两个,分别是0和1,现在我的问题是该如何知道我正在登入的账户这个是0还是1。

有什么函数可以直接得到吗,还是要用其它的什么方法,希望哪位大虾做过的告诉下,谢谢。

如果可以的话简单贴个例子看下,谢谢

13 个解决方案

#1


该回复于2010-12-03 11:37:22被版主删除

#2


查了下GetCurrentProcessId,但是关键是我的程序是服务程序,它的用户名是system的
我差了下,发现远程登入后运行这个程序,它任务管理器上显示的会话ID是0,而不是我当前登入的1

#3


通过别进程来查找貌似也不行,我查看了下winlogon.exe、explorer.exe都是有几个登入账号就有几个这个进程,这样又如何区分到底哪个是我目前正在登入的这个会话的。。。
郁闷啊,谁知道的告诉我下,感激不尽

#4


该回复于2010-12-03 13:24:32被版主删除

#5


没有人知道的吗

#6


这么久了,咋就没人回答勒

#7


该回复于2012-03-28 15:12:23被版主删除

#8


WTSQuerySessionInformation得到会话的用户名,然后比较

#9


引用 8 楼  的回复:
WTSQuerySessionInformation得到会话的用户名,然后比较


请问下跟谁进行比较,当前登入用户名这么获得

#10


你登录的用户自己还不知道?

#11


引用 10 楼  的回复:
你登录的用户自己还不知道?


我的意思是说我的应用程序是在2003机子上的,我现在远程登入了2003去打开那个程序,用啥API能获得我现在登入的这个用户,2003上可能同时有好多的机子在连接。

#12


好久的问题了,有谁可以解答下的吗??

#13


ProcessIdToSessionId可获得当前进程的会话id

#1


该回复于2010-12-03 11:37:22被版主删除

#2


查了下GetCurrentProcessId,但是关键是我的程序是服务程序,它的用户名是system的
我差了下,发现远程登入后运行这个程序,它任务管理器上显示的会话ID是0,而不是我当前登入的1

#3


通过别进程来查找貌似也不行,我查看了下winlogon.exe、explorer.exe都是有几个登入账号就有几个这个进程,这样又如何区分到底哪个是我目前正在登入的这个会话的。。。
郁闷啊,谁知道的告诉我下,感激不尽

#4


该回复于2010-12-03 13:24:32被版主删除

#5


没有人知道的吗

#6


这么久了,咋就没人回答勒

#7


该回复于2012-03-28 15:12:23被版主删除

#8


WTSQuerySessionInformation得到会话的用户名,然后比较

#9


引用 8 楼  的回复:
WTSQuerySessionInformation得到会话的用户名,然后比较


请问下跟谁进行比较,当前登入用户名这么获得

#10


你登录的用户自己还不知道?

#11


引用 10 楼  的回复:
你登录的用户自己还不知道?


我的意思是说我的应用程序是在2003机子上的,我现在远程登入了2003去打开那个程序,用啥API能获得我现在登入的这个用户,2003上可能同时有好多的机子在连接。

#12


好久的问题了,有谁可以解答下的吗??

#13


ProcessIdToSessionId可获得当前进程的会话id