使用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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql如何获取句柄_关于获取进程句柄的问题相关推荐

  1. java pid 获取句柄_获取进程pid、根据进程pid获取线程pid、获取线程进程句柄

    ======================================= 获取进程pid ======================================= #include &qu ...

  2. 【MATLAB】基本绘图 ( 句柄值 | 对象句柄值获取 | 创建对象时获取句柄值 | 函数获取句柄值 | 获取 / 设置 对象属性 | 获取对象属性 )

    文章目录 一.对象句柄值获取 1.句柄值 2.创建对象时获取句柄值 3.函数获取句柄值 4.获取 / 设置 对象属性 二.获取对象属性 1.获取 线 对象属性 2.获取 坐标轴 对象属性 一.对象句柄 ...

  3. 获取内存_如何获取一个进程所占用的内存

    推荐观看: BATJ面试官最喜欢问的:多线程.线程并发面试题详解(volatile+ThreadLocal+Sleep)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili. ...

  4. java获取发件人_如何获取发件人outlook / Exchange的SMTP地址

    我试图在outlook插件中获取发件人的SMTP地址 . 当我按照MSDN中的示例(如this one here)时,这可以正常工作: private void GetSMTPAddressForRe ...

  5. java在天猫获取图片_怎么获取天猫商品主图图片?

    #技巧#快速打开商品图片 天猫商品链接前辍+商品ID 前辍:https://detail.tmall.com/item.htm?id= 商品ID:599570818108 #技巧#快速获取商品页面图片 ...

  6. java radiobutton获取信息_如何获取JRadioButton的文本值

    实现像你想要的设计(我认为)的关键是使用阵列最大限度的力量.例如,您可以拥有一个包含JRadioButton文本的2维String数组和一个ButtonGroups的1维数组,然后可以轻松设置GUI并 ...

  7. 公众号jdk 获取手机号_如何获取公众号推文封面图

    曾经有一张好看的图片摆在我的眼前,我却没能保存,等到失去的时候我才后悔莫及. 如果上天能够给我一个再来一次的机会,我会对那张图片说三个字: 我,要,你-- 现在大部分使用智能手机的小伙伴们,一定都关注 ...

  8. mysql获取时间戳_服了!阿里Mysql三位封神专家总结1200多页性能优化的千金良方...

    MYSQL(关系型数据库管理系统) MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应 ...

  9. mysql sql注入怎么获取数据_手把手教你通过SQL注入盗取数据库信息

    目录数据库结构 注入示例判断共有多少字段 判断字段的显示位置 显示登录用户和数据库名 获取所有数据库名 获取对应数据库的表 获取对应表的字段 获取所有的用户密码 我们都是善良的银!一生戎码只为行侠仗义 ...

最新文章

  1. CGpoint,CGSize,CGRect,NSRange
  2. CentOS升级Python2到Python3
  3. 脐带血要不要保存?看了你就明白!
  4. jQeury的日期时分秒生成器插件,使用jQuery的匿名函数,静态方法的使用
  5. [OS复习]进程互斥与同步2
  6. flex4 s:Datagrid s:typicalItem
  7. php提交多条数据,tpphp一个表单提交多个需要循环的数据怎么处理
  8. java扫描指定package注解_java随笔-扫描使用指定注解的类与方法
  9. 揭开Vmware 虚拟软件层的秘密
  10. php读取模板生成静态功能,php 生成静态页面的办法与实现代码详细版
  11. AMD CPU驱动被曝漏洞,可使 KASLR崩溃、密码泄露
  12. oracle和mysql数据实时同步_FileYee文件实时同步备份软件,再不怕数据丢失
  13. 如何利用ansible callback插件对执行结果进行解析
  14. 海康威视多摄像头视频实时采集——OpenCV显示
  15. 小度wifi当无线网卡
  16. 【nmap+masscan】各自优缺点,快速上手综合使用
  17. 干货!手把手教你搭建高可用架构
  18. MATLAB程序设计与应用刘卫国(第三版)课后实验答案——12
  19. html中submit和button的区别(总结)
  20. vivado中利用ILA抓取信号的教程

热门文章

  1. 睡袋拆掉_拯救“夜醒”——睡袋如何挑选,学问这么大?主要看tog
  2. 简单实现vue验证码60秒倒计时功能
  3. linux 查看强制位,linux强制位与冒险位
  4. 用python批量下载网络图片大全_实战干货:用 Python 批量下载百度图片!
  5. python发html邮件_python 发送html邮件
  6. SAFE: Similarity-Aware Multi-Modal Fake News Detection-学习笔记
  7. git工作区和缓存区概念理解
  8. 仅限iE浏览器导出WORD
  9. ROS:使用ubuntuKylin17.04安装ROS赤xi龟
  10. iOS探索:Block解析浅谈