如何退出正在运行的批处理?

如何退出正在运行的批处理?

我想在某个时候终止批处理和由它衍生的任何进程

对于这个exist Job Objects:

作业对象允许将多组进程作为一个单元进行管理。

要终止当前与作业对象关联的所有进程,请使用TerminateJobObject函数。

代码语言:javascript复制if (HANDLE hJob = CreateJobObjectW(0, 0))

{

WCHAR ApplicationName[MAX_PATH];

if (GetEnvironmentVariableW(L"ComSpec", ApplicationName, RTL_NUMBER_OF(ApplicationName)))

{

PROCESS_INFORMATION pi;

STARTUPINFOW si = { sizeof(si) };

if (CreateProcessW(ApplicationName, L"cmd /c /batch.bat",

0, 0, 0, CREATE_SUSPENDED, 0, 0, &si, &pi))

{

if (AssignProcessToJobObject(hJob, pi.hProcess))

{

ResumeThread(pi.hThread);

}

else

{

TerminateProcess(pi.hProcess, 0);

}

CloseHandle(pi.hThread);

CloseHandle(pi.hProcess);

}

}

// .. wait for something ...

TerminateJobObject(hJob, 0);

CloseHandle(hJob);

}但是,可以通过远程com调用(例如StartService)启动新进程-正式地从另一个进程启动。这当然不会在工作中,也不会被终止

相关推荐

暗黑破坏神2装备打孔教程
365bet线上网址

暗黑破坏神2装备打孔教程

📅 01-18 👁️ 5996
2014世界杯足球赛将于巴西圣保罗揭幕
365bet线上网址

2014世界杯足球赛将于巴西圣保罗揭幕

📅 11-17 👁️ 3094
荣耀畅玩5(CUN-TL00/移动4G)
asiasports365

荣耀畅玩5(CUN-TL00/移动4G)

📅 06-29 👁️ 7782