易语言模块API教程进程结束和进程取自进程ID

1、GetCurrentProcessId

获取当前进程一个唯一的标识符
说明:
获取当前进程的标示符(PID)
返回值:
返回一个标示符(PID)
库文件:kernel32.dll
---------------------------------------------------------

2、TerminateProcess

基本简介
TerminateProcess函数终止指定进程及其所有线程。
函数原型
BOOL TerminateProcess(
HANDLE hProcess,//进程句柄
UINT uExitCode //进程终止码
这个叫进程退出码,一般设置为0,
他的主要作用就是,通知调用这个程序的其他程序退出的原因。
以前在dos下可能用的较多,现在windows下用的很少,
而且windows下进程间传递数据的方式很多,不太需要用这种方式。
这个代码一般没有用途,我们一般可以填入0。对于父进程(不一定是父进程,拥有该进程句柄都算)可以通过GetExitCodeThread获取进程的退出代码。这个代码用来告诉父进程程序退出原因,填入什么没有特别规定,可以自己约定,一般来说填入0表示正常退出,其他表示非正常退出。

返回值:
返回非零值代表成功。0代表失败。

3、OpenProcess

OpenProcess 函数用来打开一个已存在的进程对象,并返回进程的句柄。
1.函数原型
HANDLE OpenProcess(
DWORD dwDesiredAccess, //渴望得到的访问权限(标志)
BOOL bInheritHandle, // 是否继承句柄 如果这个值为真,由这个过程创建的进程将继承该句柄。否则,进程不会继承这个句柄。
DWORD dwProcessId// 进程标示符
);
返回值

如成功,返回值为指定进程的句柄。

如失败,返回值为空,
//声明:

{返回进程的句柄}
OpenProcess(
dwDesiredAccess: DWORD; {访问选项}
bInheritHandle: BOOL; {能否继承; True 表示能用 CreateProcess 继承句柄创建新进程}
dwProcessId: DWORD {指定进程 ID}
): THandle; {成功会返回进程句柄; 失败返回 0}

//dwDesiredAccess 可选值:
PROCESS_TERMINATE = $0001; {允许 TerminateProcess 使用进程句柄来关闭进程}
PROCESS_CREATE_THREAD = $0002; {允许 CreateRemoteThread 使用进程句柄来创建线程}
PROCESS_VM_OPERATION = $0008; {允许 VirtualProtectEx 使用进程句柄来改变进程的虚拟内存}
PROCESS_VM_READ = $0010; {允许 ReadProcessMemory 使用进程句柄从进程的虚拟内存中读取数据}
PROCESS_VM_WRITE = $0020; {允许 WriteProcessMemory 使用进程句柄向进程的虚拟内存中写入数据}
PROCESS_DUP_HANDLE = $0040; {允许 DuplicateHandle 把进程句柄当作源句柄或目标句柄进行复制}
PROCESS_CREATE_PROCESS = $0080; {默认值}
PROCESS_SET_QUOTA = $0100; {允许 SetProcessWorkingSetSize 使用进程句柄来来设置虚拟内存的上限值}
PROCESS_SET_INFORMATION = $0200; {允许 SetPriorityClass 使用进程句柄来设置进程优先级}
PROCESS_QUERY_INFORMATION = $0400; {允许 GetExitCodeProcess 或 GetPriorityClass 通过进程句柄读取进程信息}
SYNCHRONIZE = $00100000; {允许任何等待的函数使用进程句柄}
PROCESS_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or $FFF); {允许所有权限}完全访问:2035711

http://msdn2.microsoft.com/en-us/library/ms684320.aspx
http://msdn2.microsoft.com/en-us/library/ms684880.aspx

PS:

1、关系运算与逻辑运算的结果为逻辑真(True)或逻辑假(False)。当把逻辑型值转换成数值型时,False转变成0,True转变成-1。当把数值型转换成逻辑型时,0变为False,非0变为True

2、以0开头的是八进制数;以0x或0X开头的数字序列表示十六进制数。加字母 u 或 U 后缀表示无符号整数;加字母 l 或 L 后缀表示长整数
所以,应该0x80000000L是16进制的80000000,转换成10进制是2147483648。


发布日期:

所属分类: 编程 标签:  


没有相关文章!