使用 CreateProcessAsUser 时等待进程退出

2023-11-21

我在用着创建进程为用户在 C# 中通过服务启动进程 我的服务需要等待进程退出,但我不知道该怎么做, 我不想检查进程列表中的进程是否存在


The 处理信息返回新创建进程的句柄(hProcess),您可以等待此句柄,当进程退出时,该句柄将发出信号。

您可以使用安全等待句柄封装句柄然后使用等待句柄.WaitOne等待进程退出。

这是包装进程句柄的方法

class ProcessWaitHandle : WaitHandle
{
  public ProcessWaitHandle(IntPtr processHandle)
  {
    this.SafeWaitHandle = new SafeWaitHandle(processHandle, false);
  }
}

然后下面的代码就可以等待句柄了

ProcessWaitHandle waitable = new ProcessWaitHandle(pi.hProcess);
waitable.WaitOne();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 CreateProcessAsUser 时等待进程退出 的相关文章

随机推荐

  • 在 Mako 中将字符串标记为安全

    我正在使用带有 Mako 模板的 Pylons 并且我想避免一直输入以下内容 h some function that outputs html n 我想以某种方式将函数或变量标记为安全 您可以在 Django 中执行此操作 这样我就不必一
  • 错误:未知选项“--no-crunch”- AAPT 错误

    我昨天下载了最新版本 r14 但在运行任何应用程序时出现此错误 ERROR Unknown option no crunch 请帮忙 我最近遇到了这个问题 但现在是solved 更新到 ADT r14 后 转到Window gt SDK M
  • YouTube 链接的正则表达式

    在我正在开发的系统中 我需要识别以下格式的 YouTube 链接 youtube youtube 网址 youtube 目前我得到了这个正则表达式 youtube http www youtube watch v a zA Z0 9 you
  • 尝试使用模拟在远程计算机上运行 PowerShell 脚本时出现“不允许请求的注册表访问”

    这是我第一次尝试从 C 应用程序执行 PowerShell 脚本 我使用 PowerShell 是因为我需要在远程计算机上执行的 exe 的输出 我能够使用 WMI 在远程计算机上运行 exe 但无法获得所需的输出 无论如何 过去一天左右我
  • 尝试 C 中的 catch 语句

    今天我在想其他语言中存在的 try catch 块 谷歌搜索了一段时间 但没有结果 据我所知 C 中没有 try catch 这样的东西 但是 有没有办法 模拟 它们呢 当然 有断言和其他技巧 但没有像 try catch 那样也能捕获引发
  • Oracle 中的布尔字段

    昨天我想向 Oracle 表添加一个布尔字段 然而 Oracle 中实际上并没有布尔数据类型 这里有人知道模拟布尔值的最佳方法吗 谷歌搜索这个主题发现了几种方法 使用一个整数 并且不要为它分配除 0 或 1 之外的任何值 使用以 Y 或 N
  • python 不接受关键字参数

    我试图让我的代码不接受关键字参数 就像某些公告也不接受关键字参数一样 但是 我无法这样做 根据我有限的理解 这是我的想法 def somefunc a b print a b somefunc 10 20 Output 10 20 现在 当
  • SQL Server - “for json path”语句返回的 JSON 字符串不超过 2984 行

    我正在尝试使用 for json path 语句在复杂且嵌套的 JSON 字符串中生成大量数据 并且我使用多个函数来创建此 JSON 字符串的不同部分 如下所示 declare queue nvarchar max select queue
  • Spinner 绑定到 IntegerProperty

    我想使用 FX8Spinner控件 但我想将源绑定到IntegerProperty int MIN 0 int MAX 5000 int STEP 500 IntegerProperty integerProperty new Simple
  • UWP 应用与 Windows 服务的通信

    我们正在修复应用程序的重新架构 并正在讨论是否可以使用 UWP 来代替普通的 WPF 应用程序 我们的应用程序需要能够访问整个文件系统和所有系统资源 这是一个问题 因为 UWP 应用程序是沙盒的 然而 我们试图通过以下方式解决这个问题 视窗
  • 如何在 folium.circle 地图 python 中的每个圆圈上添加标签

    嘿 我正在尝试将标签添加到 folium circle 地图中 但由于某些原因它不起作用 任何人都可以提供帮助 这是我的地图脚本 import folium Make an empty map m folium Map location 5
  • 同步块可以比 Atomics 更快吗?

    假设以下两个计数器实现 class Counter private final AtomicInteger atomic new AtomicInteger 0 private int i 0 public void incrementAt
  • Visual Studio 2017 (.NET Core) 中的自动版本控制

    我花了几个小时的大部分时间试图找到一种在 NETCoreApp 1 1 Visual Studio 2017 中自动递增版本的方法 我知道 AssemblyInfo cs 是在文件夹中动态创建的 obj Debug netcoreapp1
  • 已编译的 iOS 应用程序 (IPA) 中的内容加密

    由于IPA结构只是一个包含编译代码和图像和音频等媒体内容的压缩文件 我如何保护内容不被他人提取和窃取 我可以在 IPA 中添加任何加密吗 这个答案提到应用程序在进入用户设备时已经加密 Apple 是否会修改提交到 App Store 的应用
  • WebRTC:确定 PeerConnection 中使用哪个 TURN 服务器

    场景 您想知道 TURN 服务器是否用于特定呼叫 以及您在创建 PeerConnection 期间提供的 TURN 服务器数组中的哪一个正在使用 现在有两个选择 Wireshark 但是当您位于公司代理后面并且 TURN 服务器位于其外部时
  • 错误:[ProxyFacade] 不是 组件。 的所有子组件都必须是

    我在 React 17 中使用 react router dom 6 0 2 我正在使用打字稿 我试图添加路线 但出现错误 未捕获的错误 ProxyFacade 不是组件 的所有子组件必须是 a 或 我不知道出了什么问题 有什么我错过的吗
  • 将媒体查询与限定选择器相结合的语法

    在我们当前的设计中 表单元素在移动设备上的样式有所不同 media screen and max width 759px form label display block float none There s more 鉴于屏幕空间有限 我
  • 是否可以使用 ImageMagick 渲染多色表情符号?

    我的文本可能包含表情符号 我想用 RMagick 将其渲染成 JPEG 图像 我也可以直接使用 ImageMagick 我只能使用 AndroidEmoji ttf 渲染单色表情符号 但如果我使用 AppleColorEmoji ttf I
  • 在Java中,为什么String是非原始数据类型?

    在Java中我们可以直接使用String声明字符串变量名称并指定其值 即使 String 是非原始数据类型 我们也不必使用 new 关键字将字符串定义为数组 有人可以解释一下为什么 String 是非原始数据类型吗 字符串是非原始的 因为只
  • 使用 CreateProcessAsUser 时等待进程退出

    我在用着创建进程为用户在 C 中通过服务启动进程 我的服务需要等待进程退出 但我不知道该怎么做 我不想检查进程列表中的进程是否存在 The 处理信息返回新创建进程的句柄 hProcess 您可以等待此句柄 当进程退出时 该句柄将发出信号 您