31 windows_31_ProcBase 进程基础

windows_31_ProcBase 进程基础

  1. // windows_31_ProcBase.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include <windows.h>
  5. #include <psapi.h> //另一块进程操作API
  6. void ProcModule( )
  7. {
  8. printf( "All Modules:\n" );
  9. //当前进程句柄
  10. HANDLE hProc = GetCurrentProcess( );
  11. //获取模块句柄
  12. HMODULE hModules[256] = { 0 };
  13. DWORD nNeed = 0;
  14. EnumProcessModules( hProc,hModules,256,&nNeed);
  15. //计算获取到句柄数量
  16. DWORD nCount = nNeed / sizeof( HMODULE );
  17. //打印句柄
  18. for (DWORD nIndex = 0; nIndex < nCount;nIndex++)
  19. {
  20. //获取各模块所对应的文件名和路径
  21. CHAR szPath[MAX_PATH] = { 0 };
  22. GetModuleFileNameEx( hProc, hModules[nIndex], szPath, MAX_PATH );
  23. printf( "\t%d: %p, %s\n", nIndex + 1, hModules[nIndex] ,szPath);
  24. }
  25. }
  26. void ProcInfo( )
  27. {
  28. //获取进程ID
  29. DWORD nID = GetCurrentProcessId( );
  30. //获取进程句柄(-1,伪句柄)
  31. HANDLE hProc = GetCurrentProcess( );
  32. printf( "Process ID: %d\n", nID );
  33. printf( "Process Handle: %p\n", hProc );
  34. //根据进程ID获取进程实际句柄
  35. hProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, nID );
  36. printf( "Process Handle: %p\n", hProc );
  37. }
  38. int _tmain(int argc, _TCHAR* argv[])
  39. {
  40. ProcInfo( );
  41. ProcModule( );
  42. return 0;
  43. }

来自为知笔记(Wiz)

时间: 2024-10-09 07:56:16

31 windows_31_ProcBase 进程基础的相关文章

【APUE】进程基础

进程标识符:非负整数 ID为0的进程通常是是调度进程,常被称为交换进程.该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为系统进程 ID为1的进程是init进程,在自举过程结束时由内核调用,此进程负责在自举内核后启动一个UNIX系统,init通常读入与系统有关的初始化文件,并将系统引导到一个状态,init进程不会终止.它是普通的用户进程,以超级用户特权运行 常用函数: pid_t getpid(void)  返回调用进程的进程id pid_t getppid(void) 返回调用进程

Linux进程基础

Linux进程基础 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等.这些最基础的计算机动作被称为指令 (instruction).所谓的程序(program),就是这样一系列指令的所构成的集合.通过程序,我们可以让计算机完成复杂的操作.程序大多数时候被存储为可执行的文件.这样一个可执行文件就像是一个菜谱,计算机可以按照菜谱作出可口的饭

Linux编程---进程基础

进程这个概念大家都很熟悉了吧...我就不多说了.. 首先是进程环境.也就是Shell相关的内容. 这都是很基础的我就挑一些我自己都不太清楚的写写. 一.命令行参数 POSIX对命令行的语法约定: 1.实用程序名至少两个,至多9个字符,且只包含小写字母和数字.(Linux应该不止9个吧.我觉得这是Unix下shell的规定). 2.选项名必须是但个字母或者数字,-W选项保留给实现扩展使用,不允许多数字选项. 3.选项和它的选项值可以作为也可以不作为分开的单词.即-ofoo和-o foo是一样的..

进程基础

进程基础 进程即正在执行的一个过程.进程是对正在运行程序的一个抽象 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内容都是围绕进程的概念展开的. 即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力.将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复用和空间多路复用+硬件上支持隔离),没有进程的抽象,现代计算机将不复存在. 理论基础 操作系统的作用: 隐藏丑陋复杂的硬件接口,提供良好的

(转载)Linux进程基础

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等.这些最基础的计算机动作被称为指令(instruction).所谓的程序(program),就是这样一系列指令的所构成的集合.通过程序,我们可以让计算机完成复杂的操作.程序大多数时候被存储为可执行的文件.这样一个可执行文件就像是一个菜谱,计算机可以按照菜谱作出可口的饭菜. 那么,程序和进程

Linux 系统应用编程——进程基础

一.Linux下多任务机制的介绍 Linux有一特性是多任务,多任务处理是指用户可以在同一时间内运行多个应用程序,每个正在执行的应用程序被称为一个任务. 多任务操作系统使用某种调度(shedule)策略(由内核来执行)支持多个任务并发执行.事实上,(单核)处理器在某一时刻只能执行一个任务.每个任务创建时被分配时间片(几十到上百毫秒),任务执行(占用CPU)时,时间片递减.操作系统会在当前任务的时间片用完时调度执行其他任务.由于任务会频繁地切换执行,因此给用户多个任务运行的感觉.所以可以说,多任务

python进程基础

# 理论知识 #操作系统基础知识 #顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象 #进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最 #古老也是最重要的抽象概念之一.操作系统的其他所有内容都是围绕进程的概念 #展开的> #ps:利用cpu自有一个,也能保证支持并发的能力.将一个单独的cpu变成多个虚拟的cpu #(多道技术:时间多路复用和空间多路复用+硬件隔离),没有进程的抽象,现代计算机将不复存在. # 必备基础理论: #操作系统的作用: #1.隐藏

107 进程基础

目录 一.操作系统背景知识 1.1 必备的理论基础: 二.什么是进程 三.进程的概念 四.操作系统引入进程概念的原因 五.进程的特征 六.进程与程序中的区别 一.操作系统背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内容都是围绕进程的概念展开的. PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力.将一个单独

Linux进程基础知识总结

                                    进程 进程表示一个正在运行的程序实例,它是分配资源的最小单位,这种说法特别官方. 进程是一个非常重要的东西,我们运行的系统中同时跑着N个进程,这些进程都在默默的工作着,我们编写的代码,经过编译.运行,也会生成一个进程.这个进程由程序代码.数据.变量(占用着系统内存).打开的文件(文件描述符)和环境组成.一般来说,对于Linux系统,系统会在进程之间共享程序代码和系统函数库,所以在任何时刻,内存中都只存在代码的一份副本. 由于