我有同一个用户通过多个同时会话登录到 Windows 7 站(如并发 RDP 或在站登录,然后通过 RDP)。
更新: 好的,我对这个问题的研究一直停留在这一点上(python 示例编写不太复杂的代码):
#!/usr/bin/env python
import ctypes
import ctypes.wintypes as wintypes
def enum_desktops():
GetProcessWindowStation = user32.GetProcessWindowStation
EnumDesktops = user32.EnumDesktopsW
EnumDesktopsProc = ctypes.WINFUNCTYPE(wintypes.BOOL, wintypes.LPWSTR, wintypes.LPARAM)
hwinsta = GetProcessWindowStation()
def foreach_desktop(desk_name, lparam):
print("Desktop %s"%desk_name)
return True
EnumDesktops(hwinsta, EnumDesktopsProc(foreach_desktop), desk_lparam)
此函数打印有关“默认”和“Winlogon”桌面的信息。如果我们尝试枚举窗口站,我们只会得到“ WinSta0”,而我可以看到潜在的目标进程在不同的登录会话中启动。
那么,我应该使用什么来查找目标桌面的窗口?
守护进程此时根本不是一个选项。