C++ 操作控制台(打开进程、关闭进程、执行命令)
2023-09-11 14:14:03 时间
做批处理不一定要用 .bat , C++ 也可以,所以这说明 C++ 是一个多么棒的语言 ? 错 ——
因为我懒,所以我只写成我能看懂的样子。(这里面有很多无关紧要的操作,你懂了吧)
有一点需要注意,打开文件一定不要用 system() ,这样会导致无法得到控制台返回的信息。
// 1. 打开 D:\Program Files\nox\Nox\bin\Nox.exe
STARTUPINFO si = {sizeof(si)}; // 进程在创建时的外观信息
PROCESS_INFORMATION pi; // 进程创建时的信息
si.dwFlags = STARTF_USESHOWWINDOW; // STARTF_USESHOWWINDOW :wShowWindow 成员包含其他信息
si.wShowWindow = TRUE; // 显示新建进程的主窗口
if(!CreateProcess(
NULL, // 不在此指定可执行文件的文件名
_tcsdup(TEXT("D:\\Program Files\\nox\\Nox\\bin\\Nox.exe")), // 命令行参数
NULL, // 子进程不继承新进程对象的句柄
NULL, // 子进程不继承新线程对象的句柄
FALSE, // 当前进程内句柄不被子进程继承
NULL, // 继承父进程的控制台
NULL, // 使用本进程的环境变量
NULL, // 使用本进程的驱动器和目录
&si, // 指向 STARTUPINFO 结构体的指针
&pi // 指向 PROCESS_INFORMATION 结构体的指针
)){
cout << "打开进程 Nox.exe 失败" << endl;
}
// 2. Sleep2分钟
Sleep(30000);
// 3. 执行命令:adb.exe "connect 127.0.0.1:62001"
system("adb connect 127.0.0.1:62001");
Sleep(3000);
// 4. 执行命令:adb.exe "shell am start -n io.busniess.va/io.virtualapp.home.HomeActivity"
system("adb shell am start -n io.busniess.va/io.virtualapp.home.HomeActivity");
// 5. Sleep6小时
Sleep(21600000);
// 6. 关闭相关进程
system("taskkill /f /t /im NoxVMSVC.exe");
system("taskkill /f /t /im NoxVMHandle.exe");
system("taskkill /f /t /im NoxSrv.exe");
system("taskkill /f /t /im Nox.exe");
// end. 循环
goto Begin;
getchar();
return 0;
}
至于你能不能拿来用,就得看缘分啦 。
相关文章
- c++读取文件到vector
- C/C++每日一练(20230412)
- C语言/C++常见习题问答集锦(六十九) 之最后的赢家
- Open3D(C++) 快速计算点云的法向量
- paip.c++ 进程间通信方法大总结
- VS中c++文件调用c 函数 ,fatal error C1853 预编译头文件来自编译器的早期版本号,或者预编译头为 C++ 而在 C 中使用它(或相反)
- 解答私信@被c++折磨头秃的花季美少女 //C++ 编写一个进阶版的进制转换程序,运行功能如下:请选择要输入的数字的进制(2、8、10、16):请输入该数字:请选择要转换成的进制(2、8。。。
- C++一种简单的配置文件读取(格式有限制)
- c++string 常见暴力枚举字符串
- C++11 实现的 100行 线程池
- [C++]四种方式求解最大子序列求和问题
- 关于C++ const 的全面总结
- C++ 容器:顺序性容器、关联式容器和容器适配器
- C++虚继承下的内存模型(一)
- C++中for循环的5种语法(三十四)
- VC++打开或关闭目标进程的声音(附源码)
- VC++ 获取窗口的类名和窗口所属进程线程id(附源码)
- 【C++提高】继承中的类模板语法
- C++排序的两种方式