DuplicateHandle伪句柄与实句柄的应用二
#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;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
DuplicateHandle伪句柄与实句柄的应用二的更多相关文章
- DuplicateHandle 伪句柄 与 实句柄的应用
如果把GetCurrentThread()返回值传递给一个HANDLE句柄,用它进行ResumeThread,结果肯定不是我们想要的.下面的例子详细描述了伪句柄的调用结果: #include &quo ...
- DELPHI语法基础学习笔记-Windows 句柄、回调函数、函数重载等(Delphi中很少需要直接使用句柄,因为句柄藏在窗体、 位图及其他Delphi 对象的内部)
函数重载重载的思想很简单:编译器允许你用同一名字定义多个函数或过程,只要它们所带的参数不同.实际上,编译器是通过检测参数来确定需要调用的例程.下面是从VCL 的数学单元(Math Unit)中摘录的一 ...
- java方法句柄-----2.方法句柄的获取、变换、特殊方法句柄
目录 1.获取方法句柄 1.1查找构造方法.一般方法和静态方法的方法句柄 1.2 查找类中的特殊方法(类中的私有方法) 1.3 查找类中静态域和一般域 1.4 通过反射API得到的Constructo ...
- java方法句柄-----1.方法句柄类型、调用
目录 方法句柄 1.方法句柄的类型 1.1MethodType类的对象实例的创建 1.1.1 通过指定参数和返回值的类型来创建MethodType.[显式地指定返回值和参数的类型] 1.1.2 通过静 ...
- java方法句柄-----3.方法句柄的实现接口
目录 1.使用方法句柄实现接口 1.使用方法句柄实现接口 2.3节介绍的动态代理机制可以在运行时为多个接口动态创建实现类,并拦截通过接口进行的方法调用.方法句柄也具备动态实现一个接口的能力.这是通 ...
- .NET MVC4 实训记录之二(扩展WebSecurity模型下的UserProfile表)
使用VS2013创建MVC4项目后,自动生成的代码中默认使用WebSecurity模型创建用户管理,生成以下数据库:
- disruptor实操作手冊(二)
多消费者场景 上一篇文章介绍了怎样构建一个简单的disruptorproject之后.应该有相当一部分客官骂娘了,确实这种范例在其他地方多的是. 从这篇開始,介绍一些不一样的东西. 一,多个消费者: ...
- k8s搭建实操记录干货二(node)
#注:172.16.110.111为master,172.16.110.112\114为node1\node2(kubeadm join部分要等master完成后手工操作,其它可执行本脚本一键安装) ...
- [转]Windows多进程编程
转自:http://blog.csdn.net/bxhj3014/article/details/2082255 一.进程的概念 进程是是一个正在运行的程序的实例(飘---),是系统分配资 ...
随机推荐
- bitcoin01
bitcoin, blockchain 本文只是初步表面认识比特币的笔记... 详细信息请看相关链接. 比特币除了耗电,耗硬盘存储空间,还有无法预测,无法控制的风险. 1. Satoshi_Nakam ...
- JDBC--处理事务
1.事务是指一组逻辑操作单元,使数据从一种状态转换到另一种状态. 2.事务的四个属性: --1)原子性:事务是一个不可分割的工作单位,事务中的操作要么都发生要么都不发生: --2)一致性:事务必须是数 ...
- Python dir和vars的区别
dir()和vars()的区别就是 dir()只打印属性(属性,属性......) 而vars()则打印属性与属性的值(属性:属性值......) ex. >> a='aaaaaaaaaa ...
- jQuery新的事件绑定机制on()示例应用
投稿:whsnow 字体:[增加 减小] 类型:转载 从jQuery1.7开始,jQuery引入了全新的事件绑定机制,on()和off()两个函数统一处理事件绑定,下面通过示例为大家介绍下 ...
- 使用Hibernate+MySql+native SQL的BUG,以及解决办法
本来是mssql+hibernate+native SQL 应用的很和谐 但是到了把mssql换成mysql,就出了错(同样的数据结构和数据). 查询方法是: String sql = " ...
- Hive的原生部署方式
一.Hive的部署 1.官方文档 https://cwiki.apache.org/confluence/display/Hive/GettingStarted 2.前提条件 需要安装JDK1.7之上 ...
- 二十四 Redis消息订阅&事务&持久化
Redis数据类型: Redis控制5种数据类型:String,list,hash,set,sorted-set 添加数据,删除数据,获取数据,查看有多少个元素,判断元素是否存在 key通用操作 JR ...
- 【Winform】键 盘 事 件
private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e) { , (, (, (, ( }; //回车 Backsp ...
- Windows环境下的32位汇编语言程序设计
一个逆向的告诉我可以尝试学一下8086处理器,再回头看一看自己学过的会有提高学呗,8086处理器怎么学....然后就学了8086的汇编, 好友就分享了琢石成器——Windows环境下的32汇编语言设计 ...
- 007.Oracle数据库 , 使用%进行模糊查询
/*Oracle数据库查询日期在两者之间*/ SELECT PKID, OCCUR_DATE, ATA FROM LM_FAULT WHERE ( ( OCCUR_DATE >= to_date ...