C++ 从服务关闭进程而不终止进程

C++ 从服务关闭进程而不终止进程,c++,windows,service,C++,Windows,Service,我正在寻找一种方法,通过在系统帐户下运行的windows服务关闭在任何用户下运行的进程。我几乎什么都试过了,但除了终止进程外,我找不到任何解决方案 为什么我不能终止进程? 我不能停止进程使用托盘图标。如果我停止进程,托盘图标不会消失 我到目前为止所做的尝试 我已经尝试过使用全局事件句柄(因为子进程变得非常滞后,所以不起作用) 我还尝试使用PostMessage/SendMessage与进程通信。该解决方案不起作用,因为windows服务无法与任何用户界面交互 我发现了另一个问题(在stackov

我正在寻找一种方法,通过在系统帐户下运行的windows服务关闭在任何用户下运行的进程。我几乎什么都试过了,但除了终止进程外,我找不到任何解决方案

为什么我不能终止进程? 我不能停止进程使用托盘图标。如果我停止进程,托盘图标不会消失

我到目前为止所做的尝试

我已经尝试过使用全局事件句柄(因为子进程变得非常滞后,所以不起作用)

我还尝试使用PostMessage/SendMessage与进程通信。该解决方案不起作用,因为windows服务无法与任何用户界面交互

我发现了另一个问题(在stackoverflow上),它准确地描述了我的问题:。 这个问题没有一个好的解决方案

首先,我不使用C++来代替C语言。下一个问题是,子进程使用鼠标挂钩。因此,它运行速度非常快,没有太多开销。否则它会变得滞后,这意味着鼠标会在整个系统上滞后

那么,真的没有从windows服务关闭进程的简单解决方案吗

服务可以使用并连接到目标进程的交互式桌面,然后再向目标进程发送消息


或者,该服务可以用于在与目标进程相同的会话中运行新进程,然后该进程可以向目标进程发送消息。

您试图终止的进程,您可以控制它吗?(更改代码并重新生成)是。我可以把它换成我想要的任何东西@pythonGlobal事件对象是显而易见的解决方案,而且绝对没有理由让子进程变慢。我怀疑您未正确实施此解决方案。我刚刚尝试过。SetProcessWindowsStation不工作。我现在要试用SetThreadDesktop,但我担心这也不起作用。现在我也尝试了
SetThreadDesktop
。两者都不起作用。我只是无法访问任何用户界面。问题在于前面提到的“会话0隔离”。我必须在另一个会话中启动一个进程。我最终使用了这里描述的解决方案(请参阅ApplicationLoader::StartProcessAndBypassUAC):我确信
setProcessWindowsStation
SetThreadDesktop
仅限于与进程相关的远程桌面会话中的窗口站和桌面,因此对于Windows Vista,它们将不会帮助试图与最终用户或最终用户进程交互的服务。