C语言高手进来看看啊,遍历进程不知道哪里出错了。
while(Process32First(hProcessSnap,&pe32));
{
printf("进程名:%s
",pe32.szExeFile);
Process32Next(hProcessSnap,&pe32);
}
错在这个while,Process32First函数调用一次就可以了,后面的循环用Process32Next的返回值遍历来完成
求process详细清晰的意思及用法。
process 英 [?pr??ses] 美 [?pro?ses]
n.过程; 工序; 做事方法; 工艺流程
vt.处理; 加工; 审阅; 审核
vi.列队行进
adj.经过特殊加工(或处理)的
The selection process is based on rigorous tests petence and experience.
选拔过程是基于对能力和经验的严格测试。
I will tell you, sooner or later, all plicated process.
我迟早要把这一复杂的过程全部告诉你。
The information gathered by the telescopes will be processed puters.
通过望远镜获得的信息将由计算机进行处理。
windows编程中PROCESSENTRY32结构体中的szExeFile中sz是什么的缩写?
sz表示的是以 结尾的字符串。
s即字符串string,z即零的英文zero。
Microsoft采用匈牙利命名法来命名Windows API函数和变量。
匈牙利命名法是由Microsoft的著名开发人员、Excel的主要设计者查尔斯·西蒙尼在他的博士论文中提出来的,由于西蒙尼的国籍是匈牙利,所以这种命名法叫匈牙利命名法。
匈牙利命名法为C标识符的命名定义了一种非常标准化的方式,这种命名方式是以两条规则为基础的:
1、标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型。
下表列出了常用的数据类型的标准前缀:
在Windows里定义数据类型的一些标准前缀
前缀 数据类型
c 字符(char)
s 短整数(short)
cb 用于定义对象(一般为一个结构)尺寸的整数
n 整数(integer)
sz 以’ ’结尾的字符串
b 字节
i int(整数)
x 短整数(坐标x)
y 短整数(坐标y)
f BOOL
w 字(WORD,无符号短整数)
l 长整数(long)
h HANDLE(无符号int)
m_ 类成员变量
fn 函数(function)
dw 双字(DWORD,无符号长整数)
2、在标识符内,前缀以后就是一个或者多个第一个字母大写的单词,这些单词清楚地指出了源代码内那个对象的用途。
比如,m_szStudentName表示一个学生名字的类成员变量,数据类型是字符串型。
3、全程函数以“Afx”为前缀,所有全程变量都是以“afx”为前缀,宏不带任何特别前缀,但是全部大写。
常见的全局函数和宏有:AfxGetApp,AfxGetMainWnd,AfxMessageBox,DEBUG_NEW等。
如何得到某个正再运行的程序的进程标?并且如何通过它关闭程序?
可以给你一个参考:// 获取进程标function GetAppName(const AWindowHandle: THandle): string;var PI: DWORD; ContinueLoop:BOOL; SnapshotHandle:THandle; ProcessEntry32:TProcessEntry32;begin Result := ''; GetWindowThreadProcessId(AWindowHandle, @PI); SnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); ProcessEntry32.dwSize := Sizeof(ProcessEntry32); ContinueLoop := Process32First(SnapshotHandle,ProcessEntry32); while ContinueLoop do begin if ProcessEntry32.th32ProcessID = PI then begin Result := ProcessEntry32.szExeFile; break; end; ContinueLoop:=Process32Next(SnapshotHandle, ProcessEntry32); end; CloseHandle(SnapshotHandle);end;用以上的方法找到窗口HANDLE和PROCESSID后,用GETWINDOWTHREADPROCESS这个API函数可以得到创建窗口的PROCESSID,再和PROCESSID比较一下,可以找到!用 API TerminateProcess() 可以终止一个进程
PROCESSENTRY32的介绍
用来存放快照进程信息的一个结构体。
(存放进程信息和调用成员输出进程信息)用来 Process32First指向第一个进程信息,并将进程信息抽取到PROCESSENTRY32中。
用Process32Next指向下一条进程信息。