社区
Windows SDK/API
帖子详情
如何获取进程内所有句柄(搞定了我14xx分全送了)
XDT
2002-11-27 02:46:40
同上
...全文
151
17
打赏
收藏
如何获取进程内所有句柄(搞定了我14xx分全送了)
同上
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bcb_fans
2002-12-06
打赏
举报
回复
已经发送!!!
XDT
2002-12-06
打赏
举报
回复
WEBMASTER@JIEHUIHOTEL.COM
bcb_fans
2002-12-03
打赏
举报
回复
当不了???你在哪个地方上的网?
源代码有346K(包括Source和Bin,如果只是Source,只有160K),如果不嫌大,给出E-Mail,我发给你!(如果怕E-Mail泄漏的话,给我发短讯就可以了^_^)
XDT
2002-12-03
打赏
举报
回复
我当不了,能不能麻烦贴出来?
bcb_fans
2002-12-01
打赏
举报
回复
还没有搞定啊? 你有没有看过《Windows95编程奥秘》的源代码?里边有你需要的一切!
XDT
2002-11-30
打赏
举报
回复
UP
XDT
2002-11-30
打赏
举报
回复
谢谢楼上的,不够现在问题还没解决。先帮你吧分留着吧
bcb_fans
2002-11-30
打赏
举报
回复
//繁体中文版(友情提示:金山快译里边附带的内码转换工具不错,可以很容易地把繁体转换成简体)
http://jjhou.csdn.net/
//配书源代码
http://www.unow.net/xzxt2/list.asp?id=1083
XDT
2002-11-29
打赏
举报
回复
请问那有这本书下载,或谁知道上海什么地方有买
bcb_fans
2002-11-27
打赏
举报
回复
W9X的话,可以参考《Windows95编程奥秘》,里边有关于进程句柄表的描述,可以得到一个进程所打开的所有句柄。
bcb_fans
2002-11-27
打赏
举报
回复
2000的方法:
6、应用(2)-- 查询当前进程所拥有的对象
首先得到当前系统所有的句柄信息,然后再查询指定进程的句柄的属性。
PVOID HandleInfoBuf;
SYSTEM_HANDLE_INFORMATION *HandleInfo;
DWORD dwInfoSize = sizeof(SYSTEM_HANDLE) * 10000;
HandleInfoBuf = (PVOID)new byte[dwInfoSize];
PNTQUERYSYSTEMINFORMATION NtQuerySystemInformation;
PNTQUERYOBJECT NtQueryObject;
PNTDUPLICATEOBJECT NtDuplicateObject;
/////////////////////////////////
NtQuerySystemInformation = (PNTQUERYSYSTEMINFORMATION)GetProcAddress(GetModuleHandle( "ntdll.dll" ),"NtQuerySystemInformation");
NtQueryObject = (PNTQUERYOBJECT)GetProcAddress(GetModuleHandle("NtDll.dll"),"NtQueryObject");
NtDuplicateObject = (PNTDUPLICATEOBJECT)GetProcAddress(GetModuleHandle("NtDll.dll"),"NtDuplicateObject");
NtQuerySystemInformation(16,HandleInfoBuf,dwInfoSize,0);
HandleInfo = (SYSTEM_HANDLE_INFORMATION*)HandleInfoBuf;
for(int i=0; i < HandleInfo->dwCount; i++)
{
if(HandleInfo->HandleEntries[i].ProcessId == GetCurrentProcessId())
{
DWORD Ret;
DWORD dwRead;
DWORD dwNameBuffer;
OBJECT_BASIC_INFORMATION BasicInfo;
OBJECT_NAME_INFORMATION *NameInfo;
OBJECT_TYPE_INFORMATION *TypeInfo;
HANDLE hDupObject;
Ret = NtDuplicateObject(GetCurrentProcess(),(HANDLE)HandleInfo->HandleEntries[i].Handle,
GetCurrentProcess(),&hDupObject,
0,0,DUPLICATE_SAME_ATTRIBUTES);
if(Ret != 0)
{
Memo1->Lines->Add("Error Duplicate Object Handle.Err = " + SysErrorMessage(Ret));
continue;
}
//基本信息
Ret = NtQueryObject(hDupObject,ObjectBasicInformation,&BasicInfo,sizeof(OBJECT_BASIC_INFORMATION),&dwRead);
if(Ret != 0)
{
Memo1->Lines->Add("Error Query Object Basic.Err = " + SysErrorMessage(Ret) + " Code = " + IntToHex((int)Ret,8));
CloseHandle(hDupObject);
continue;
}
//类型信息
TypeInfo = (OBJECT_TYPE_INFORMATION *) new char[BasicInfo.TypeInformationLength + 2];
Ret = NtQueryObject(hDupObject,ObjectTypeInformation,TypeInfo,BasicInfo.TypeInformationLength + 2,&dwRead);
if(Ret != 0)
{
Memo1->Lines->Add("Error Query Object Type.Err = " + SysErrorMessage(Ret) + IntToHex((int)Ret,8));
CloseHandle(hDupObject);
continue;
}
//名字信息
dwNameBuffer = (BasicInfo.NameInformationLength == 0) ?
(MAX_PATH * sizeof (WCHAR)) : BasicInfo.NameInformationLength;
NameInfo = (OBJECT_NAME_INFORMATION *)new char[dwNameBuffer];
Ret = NtQueryObject(hDupObject,ObjectNameInformation,NameInfo,dwNameBuffer,&dwRead);
if(Ret != 0)
{
Memo1->Lines->Add("Error Query Object Name.Err = " + SysErrorMessage(Ret) + IntToHex((int)Ret,8));
CloseHandle(hDupObject);
continue;
}
//没有名字信息
if(NameInfo->Name.Length == 0)
continue;
//结果
Memo1->Lines->Add(IntToHex((int)HandleInfo->HandleEntries[i].Handle,4) +
" == " + AnsiString(TypeInfo->Name.Buffer) + " " +
" == " + AnsiString(NameInfo->Name.Buffer));
delete[] TypeInfo;
delete[] NameInfo;
CloseHandle(hDupObject);
}
}
delete[] HandleInfoBuf;
XDT
2002-11-27
打赏
举报
回复
不好意思,我忘记把题目说全了,要取得程序里面所有的伪句柄,带窗体的一个不要,昨天晚上我已经找到办法了,不过就是太慢。
我后面有14XX分准备给啊。
CloneCenter
2002-11-27
打赏
举报
回复
为什么只有 1 分???
flyingkiller
2002-11-27
打赏
举报
回复
EnumChildWindows啊,最多递归查找啦。
cbdiy
2002-11-27
打赏
举报
回复
对不起发错了。
cbdiy
2002-11-27
打赏
举报
回复
(██ 严重抗议板举把我的贴册除 ██)
一不是有色宣传,再不是政治反动思想,这是why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??vvvvvvvvv
Wnyu
2002-11-27
打赏
举报
回复
EnumWindows
EnumChildWindows
python
句柄
窗口指定位置截图_Python自动操作GUI神器PyAutoGUI
本文共3500余字,预计阅读时间12分钟,本文知乎连接:Python自动操作GUI神器PyAutoGUI,本文同步发布于silaoA的博客和微信公众号平台。 关注学习了解更多的Cygwin、Linux、Python技术。日常使用计算机,命令行程序可以说是为批量操作文件而生,但作为普通用户,最多的还是通过鼠标键盘操作形形色色的图形界面程序。试想下面一个场景:有成千上万个文件,都需要通过图形界面进行同...
(2020史上最全总结,跳槽必看),一篇带你立马
搞定
jvm内存,类加载机制全过程,java内存模型,分代垃圾回收机制,垃圾回收算法和垃圾收集器
引言 一篇带你立马
搞定
jvm内存,类加载机制全过程,java内存模型,分代垃圾回收机制,垃圾回收算法和垃圾收集器 这篇文章有点长哦,希望你耐着性子看完,然后会有所收获!!!! 背景 通过以下思维导图,进而对于Java虚拟机诞生有一个整体的认识。从上世纪90年代SUN公司开发Green项目,基于所处的软硬件环境,面临当时的困局,针对问题,进而创造出了Java语言和其运行的环境JVM。有了简易清晰的整体认识之后,如果有兴趣,可以自己搜索更多的信息了解。 思维导图的作用,就是为了帮助大家简易理解Java
Nginx生产环境配置、elasticsearch生产环境配置、rocketmq生产环境配置 (史上最全)
Nginx实现10万+并发,针对Nginx支持超高吞吐,需要优化的,主要是文件
句柄
数,TCP网络参数。RocketMQ生产环境配置,ElasticSearch生产环境配置。
一篇
搞定
Nginx功能
引言一、性能怪兽-Nginx概念深入浅出二、Nginx环境搭建三、Nginx反向代理-负载均衡四、Nginx动静分离五、Nginx资源压缩六、Nginx缓冲区七、Nginx缓存机制八、Nginx实现IP黑白名单九、Nginx跨域配置十、Nginx防盗链设计十一、Nginx大文件传输配置十二、Nginx配置SLL证书十三、Nginx的高可用十四、Nginx性能优化十五、放在最后的结尾引言早期的业务都...
你想要了解的HAProxy,一文
搞定
HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy具备媲美商用负载均衡器的性能和稳定性。
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章