定制调试诊断工具和实用程序(4)
2006-07-20 11:42:31 来源:WEB开发网核心提示:本文假设你熟悉 Win32,DLL 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(一) 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(二) 定制调试诊断工具和实用程序&md
本文假设你熟悉 Win32,DLL
- 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(一)
- 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(二)
- 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(三)
如何通过 WTS APIs(Windows终端服务 APIs)获取进程信息
Windows XP 有一个新特性叫做“快速用户转换——Fast User Switching”,这个特性允许多个用户同时在一台机器上登陆。当一个用户登陆后,另一个用户启动的进程仍然能够运行。这个神奇的特性所倚仗的是 WTS APIs。如果你想了解更多有关 WTS 的内容,可以参考 MSJ Oct99 的一篇文章:“Windows NT和 Windows 2000 终端服务APIs介绍”,作者是 Frank Kim。
Windows XP为每一个登陆用户创建一个WTS会话(Session)。每个运行进程总是与这样一个Session关联。Windows XP的任务管理器允许你列出进程清单,不论是针对所有会话的还是仅仅针对自己的会话,任务管理器对话框的进程标签中有一个"显示所有用户的进程"复选框可以对此进行选择。(如图十一所示):
图十一 任务管理其的进程列表
如果你想了解某个进程隶属的 session ID,可以调用 kernel32.dll 输出的一个 API 函数 ProcessIdToSessionId。给定一个进程的ID,他返回相应的 session ID。有趣的是这个 API 函数不是由 wtsapi32.dll 输出的,而是出自于 kernel32.dll,前者是所有 Windows 终端服务 APIs 的输出动态库。实际上,即使 Windows 终端服务没有运行起来,Windows 2000 和 Windows XP 都将 session ID 存储在 PEB 中。
- ››调试SQL server 2008功能设置
- ››调试JavaScript错误
- ››定制个性化的对话框窗口类
- ››定制 SWT/RCP 界面:如何编写一个漂亮的 SWT/RCP ...
- ››调试和测试 Swing 代码
- ››定制基于 Visual studio 2005 平台 Windows CE(AR...
- ››定制版黑雨 blackra1n 越狱3.1.2 全系 iPhone
- ››调试集成 Java 和 C/C++ 的代码
- ››定制 Eclipse RCP 应用程序,第 1 部分: 可与 SWT...
- ››调试JavaScript脚本程序(Firefox篇)
- ››调试JavaScript/VB Script脚本程序(ASP.NET篇)
- ››调试JavaScript/VB Script脚本程序(Wscript篇)
更多精彩
赞助商链接