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

.版本 2.子程序 _按钮1_被单击, , , 运行
.局部变量 路径, 文本型' 运行 (“calc.exe”, 假, )
' 执行 (#打开文件, “calc.exe”, , , )
' 运行 (“D:\游戏\剑侠\剑侠情缘网络版\gamefree.exe”, 假, )
' 执行 (#打开文件, “D:\游戏\剑侠\剑侠情缘网络版\gamefree.exe”, , , )
路径 = “D:\游戏\剑侠\剑侠情缘网络版\gamefree.exe”
' ' 改变目录的作用,相当于是dos的cd,一个作用就是判断路径是否存在,第二个作用就是进入这个路径
' 改变目录 (取文本左边 (路径, 倒找文本 (路径, “\”, , 假)))
' 运行 (路径, 假, )
进程_创建 (路径, )

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教程进程创建

511遇见易语言API模块进程创建CreateProcess相关推荐

  1. 易语言取java路径模块,511遇见易语言API模块进程创建CreateProcess

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

  2. 511遇见易语言API模块线程创建许可证(InitializeCriticalSection)

    许可证是易语言特有的一次词语,我们首先了解一下许可证的作用,务必指定什么时候使用许可证,在那个地方使用许可证.易语言多线程许可证的几点理解 1.许可证的添加一般是子程序变量或者是全局变量 2.一般用许 ...

  3. 511遇见易语言API模块进程ID取窗口句柄

    通过进程ID取得该进程的窗口句柄,超时的时候返回 0 511遇见易语言模块API教程 FindWindowExA .版本 2.DLL命令 FindWindowExA, 整数型, "user3 ...

  4. 511遇见易语言API模块视频教程进程取ID数组

    本课是完成大漠多线程的必须写封装的命令,因为线程我们要同时获取多个窗口的句柄,那么我们可以先获取多个窗口的进程ID数组,再根据进程ID分别获取窗口句柄. 视频链接 511遇见易语言模块API教程 思路 ...

  5. 511遇见易语言API模块制作进程取程序路径

    易语言API模块制作进程取程序路径,提高进程的PID获取程序的所在路径. 视频链接: 511遇见易语言模块API教程 进程_取程序路径 1.CreateToolhelp32Snapshot 快照句柄 ...

  6. 511遇见易语言API模块线程初始化com库(CoInitialize)

    首先了解一下com组件,这样我们才能明白初始化com库的作用,用到两个API:CoInitialize,CoInitializEX 一.什么是COM组件 1.COM是Component Object ...

  7. 511遇见易语言API模块通过进程名获取进程句柄

    上节课通过进程名称获取进程ID,然后再通过进程ID来获取窗口句柄,本课直接通过进程名称来获取窗口句柄,其实是对 进程_名取ID 和 进程_ID取窗口句柄 一个应用组合封装.通过进程名称取得相应的窗口的 ...

  8. 511遇见易语言API模块线程销毁TerminateThread

    线程销毁用到两个API(GetExitCodeThread)(TerminateThread) 511遇见易语言模块API教程 API 1.GetExitThread 说明 获取一个已中止线程的退出代 ...

  9. 511遇见易语言API模块删除许可证(DeleteCriticalSection)

    线程删除许可证(DeleteCriticalSection),许可证的创建,进入,退出,删除,是对应成对调用的. .版本 2.子程序 许可证调用示范 .参数 许可证, 线程许可证许可证 = 线程_创建 ...

最新文章

  1. 删除数组中指定元素_如何删除PHP数组元素键值并重新排序
  2. CSU OJ1960
  3. SSH: 使用ssh推送github代码
  4. access课程均不及格_access 第二章 查询 练习题 -
  5. K-means算法在手写体数字图像数据上的使用示例-代码详解
  6. 【2017年第3期】开放政府环境下医药公司与医生之间的价值转移
  7. 14006.xilinx-SDK在线jtag调试
  8. 雪城大学信息安全讲义 七、格式化字符串漏洞
  9. 360 n6 linux内核版本,五年26个版本:Linux系统内核全程回顾
  10. 俗语:“生不睡柳,死不睡杨”,有什么道理?
  11. 随机森林和GBDT的几个核心问题
  12. 《微积分》的本质笔记
  13. 【GPLT】【2022天梯赛真题题解】
  14. 塞规公差带图_塞规公差计算表
  15. OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)
  16. 又一篇Android Recovery的文章
  17. 屏幕录像软件使用心得
  18. live555源代码分析与代码下载链接
  19. matlab读mif文件,MATLAB将mif文件转换成coe文件(原创)
  20. timestamp变成×tamp问题

热门文章

  1. MySQL设计工厂管理数据库(Ⅰ)—表结构设计
  2. html 播放本地视频(获取磁盘文件url)
  3. CDN工作中的专用DNS域名解析访问——诺必达
  4. STM32 SPI+DMA 驱动 SRAM LY68L6400SLIT 应用笔记
  5. Linux环境下Nginx不支持中文文件名解决办法
  6. Container Station搭建个人网盘Nextcloud(Mariadb)
  7. 广义线性混合模型(GLMM)变量选择
  8. python中列表概念_详解python列表
  9. 深度神经网络:WX+b-vs-XW+b
  10. <OS Concepts> 1- Intro