windows编程->进程函数
来源:互联网 发布:网络剧拍摄成本 编辑:程序博客网 时间:2024/06/05 16:53
与进程相关的API
1、创建进程
BOOL CreateProcess(
PCTSTR psApplicationName, //可执行文件的名字
PTSTR pszCommandLine, //命令行字符串
PSECURITY_ATTRIBUTES psaProcess, //进程对象的安全性
PSECURITY_ATTRIBUTES psaThread, //线程对象的安全性
BOOL bInheritHandles, //句柄可继承性
DWORD fdwCreate, //标识符(优先级)
PVOID pvEnvironment, //指向环境字符串
PCTSTR pszCurDir, //子进程当前目录
PSTARTUPINFO psiStartInfo,
PPROCESS_INFORMATION ppiProcInfo); //进程线程句柄及ID
2、打开进程
HANDLE OpenProcess(
DWORD dwDesiredAccess, //访问安全属性
BOOL bInheritHandle, //继承属性
DWORD hProcessId); //进程ID
注:获取hPronessId指定的进程的内核对象的句柄
3、终止进程
(1)、主线程的进入点函数返回
(2)、进程自己终止自己
VOID ExitProcess(
UINT fuExitCode); //退出代码
(3)、终止自身进程或其他进程
BOOL TerminateProcess(
HANDLE hProcess, //进程句柄
UINT fuExitCode); //退出代码
4、获取进程的可执行文件或DLL对应的句柄
HMODULE GetModuleHandle(
PCTSTR pszModule); //模块名称
注:当参数传NULL时获取的是进程的地址空间中可执行文件的基地址。
5、获取与指定窗口关联在一起的一个进程和线程标识符
HANDLE GetWindowThreadProcessId(
HWND hWnd, //窗口句柄
LPDWORD lpdwProcessId); //与该窗口相关的进程ID
6、获取进程的运行时间
Bool GetProcessTimes(
HANDLE hProcess, //进程句柄
PFILETIME pftCreationTime, //创建时间
PFILETIME pftExitTime, //退出时间
PFILETIME pftKernelTime, //内核时间
PFILETIME pftUserTime); //用户时间
注:返回的时间适用于某个进程中的所有线程(甚至已经终止运行的线程)。
7、获取当前进程的一个伪句柄
HANDLE GetCurrentProcess();
注:该函数获取当前进程的伪句柄,通常情况值为-1,只能标识当前进程内核对象,
可以复制,但不可继承。不必调用CloseHandle()函数来关闭这个句柄。
8、将进程的伪句柄转换为实句柄
HANDLE DuplicateHandle(
GetCurrentProcess(),
GetCurrentProcess(),
GetCurrentProcess(),
&hProcess,
0,
FALSE ,
DUPLICATE_SAME_ACCESS);
9、获取当前进程ID
DWORD GetCurrentProcessId();
10、获取进程优先级
DWORD GetPriorityClass(
HANDLE hProcess);
11、修改进程的优先级类
BOOL SetPriorityClass(
HANDLE hProcess, //进程句柄
DWORD fdwPriority); //相对进程优先级
注1:相对线程优先级
实时: REALTIME_PRIORITY_CLASS
高: HIGH_PRIORITY_CLASS
高于正常; ABOVE_NORMAL_PRIORITY_CLASS
正常: NORMAL_PRIORITY_CLASS
低于正常: BELOW_NORMAL_PRIORITY_CLASS
空闲: IDLE_PRIORITY_CLASS
注2:只要拥有进程的句柄和足够的权限,就能够修改系统中运行的任何进程的优
先级类。
12、获取进程句柄计数
BOOL GetProcessHandleCount(
HANDLE hProcess, //句柄
PDWORD pdwHandleCount); //句柄计数
13、获取环境块
DWORD GetEnvironmentVariable(
LPCTSTR lpName, //环境变量的名字
LPTSTR lpValue, //存放返回字符串的缓冲区
DWORD cchValue); //缓冲区的大小
注:返回值为返回字符串的长度,当缓存不足时返回所需字符串的长度
14、设置环境块
BOOL SetEnvironmentVariable(
LPCTSTR lpName, //环境变量的名字
LPCTSTR lpValue); //存放变量值字符串的缓冲区
1、创建进程
BOOL CreateProcess(
PCTSTR psApplicationName, //可执行文件的名字
PTSTR pszCommandLine, //命令行字符串
PSECURITY_ATTRIBUTES psaProcess, //进程对象的安全性
PSECURITY_ATTRIBUTES psaThread, //线程对象的安全性
BOOL bInheritHandles, //句柄可继承性
DWORD fdwCreate, //标识符(优先级)
PVOID pvEnvironment, //指向环境字符串
PCTSTR pszCurDir, //子进程当前目录
PSTARTUPINFO psiStartInfo,
PPROCESS_INFORMATION ppiProcInfo); //进程线程句柄及ID
2、打开进程
HANDLE OpenProcess(
DWORD dwDesiredAccess, //访问安全属性
BOOL bInheritHandle, //继承属性
DWORD hProcessId); //进程ID
注:获取hPronessId指定的进程的内核对象的句柄
3、终止进程
(1)、主线程的进入点函数返回
(2)、进程自己终止自己
VOID ExitProcess(
UINT fuExitCode); //退出代码
(3)、终止自身进程或其他进程
BOOL TerminateProcess(
HANDLE hProcess, //进程句柄
UINT fuExitCode); //退出代码
4、获取进程的可执行文件或DLL对应的句柄
HMODULE GetModuleHandle(
PCTSTR pszModule); //模块名称
注:当参数传NULL时获取的是进程的地址空间中可执行文件的基地址。
5、获取与指定窗口关联在一起的一个进程和线程标识符
HANDLE GetWindowThreadProcessId(
HWND hWnd, //窗口句柄
LPDWORD lpdwProcessId); //与该窗口相关的进程ID
6、获取进程的运行时间
Bool GetProcessTimes(
HANDLE hProcess, //进程句柄
PFILETIME pftCreationTime, //创建时间
PFILETIME pftExitTime, //退出时间
PFILETIME pftKernelTime, //内核时间
PFILETIME pftUserTime); //用户时间
注:返回的时间适用于某个进程中的所有线程(甚至已经终止运行的线程)。
7、获取当前进程的一个伪句柄
HANDLE GetCurrentProcess();
注:该函数获取当前进程的伪句柄,通常情况值为-1,只能标识当前进程内核对象,
可以复制,但不可继承。不必调用CloseHandle()函数来关闭这个句柄。
8、将进程的伪句柄转换为实句柄
HANDLE DuplicateHandle(
GetCurrentProcess(),
GetCurrentProcess(),
GetCurrentProcess(),
&hProcess,
0,
FALSE ,
DUPLICATE_SAME_ACCESS);
9、获取当前进程ID
DWORD GetCurrentProcessId();
10、获取进程优先级
DWORD GetPriorityClass(
HANDLE hProcess);
11、修改进程的优先级类
BOOL SetPriorityClass(
HANDLE hProcess, //进程句柄
DWORD fdwPriority); //相对进程优先级
注1:相对线程优先级
实时: REALTIME_PRIORITY_CLASS
高: HIGH_PRIORITY_CLASS
高于正常; ABOVE_NORMAL_PRIORITY_CLASS
正常: NORMAL_PRIORITY_CLASS
低于正常: BELOW_NORMAL_PRIORITY_CLASS
空闲: IDLE_PRIORITY_CLASS
注2:只要拥有进程的句柄和足够的权限,就能够修改系统中运行的任何进程的优
先级类。
12、获取进程句柄计数
BOOL GetProcessHandleCount(
HANDLE hProcess, //句柄
PDWORD pdwHandleCount); //句柄计数
13、获取环境块
DWORD GetEnvironmentVariable(
LPCTSTR lpName, //环境变量的名字
LPTSTR lpValue, //存放返回字符串的缓冲区
DWORD cchValue); //缓冲区的大小
注:返回值为返回字符串的长度,当缓存不足时返回所需字符串的长度
14、设置环境块
BOOL SetEnvironmentVariable(
LPCTSTR lpName, //环境变量的名字
LPCTSTR lpValue); //存放变量值字符串的缓冲区
0 0
- windows编程->进程函数
- 创建进程CreateProcess函数----windows 核心编程
- Windows核心编程 进程--CreateProcess函数 终止进程和子进程 进程的权限
- 创建进程CreateProcess函数---------《windows核心编程》读书笔记(3)
- windows核心编程--进程
- Windows多进程编程
- windows核心编程--进程
- Windows核心编程:进程
- windows 核心编程(进程)
- 《Windows核心编程》进程
- Windows核心编程 - 进程
- Windows多进程编程 .
- Windows多进程编程
- windows多进程编程
- windows编程->进程获取
- windows编程->进程创建
- Windows多进程编程
- windows核心编程-进程
- jeecms 2012 源码分析(7) web.xml分析
- nyoj 51 管闲事的小明
- lamp环境搭建
- jeecms 2012 源码分析(8) 相关配置文件分析
- c++ primer plus(第6版)中文版 第六章编程练习答案
- windows编程->进程函数
- NYOJ—303—序号互换
- C++第9周(春)项目1 - 复数类
- Zynq 上的OpenCV加速学习
- hdu 4727 The Number Off of FFF(遍历)
- 关于打印机 —— DEVCAPS2 程序代码分析
- nefu 681 Friends number 神打表。。。。
- hadoop cdh4.5 hdfs 配置文件
- BMP文件格式详解