做批处理不一定要用 .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;
}
至于你能不能拿来用,就得看缘分啦 。