如何在 c++builder中有顺序地启动多个外部exe
2011-11-10 16:04
288 查看
现在碰到的这样一个需求:需要把线上下载的压缩包进行解压。 解压之后运行其中的exe进行安装。
我的解决方法如下:
1.在一个线程中 调用7z.exe来解压文件夹 (因为之后安装exe的前提是解压的完成,所以这个操作要放在新创建的子线程中的)
2. 等到压缩线程执行完毕释放后,再来执行文件夹中的exe
我的解决方法如下:
1.在一个线程中 调用7z.exe来解压文件夹 (因为之后安装exe的前提是解压的完成,所以这个操作要放在新创建的子线程中的)
2. 等到压缩线程执行完毕释放后,再来执行文件夹中的exe
AnsiString strCmdLine = "D:/7-Zip/7zG.exe x d:/PS.7z -oe:/ -y"; PROCESS_INFORMATION piProcInfo; //接收进程信息的变量 STARTUPINFO siStartInfo; //进程窗口指针 // Set up members of STARTUPINFO structure. siStartInfo.cb = sizeof(STARTUPINFO); siStartInfo.lpReserved = NULL; siStartInfo.lpReserved2 = NULL; siStartInfo.cbReserved2 = 0; siStartInfo.lpDesktop = NULL; siStartInfo.dwFlags = STARTF_USESHOWWINDOW 设置为此参数后,解压将在后台运行,但是界面会卡。 siStartInfo.wShowWindow = SW_HIDE; // 创建子线程 CreateProcess( NULL, strCmdLine.c_str(), NULL, // process security attributes NULL, // primary thread security attributes 0, // handles are inherited 0, // creation flags NULL, // use parent's environment NULL, // use parent's current directory &siStartInfo, // STARTUPINFO pointer &piProcInfo); // receives PROCESS_INFORMATION ::WaitForSingleObject(piProcInfo.hProcess,INFINITE); ShowMessage("启动安装程序..."); WinExec("e:/PS/Photoshop.exe",SW_SHOWNORMAL);
相关文章推荐
- 如何使用java程序界面上的按钮启动外部的exe程序
- docker多容器通过--link互联,如何做到顺序启动?
- 如何调整Linux内核启动中的驱动初始化顺序
- 如何调整Linux内核启动中的驱动初始化顺序-驱动加载优先级
- 如何调整Linux内核启动中的驱动初始化顺序(zz)
- Android:如何启动外部应用程序?
- 如何调整Linux内核启动中的驱动初始化顺序
- 如何调整Linux内核启动中的驱动初始化顺序
- 如何在MFC中启动其它的(.exe)可执行文件
- C#如何调用外部的exe文件
- 【UE4学习】24_C++启动外部exe应用
- c++ 启动exe(外部程序)
- C#中如何使用Process.Start()使一个无gui的exe应用程序在后台启动
- c++启动外部exe程序,出现闪退或缺少东西之类的问题,而双击exe没问题的情况
- 如何调整Linux内核启动中的驱动初始化顺序
- 启动外部exe文件
- C#WindowForm程序中直接启动外部exe文件
- Android adb.exe程序启动不起来,如何处理
- Android adb.exe程序启动不起来,如何处理
- 如何在 Windows 恢复环境中使用 Bootrec.exe 工具解决和修复 Windows Vista 中的启动问题