问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

易语言进程句柄和线程句柄获得问题

发布网友 发布时间:2022-04-12 13:26

我来回答

3个回答

懂视网 时间:2022-04-12 17:48

使用CreateProcess创建一个 进程 后,PROCESS_INFORMATION结构中会包含 进程 的handle,和唯一存在的 进程 ID 而后使用openprocess打开 进程 时,根据第一个参数 (dwDesiredAccess:想拥有的该 进程 访问权限 PROCESS_ALL_ACCESS //所有能获得的权限 PROCES

使用CreateProcess创建一个进程后,PROCESS_INFORMATION结构中会包含进程的handle,和唯一存在的进程ID

而后使用openprocess打开进程时,根据第一个参数

(dwDesiredAccess:想拥有的该进程访问权限
PROCESS_ALL_ACCESS //所有能获得的权限
PROCESS_CREATE_PROCESS //需要创建一个进程
PROCESS_CREATE_THREAD //需要创建一个线程
PROCESS_DUP_HANDLE //重复使用DuplicateHandle句柄
PROCESS_QUERY_INFORMATION //获得进程信息的权限,如它的退出代码、优先级
PROCESS_QUERY_LIMITED_INFORMATION /*获得某些信息的权限,如果获得了PROCESS_QUERY_INFORMATION,也拥有PROCESS_QUERY_LIMITED_INFORMATION权限*/
PROCESS_SET_INFORMATION //设置某些信息的权限,如进程优先级
PROCESS_SET_QUOTA //设置内存限制的权限,使用SetProcessWorkingSetSize
PROCESS_SUSPEND_RESUME //暂停或恢复进程的权限
PROCESS_TERMINATE //终止一个进程的权限,使用TerminateProcess
PROCESS_VM_OPERATION //操作进程内存空间的权限(可用VirtualProtectEx和WriteProcessMemory)
PROCESS_VM_READ //读取进程内存空间的权限,可使用ReadProcessMemory
PROCESS_VM_WRITE //读取进程内存空间的权限,可使用WriteProcessMemory
SYNCHRONIZE //等待进程终止

的不同,返回的句柄值是不同的,而且绝对不等于PROCESS_INFORMATION中的句柄值

当程序不关闭时,用OpenProcess获取同一个进程,每次也都能得到不同的句柄值

因为OpenProcess返回的句柄是系统临时给分配的操作句柄。当你没用CloseHandle(hand)关闭这个句柄,再次调用OpenProcess获取句柄时,他又会分配一个新的句柄给你。相当于2个句柄都指向的同一个进程

实质上这些“进程句柄”其实不是真正的进程句柄,而是进程句柄在“句柄表”中的索引(偏移),真正的进程句柄保存在进程句柄表中

若在每次句柄使用过后,关闭句柄即CloseHandle,则用OpenProcess获取同一个进程就可得到同样的句柄值

每个进程都有句柄表。该表的第一项就是进程自己的句柄,这也是为什么调用GetCurrentProcess()总是返回0x7FFFFFFF的原因。


转自:http://blog.csdn.net/lovelyloulou/article/details/5252288

热心网友 时间:2022-04-12 14:56

先用GetWindowThreadProcessId获取进程的id
OpenProcess即可打开进程句柄
CloseHandle关闭进程句柄
测试了一下qq也是可以打开它的进程句柄的,应该是你的代码错了
以下是易语言的代码:直接复制下来粘贴到易语言上:
.版本 2
.子程序 子程序1, 整数型
.参数 窗口句柄, 整数型
.局部变量 hProcess, 整数型
.局部变量 dwProcessId, 整数型
GetWindowThreadProcessId (窗口句柄, dwProcessId)
hProcess = OpenProcess (2035711, 0, dwProcessId)
CloseHandle (hProcess)
返回 (hProcess)
.版本 2
.DLL命令 CloseHandle, 逻辑型, "Kernel32", "CloseHandle"
.参数 hObject, 整数型
.DLL命令 OpenProcess, 整数型, "kernel32", "OpenProcess"
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 整数型
.参数 dwProcessId, 整数型
.DLL命令 GetWindowThreadProcessId, 整数型, "user32.dll", "GetWindowThreadProcessId"
.参数 hWnd, 整数型
.参数 lpdwProcessId, 整数型, 传址

热心网友 时间:2022-04-12 16:14

程句柄和线
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 长沙社保公积金缴费比例 长沙社保基数和公积金基数可以相差多少 长沙社保公司缴纳比例 【今日群话题】作为产品经理,去到新公司,如何尽快体现你的专业性让人信服? 聚酯纤维面料卡其色衣服是不是易脏 离散数学群的运算表怎么求 请问怎样修眉较好? 不会化眉毛,有好的办法吗? 干性皮肤怎么画眉,眉毛不脱妆,画完不到一个小时就脱没了? 眉毛脱妆了如何补妆才能更持久 眉毛脱妆怎么处理 涤纶面料的羽绒服脏了擦不干净吗 我想学习化眉毛,怎么画才会不容易脱妆 动物的脚印在雪地里画什么 床上用品材料多样,什么材料制成的床品耐脏且容易清洗? 请大家帮个忙,还有什么动物的脚印在雪地里能画什么? 100%涤纶面料的衣服很容易脏,为什么,怎么办? 眉毛太少怎么办?马上快夏天了,我害怕我画眉毛会脱妆,有没有什么自然增长... 小猪画什么脚印像什么? 高中生在职业技能培训学校毕业能拿什么证,能介绍深圳几个好点的职业培训学校? 悬赏猫如何取消任务 遇见你的猫怎么注销? 悬赏猫电脑怎么登陆? 怎么悬赏猫app登陆了点击首页和推荐没有页面显示?出现系统繁忙,请稍后再试字 我没有登录悬赏猫,为什么收到悬赏猫验证码? 悬赏猫可以qq登录吗? 悬赏猫登录要手机卡吗? 为什么我在那个悬赏猫登录的时候获取验证码一直显示,请在一分钟后重试? 悬赏猫提交任务后会显示什么 悬赏猫微信匹配不上怎么办? 发布悬赏猫任务,被用户拼单举报,该如何辩诉? 怎么申请企业?以公司名字可以申请多少个?和以公司名字办理几个手机号再用手机号注册有什么_百度问一问 你知道一个可以注册几个企业? 企业微信子账号能不能用业务员的 企业微信一个可以绑定几个? 觉得脾气反复无常的人怎么样? 为什么人的性格会反复无常 性格为什么反复无常? 为什么有些人的性格那么反复无常? 反复无常的人是什么意思阿?性格反复无常好吗???