Windows进程
一、Windows进程
1、进程
进程是一种容器,包含了应用程序实例的各种资源。
2、Windows进程的一些特点
2.1、进程中包含了执行代码等资源
2.2、进程都具有私有的地址空间
2.3、每个进程都有一个ID,标识进程
2.4、每个进程都有自己的安全属性
2.5、至少要包含一个可以执行的线程
二、进程的环境
1、环境信息的获取
LPVOID GetEnvironmentStrings(VOID); //返回值是获取到的所有环境信息
2、释放获取到的所有环境信息
BOOL FreeEnvironmentStrings(LPSTR lpszEnvironmentBlock);
例如:LPSTR pszEnv = ( LPSTR )GetEnvironmentStrings( );
FreeEnvironmentStrings( pszEnv );
3、环境变量的获取和设置
获取:DWORD GetEnvironmentVariable(LPCTSTR lpName, //变量名称
LPTSTR lpBuffer, //数据BUFF
DWORD nSize //BUFF的长度
); //返回值是获取到的字符串的长度
设置:BOOL SetEnvironmentVariable(LPCTSTR lpName, //变量名称
LPCTSTR lpValue //变量的值
);
三、进程的信息
1、进程ID和句柄
GetCurrentProcessId 获取进程的ID
GetCurrentProcess 获取进程的句柄,返回值为-1,是当前进程的伪句柄,如果想获得当前进程的实际句柄,需要使用OpenProcess函数
例如: //获取进程ID
DWORD nID = GetCurrentProcessId( );
//获取进程句柄(-1,伪句柄)
HANDLE hProc = GetCurrentProcess( );
//根据进程ID获取进程实际句柄
hProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, nID );
2、打开进程
通过使用进程ID得到进程句柄
HANDLE OpenProcess(DWORD dwDesireAccess, //访问模式
BOOL bInheritHandle, //继承标识
DWORD dwProcessId //进程ID
); //返回进程的句柄
3、获取进程的所使用的所有模块(EXE或DLL)
BOOL EnumProcessModules(HANDLE hProcess, //进程句柄
HMODULE* lphModule //模块的数组
DWORD cb, //数组的长度
LPDWORD lpcbNeeded //获取到数据的字节数
);
四 进程的使用
1 创建进程
CreateProcess 执行一个EXE可执行文件.创建一个进程以及它的主线程.
BOOL CreateProcess( LPCTSTR lpApplicationName, //应用程序路径名
LPTSTR lpCommandLine, //命令行
LPSECURITY_ATTRIBUTES lpProcessAttributes, //进程安全属性
LPSECURITY_ATTRIBUTES lpThreadAttributes, //线程安全属性
BOOL bInheritHandles, //句柄继承标识
DWORD dwCreationFlags, //创建标识
LPVOID lpEnvironment, //环境块
LPCTSTR lpCurrentDirectory, //当前目录
LPSTARTUPINFO lpStartupInfo, //启动参数
LPPROCESS_INFORMATION lpProcessInformation //进程信息
);
当进程创建成功,可以从进程信息中获取创建好的进程句柄\ID等.
2 打开进程
OpenProcess
3 结束进程
BOOL TerminateProcess( HANDLE hProcess, //进程句柄
UINT uExitCode //结束代码
); //返回值非零表示成功,0表示失败
4 等候进程结束
DWORD WaitForSingleObject( HANDLE hHandle, //等候的句柄
DWORD dwMilliseconds //等候的时间,毫秒
);
阻塞函数,当运行时,会在等候的时间的时间内,等待句柄的信号.
Windows进程的更多相关文章
- windows进程/线程创建过程 --- windows操作系统学习
有了之前的对进程和线程对象的学习的铺垫后,我们现在可以开始学习windows下的进程创建过程了,我将尝试着从源代码的层次来分析在windows下创建一个进程都要涉及到哪些步骤,都要涉及到哪些数据结构. ...
- windows进程函数试炼
实践一下windows进程相关函数: 代码如下: // test__getinformation.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h&quo ...
- 使用WMI控制Windows进程 和服务
1.使用WMI控制Windows进程 本文主要介绍两种WMI的进行操作:检查进程是否存在.创建新进行 代码如下: using System; using System.Collections.Gene ...
- 走进windows编程的世界-----windows进程
Windows进程 1 Windows进程 进程是一个容器,包括了一个应用程序实例的各种资源.Windows多任务的操作系统,因此能够同一时候运行多个进程. 2 Windows进程的 ...
- Windows进程单实例运行
场景 Windows进程单实例运行,如果有进程没有退出,继续等待,直到进程完全退出,才会进入下一个实例 HANDLE pHandle = NULL; do { pHandle = ...
- Windows进程间共享内存通信实例
Windows进程间共享内存通信实例 抄抄补补整出来 采用内存映射文件实现WIN32进程间的通讯:Windows中的内存映射文件的机制为我们高效地操作文件提供了一种途径,它允许我们在WIN32进程中保 ...
- 如何使用fiddller跟踪windows进程发送的请求20140911
总结点:如何使用fiddller跟踪windows进程发送的请求 案例如下: 需求:运维工具提出需求,对每个插件的配置文件,同步到运维中心时先加密,然后传输到运维中心解密,存储到数据库 测试分析:这个 ...
- windows 进程监控 Procmon.exe
windows 进程监控 Procmon.exe window下一个程序打开太慢,可以用此程序监控.在哪一步慢了,读取文件还是注册表. ProcessMonitor3.2 Process Monito ...
- 查看windows进程,并删除
1. 通过[任务管理器]可以查看windows进程. 有些进程不在[任务管理器]中. 2. 通过tasklist命令查看进程. 杀掉进程: epmd 进程,在停止.卸载后rabbitmq服务还在. 通 ...
随机推荐
- C蛮的全栈之路-node篇(二) 实战一:自动发博客
目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...
- hdu 1788 Chinese remainder theorem again(最小公倍数)
Problem Description 我知道部分同学最近在看中国剩余定理,就这个定理本身,还是比较简单的: 假设m1,m2,-,mk两两互素,则下面同余方程组: x≡a1(mod m1) x≡a2( ...
- 使用微信api接口开发的框架
<?php/** * 微信公众平台API */class WeixinChat{ private $token; private $appid; private $appsecret; priv ...
- 设计模式之 Observer Pattern 观察者模式
1.Subject通过一个容器保存零到多个Observer. 2.Subject通过Add,Delete方法调整Observer. 3.Subject的notifyObservers方法实际是逐个调用 ...
- Cocos2dx开发(4)——Windows环境创建Cocod2dx 3.2第一个项目HelloWorld
本文内容:cocos2dx+VS2013环境下创建项目,部分代码简析.会的朋友可以略过. 前面简单安装了几个环境,程序完全可以顺利跑起来(其他的cocos-stadio这些需要用到再装) 1.命令行形 ...
- linux安装git方法(转)
转自:http://jingyan.baidu.com/article/e9fb46e16698687521f766ec.html 以下内容亲测,确实可行. 由于我的机器是linux6.7,所以省略了 ...
- .net中String是引用类型还是值类型 以及 C#深层拷贝浅层拷贝
http://www.cnblogs.com/yank/archive/2011/10/24/2204145.html http://www.cnblogs.com/zwq194/archive/20 ...
- jquery 学习日记之选择器
看完Jquery选择器的教程视频后,对jquery的选择器有一定的认识和了解,现整理一下知识: 一.jquery基本选择器,这类比较简单,一笔带过. #id 选择器,是选择 匹配id值中的第一个元素 ...
- 数据库基本概念-oracle介绍
甲骨文公司,全称甲骨文股份有限公司是全球最大的企业软件公司,总部位于美国加利福尼亚州的红木滩.甲骨文是继Microsoft及IBM后,全球收入第三多的软件公司.甲骨文公司1989年正式进入中国市场.重 ...
- 搬瓦工vps搭建vpn
一.下载centos6一键安装包 wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/maste ...