如何强制应用程序(例如myapp.exe
)在Windows CE上使用其他应用程序上的C ++关闭?
情况是我之前安装的某些软件在升级到新版本时行为不正常。因此,我需要在继续更新之前终止进程(来自更新程序)。
答案 0 :(得分:2)
了TerminateProcess? (MSDN)
BOOL TerminateProcess( HANDLE hProcess,
DWORD uExitCode );
您需要HANDLE
进程,您可以使用Toolhelp32 API轻松获取该进程。可以找到它们用于枚举系统上所有进程的示例here。
答案 1 :(得分:0)
我认为ExitProcess是比TerminateProcess更系统化的方法。 ExitProcess提供干净的进程关闭,因为TerminateProcess无条件地退出进程。 ExitProcess的语法:
VOID ExitProcess(
UINT uExitCode
);
有关详细信息,请访问this链接。
这完全取决于你的应用程序如何退出。
答案 2 :(得分:0)
要做的第一件事就是发送WM_QUIT以查看它是否可以优雅地关闭。 WM_QUIT应该导致应用程序的消息泵循环退出并随后终止。这应该允许应用程序干净地清理它的资源。
如果失败,(并且只有在失败之后),那么您可以使用toolhelp APIs查找进程(使用NOHEAPS创建快照,然后迭代以使用First / Next调用找到它)并使用它终止ŤerminateProcess