//扫描进程列表,获得进程名为 ConsoleApplication2.exe的进程句柄B,把当前进程A的伪
//句柄传递给B,在B进程中关闭它
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <tlhelp32.h>
#include <process.h>
using namespace std;
#pragma warning(disable:4996)
HANDLE Get(wstring tcExeName)
{ HANDLE hTool = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, GetCurrentProcessId()); PROCESSENTRY32 pe; memset(&pe, 0, sizeof(pe)); pe.dwSize = sizeof(pe); Process32First(hTool, &pe); while (Process32Next(hTool, &pe)){ if(wcsicmp(pe.szExeFile , tcExeName.c_str()) == 0){ return OpenProcess(PROCESS_ALL_ACCESS, 0, pe.th32ProcessID); } } return NULL;
}
int _tmain()
{ HANDLE hProcess = NULL; DuplicateHandle(GetCurrentProcess(), GetCurrentProcess(), Get(L"ConsoleApplication2.exe"), &hProcess, 0, 0, DUPLICATE_SAME_ACCESS); while(1){//一直运行,等待被关闭} return 0;
}
进程B:
#include "stdafx.h"
#include <windows.h>
#include <iostream> using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ cout<<"请输入原始句柄"<<endl; HANDLE hProcess = NULL; cin>>hProcess; DWORD dwExitCode = 0; GetExitCodeProcess(hProcess, &dwExitCode); TerminateProcess(hProcess, dwExitCode); return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/qq76211822/p/4712041.html

DuplicateHandle伪句柄与实句柄的应用二相关推荐

  1. DuplicateHandle 伪句柄 与 实句柄的应用

    如果把GetCurrentThread()返回值传递给一个HANDLE句柄,用它进行ResumeThread,结果肯定不是我们想要的.下面的例子详细描述了伪句柄的调用结果: #include &quo ...

  2. DuplicateHandle GetCurrentProcess 实句柄 伪句柄

    GetCurrentProcess得到得到的称之为"伪句柄" 只是一个标识,你可以发现,其实就是返回$FFFFFFFF, 每个进程得句柄都是一样得,只是实用于进程内部得使用. 如果 ...

  3. Windows句柄表学习笔记 —— 句柄表全局句柄表

    Windows句柄表学习笔记 -- 句柄表&全局句柄表 句柄表 实验一:在WinDbg中查看句柄表 第一步:打开一个Win32窗口程序 第二步:编译并运行以下代码 第三步:查看运行结果 第四步 ...

  4. matlab 子函数句柄,matlab-函数句柄程序.ppt

    匿名函数可以使用工作空间的变量例如创建函数f(x,y)=x^2+y^3 >> p=2; >> q=3; >> f=@(x,y) x^p+y^q f = @(x,y ...

  5. Matlab自学笔记:句柄、函数句柄、图像句柄(概念、用法、原理和区别)

    句柄的概念 今天看交流群里在讨论句柄是什么意思,我觉得这是一个很好话题,浅述己见,欢迎交流: 1 首先说,a=1,这里a是一个变量,它的值简单明了,就是1,计算a+1,不用多说,大家立刻明白,结果是2 ...

  6. 实训课教案二:计算机软件安装初步

    实训课教案二:计算机软件安装初步 实训内容:计算机操作系统安装之前的 CMOS设置和磁盘分区格式化 实训课时:2课时 实训地点:计算机组装与维护实验室 实训目的: 1.掌握CMOS的基本设置. 2.能 ...

  7. VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的简介、案例应用之详细攻略

    VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的简介.案例应用之详细攻略 目录 调用SolidWorks功能简介 1.宏录制步骤 (1) ...

  8. 关于DuplicateHandle() 转换伪句柄成真实句柄值的疑问

    参考:http://topic.csdn.net/u/20100806/09/f89294ac-fcf7-4a05-bb00-8480c3793ecb.html

  9. linux socket句柄泄露,socket句柄泄漏问题的定位: losf和strace的联合使用!

    最近遇到一个socket句柄泄漏的问题, 我们来简要说说如何定位: 1.  确定哪个进程在泄漏, 可以用命令 lsof -n|awk '{print $2}'| sort | uniq -c | so ...

最新文章

  1. python基础算法-归并排序
  2. python3下载手机安卓版-QPython3下载
  3. Linux MISC 驱动实验
  4. lua面向对象封装及元表(metatable)性能测试
  5. mysql 5.6.19 linux_MySQL 5.6.19升级到 5.7.9 步骤记录
  6. oracle 由32位迁移到64位的问题
  7. java day02 【数据类型转换、运算符、方法入门】
  8. php.ini修改php上传文件大小限制的方法
  9. 《Linux/UNIX OpenLDAP实战指南》——1.2 OpenLDAP目录架构
  10. cs6导入库闪退 flash_flash cs6源文件怎么修复,导入老跳出意外格式,我是用flash cs6做的。我还有一半没有导出 swf 呢?...
  11. 手机测试耳机音质的软件,耳机音质测试软件有哪些
  12. FactorBook:人和小鼠转录因子chip_seq数据库
  13. 瑞萨RH850F1L用户手册(UM)CAN接口部分中文翻译(Section 19 CAN Interface (RS-CAN))
  14. ios 判断打开相机权限_iOS中判断照片和相机权限
  15. 工作被拥抱变化了该怎么办?
  16. 2021好看小说推荐(持续更新中)
  17. android动态文本框,Android文本框实现搜索和清空效果
  18. K-近邻算法(分类算法)
  19. C语言 | 文件打开关闭
  20. startup_stm32f10x_hd.S:1: Error: junk at end of line, first unrecognized character is `*‘

热门文章

  1. 跟领导提离职了,现在后悔,想留下来,怎么办?
  2. 安装keycloak
  3. Linux安装nextcloud教程,CentOS7下NextCloud搭建
  4. 重装系统自带C语言,只需简单三步,不用重装系统,也能让你的电脑焕如新生...
  5. 发布超人游戏(C语言游戏源码)
  6. Layui-collapse折叠面板:点按钮后自动折叠问题解决
  7. 解析:urllib.request(内附有官方文档)
  8. 电脑手机资料数据误删如何快速恢复?
  9. 从Azure命令行流式传输诊断跟踪日志(以及Glimpse!)
  10. 四川轻化工大学二本计算机专业,四川轻化工大学是几本_是一本还是二本大学?...