- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
假设我在WinSta0中创建了两个桌面D1和D2,D2有一个窗口B。
我的问题是:
属于D1的线程能否通过GetWindowText(hwnd for B, ....)获取窗口B的标题文本?
最佳答案
层次结构是 Session => Window Station => Desktop => Thread => window。当您使用服务时, session 很重要,它们在隔离的 session 0 中运行。每个 session 至少有 WinSta0 作为交互式窗口站。 session 0 有额外的服务。
一个窗口站有多个桌面,至少是您通常与之交互的默认桌面和 Winlogon 桌面,一个用于登录和屏幕保护程序的安全桌面。加上您创建的其他桌面,例如您的 D2 桌面。
一个桌面只有一个桌面堆,其中存储了窗口对象。每个 HWND 在该堆中都是唯一的。您将需要 GetThreadDesktop() 跳回层次结构并从已知线程返回到它创建窗口的桌面。 EnumDesktopWindows() 获取该桌面拥有的顶层窗口。
获取线程 ID 通常是一个障碍,您至少需要了解一些有关进程的信息。您可以从中枚举该进程拥有的线程,例如使用 CreateToolhelp32Snapshot()。
这将为您提供桌面句柄。但 GetWindowText 只能使用 D1 句柄,您需要调用 SetThreadDesktop() 才能切换到 D2。
关于windows - HWND在窗口站中是独一无二的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18158780/
前不久,哔哩哔哩(一般常称为 B 站)发布了一篇文章《2021.07.13 我们是这样崩的》,详细回顾了他们在 2021.07.13 晚上全站崩溃约 3 小时的至暗时刻,以及万分紧张的故障定位与恢复过
想象一下这种情况,周围有一些智能手机和计算机,它们的 WiFi 适配器(无线适配器)打开,但没有必要连接到网络。 有没有办法通过 Linux 机器查看 MAC 地址? 任何见解表示赞赏。 最佳答案 断
我无法创建新的 Window Station 来运行我的应用程序 int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { wprintf(L"
在 Conda 环境中安装包后,我想对该包中的代码进行一些更改。 在哪里可以找到包含已安装包的 site-packages 目录? 我有 Anaconda Python 2.7 base 发行版,但找
今天去改了matplotlib的配置。搜索 matplotlibrc 发现我有两个: 查看site-packages 文件夹,我发现很多包的名称中都有波浪号: ~klearn 是 sklearn ,但
我是一名优秀的程序员,十分优秀!