511遇见易语言模块API教程进程结束和进程取自进程ID 您所在的位置:网站首页 易语言取自身进程名 511遇见易语言模块API教程进程结束和进程取自进程ID

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

2024-07-16 10:57| 来源: 网络整理| 查看: 265

当我们多线程多窗口启动游戏时,在退出时我们手动比较麻烦,可以使用进程结束一键退出。

511遇见易语言模块API教程

1、GetCurrentProcessId

511遇见

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

.版本 2 .DLL命令 GetCurrentProcessId, 整数型, "kernel32", "GetCurrentProcessId", , 获取当前进程一个唯一的标识符 当前的进程标识符(进程_取自进程ID)

2、TerminateProcess

511遇见

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

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

.版本 2 .DLL命令 TerminateProcess, 整数型, "kernel32", "TerminateProcess", , 结束一个进程 非零表示成功,零表示失败。(进程_结束) .参数 hProcess, 整数型, , 指定要中断的一个进程的句柄//进程句柄 .参数 uExitCode, 整数型, , 进程的一个退出代码;通常设为 0

3、OpenProcess

511遇见

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

.版本 2 .DLL命令 OpenProcess, 整数型, "kernel32", "OpenProcess", , 将句柄返回给过程对象(进程_结束) .参数 dwDesiredAccess, 整数型, , //渴望得到的访问权限(标志) .参数 bInheritHandle, 整数型, , // 是否继承句柄 如果这个值为真,由这个过程创建的进程将继承该句柄。否则,进程不会继承这个句柄。 .参数 dwProcessId, 整数型, , // 进程标示符

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。

进程_结束

511遇见

.版本 2 .子程序 进程_结束, 逻辑型, 公开, 结束指定的进程,成功返回真,失败返回假。 .参数 进程ID, 整数型, 可空, 要结束的进程ID,为空的时候,结束的是自身的进程, .如果真 (是否为空 (进程ID)) 进程ID = 进程_取自进程ID () .如果真结束 返回 (TerminateProcess (OpenProcess (1, 0, 进程ID), 0) = 1)

进程_取自进程ID

.版本 2 .子程序 进程_取自进程ID, 整数型, 公开, 取自身进程的PID,成功返回PID,失败返回0 返回 (GetCurrentProcessId ())

参考:易语言模块API制作系列视频教程

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

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有