ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

511遇见易语言API模块进程创建CreateProcess

2020-06-28 11:05:48  阅读:357  来源: 互联网

标签:创建 成员 路径 整数型 CreateProcess 进程 API 511 易语言


封装进程创建的原因主要是易语言自带的运行和执行命令不能启动游戏,当我们写一键启动,批量启动游戏时,便用到了进程_创建的命令。易语言里的运行(),执行()有时候并不能直接运行一些游戏,而采用进程创建才可以。如果直接使用运行,执行,需要进行以下的处理。

.版本 2

.子程序 _按钮1_被单击, , , 运行
.局部变量 路径, 文本型

' 运行 (“calc.exe”, 假, )
' 执行 (#打开文件, “calc.exe”, , , )
' 运行 (“D:\游戏\剑侠\剑侠情缘网络版\gamefree.exe”, 假, )
' 执行 (#打开文件, “D:\游戏\剑侠\剑侠情缘网络版\gamefree.exe”, , , )
路径 = “D:\游戏\剑侠\剑侠情缘网络版\gamefree.exe”
' ' 改变目录的作用,相当于是dos的cd,一个作用就是判断路径是否存在,第二个作用就是进入这个路径
' 改变目录 (取文本左边 (路径, 倒找文本 (路径, “\”, , 假)))
' 运行 (路径, 假, )
进程_创建 (路径, )
<iframe allowfullscreen="true" data-mediaembed="youku" frameborder="0" id="0OFTPr5V-1593224492335" src="https://player.youku.com/embed/XMzAyMjQ0MDU0MA=="></iframe>

511遇见易语言模块API教程

用到的API CreateProcess

WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。

函数原型

BOOL CreateProcess
(
LPCTSTR lpApplicationName,//程序路径可以是相对也可以是绝对路径
LPTSTR lpCommandLine,//启动参数可空
LPSECURITY_ATTRIBUTES lpProcessAttributes。//为空句柄不被继承
LPSECURITY_ATTRIBUTES lpThreadAttributes,// 参数为空,新进程使用默认的安全描述符
BOOL bInheritHandles,// TRUE表示允许当前进程中的所有句柄都由新建的子进程继承
DWORD dwCreationFlags,// 指定附加的、用来控制优先类和进程的创建的标志。
LPVOID lpEnvironment,// 指向一个新进程的环境块。如果此参数为空,新进程使用调用进程的环境。
LPCTSTR lpCurrentDirectory,// 这个字符串必须是一个包含驱动器名的绝对路径。
LPSTARTUPINFO lpStartupInfo,// 指向一个用于决定新进程的主窗体如何显示的STARTUPINFO结构体。
LPPROCESS_INFORMATIONlpProcessInformation//指向一个用来接收新进程的识别信息的PROCESS_INFORMATION结构体。
);

自定义数据类型

STARTUPINFO

.版本 2

.数据类型 STARTUPINFO, 公开, 进程启动信息(进程_创建)
.成员 cb, 整数型
.成员 lpReserved, 整数型
.成员 lpDesktop, 整数型
.成员 lpTitle, 整数型
.成员 dwX, 整数型
.成员 dwY, 整数型
.成员 dwXSize, 整数型
.成员 dwYSize, 整数型
.成员 dwXCountChars, 整数型
.成员 dwYCountChars, 整数型
.成员 dwFillAttribute, 整数型
.成员 dwFlags, 整数型
.成员 wShowWindow, 长整数型
.成员 cbReserved2, 长整数型
.成员 lpReserved2, 整数型
.成员 hStdInput, 整数型
.成员 hStdOutput, 整数型
.成员 hStdError, 整数型

PROCESS_INFORMATION
.版本 2

.数据类型 PROCESS_INFORMATION, 公开, 进程标识(进程_创建)
.成员 hProcess, 整数型, , , 进程句柄
.成员 hThread, 整数型, , , 线程句柄
.成员 dwProcessId, 整数型, , , 进程标识符
.成员 dwThreadId, 整数型, , , 线程标识符

命令源码

.版本 2

.子程序 进程_创建, 整数型, 公开, 返回非 0 表示成功,0表示失败
.参数 程序路径, 文本型, , 程序的路径
.参数 启动参数, 文本型, 可空
.局部变量 目录, 文本型
.局部变量 传参, STARTUPINFO
.局部变量 a, PROCESS_INFORMATION

目录 = 取文本左边 (程序路径, 倒找文本 (程序路径, “\”, , 假))
返回 (CreateProcess (程序路径, 启动参数, 0, 0, 4, 0, 0, 目录, 传参, a))

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

         易语言模块API教程进程创建

标签:创建,成员,路径,整数型,CreateProcess,进程,API,511,易语言
来源: https://blog.csdn.net/zcp528/article/details/106979367

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有