等待IShellDispatch2.ShellExecute启动的进程

2024-02-23

我在用IShellDispatch2.ShellExecute https://learn.microsoft.com/en-us/windows/desktop/shell/ishelldispatch2-shellexecute从我的提升进程中以标准用户身份运行进程,如中所述陈雷蒙德的文章 https://blogs.msdn.microsoft.com/oldnewthing/?p=2643。不像Shell执行Ex https://learn.microsoft.com/en-us/windows/desktop/api/Shellapi/nf-shellapi-shellexecuteexa,此方法不返回有关进程的任何信息。

我需要知道启动的进程何时完成,并且我可能需要其退出代码。有没有办法获取此进程的句柄(除了拍摄快照之外的任何其他方式)?


您不能这样做,因为 shell 不会公开 ShellExecuteEx 方法,即使公开了,返回的进程句柄在您的进程中也将无效。

我能想到的最简单的解决方案是创建一个小帮助应用程序,充当 shell 和您想要启动的实际应用程序之间的中间人。这个中间人应用程序可以调用ShellExecuteEx并在子进程退出时将消息发送回您的实际应用程序。

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

等待IShellDispatch2.ShellExecute启动的进程 的相关文章

  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • 尝试使用 LoadImage 加载应用程序的图标,但该函数返回 0

    我正在尝试使用加载应用程序的图标LoadImageWinAPI函数 但由于某种原因它总是返回0 我已阅读文档 https msdn microsoft com en us library windows desktop ms648045 v
  • WINAPI/DWMAPI 不规则形状的模糊窗口

    注意 这不是关于无边框窗口的问题 因此 前几天我在 Windows 7 上浏览 开始 菜单时偶然发现了这个程序 它是一个本机 Windows 程序 称为 数学输入面板 现在 我对窗户的形状很好奇 我知道它并不是完全由 DWM 绘制的 因为边
  • 如何获取进程的错误信息?

    For vsinstr coverage hello exe 我可以使用 C 代码如下 Process p new Process StringBuilder sb new StringBuilder COVERAGE sb Append
  • 使用 BitBlt 捕获程序窗口始终返回相同的图像

    我编写了以下代码 C Win32 来捕获游戏窗口屏幕并从图像中获取像素颜色数组 函数 autoB 完成这项工作 然后我将结果数组绘制到窗口中以直观地检查我得到的结果 问题是 这个程序在我启动计算机后只工作一次 在第一次 缓存 从游戏中获取的
  • 如何查明 .exe 是否正在 C++ 中运行?

    给定进程名称 例如 程序 exe C 标准库没有这样的支持 您需要一个操作系统 API 来执行此操作 如果这是 Windows 那么您将使用 CreateToolhelp32Snapshot 然后使用 Process32First 和 Pr
  • 是否可以通过 C#.NET 编写 Win32 .dll 文件?

    是否可以通过 C NET 编写 Win32 dll 文件 如果是的话 我在哪里可以找到一些教程 如果不是 那么您对编写 Win32 DLL 有什么建议 Thanks 对的 这是可能的 事实上有一个工具可以做到这一点 它在 Rainmeter
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 如何检查 NTAccount 对象代表组还是用户?

    使用返回的访问规则时 GetAccessRules True True GetType System Security Principal NTAccount 如何判断每个规则中引用的 NTAccount 对象是用户帐户还是组 Update
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • Process.Close() 不会终止创建的进程,c#

    我编写了一个 C 应用程序 它使用System Diagnostics Process类来创建进程 使用 Process P1 new Process P1 FileName myexe exe 和其他适当的设置 我已将其链接到一个运行大约
  • 如何使用 .NET 以编程方式沙箱进程

    我计划设计一个系统 本质上允许用户在我的机器上运行 PHP Ruby 等脚本代码 我想将它们放入沙箱中 以防止它们访问机器的关键方面 哪些 NET API 可用于此目的 我计划从主流程创建一个子流程 并希望以编程方式从主流程中沙箱该子流程
  • 通过 ruby​​ 进程共享变量

    我正在编写一个 gem 其中我必须分叉两个进程来启动两个 webrick 服务器 我想通过基类的类方法启动该服务器 因为应该只运行这两个服务器 而不是多个服务器 在运行时 我想调用这两台服务器上的一些方法来更改变量 我的问题是 我无法通过基
  • 如何在拥有句柄时检查给定进程是否正在运行

    我在用ShellExecuteEx启动应用程序 成功开始阅读后TShellExecuteInfo hProcess获取已启动进程的句柄 我想定期检查我的应用程序启动的进程是否仍在运行 两个或多个同名进程可以同时运行 我想确保我的应用程序正在
  • Windows Aero - 以编程方式禁用视觉效果

    有谁知道是否有一个 API 可以通过编程方式禁用 启用特定的 Windows 视觉效果 例如 启用透明玻璃 或 启用 Aero Peek 我指的效果是在以下位置配置的效果 系统 高级系统首选项 高级 选项卡 性能设置 自定义 我正在为 Wi
  • PowerShell 中的 ProcessStartInfo 和进程 - 身份验证错误

    我有使用 ProcessStartInfo 和 Process 调用另一个脚本并返回该脚本的输出的代码 不幸的是 我遇到了错误 并且不确定如何解决这些问题 script1 ps1 abc args startInfo NULL proces
  • android:进程和进程名称

    我试图理解android process属性 Ref says http developer android com guide topics manifest application element html proc 如果分配给该属性的
  • EnumDisplayDevices 与 WMI Win32_DesktopMonitor,如何检测活动监视器?

    对于我当前的 C 项目 我需要为在大量计算机上连接并处于活动状态的每个监视器检测一个唯一的字符串 研究指出了两种选择 使用 WMI 并查询 Win32 DesktopMonitor 以获取所有活动监视器 使用 PNPDeviceID 来唯一
  • 使用 SetWindowsHookEx() 阻止窗口鼠标单击

    我编写了一个应用程序 将某些过程挂接到新进程上 以监视鼠标按下事件并禁用新进程上的鼠标按下事件 截至目前 我能够捕获进入此进程的鼠标按下事件 并且我正在尝试将所有鼠标按下事件作为 POC 禁用 这就是我目前在钩子程序中所做的事情 exter
  • GDI 函数 BitBlt 和 StretchBlt 在 Win32 中是否硬件加速?

    我似乎无法通过搜索得到明确的答案 Win32 blitting 操作是否硬件加速 GDI 而不是 GDI 我不知道这些函数如何与图形驱动程序交互 是否有任何函数调用来验证此功能 例如 GetCaps 对于特定的图形设备 win32图形设备

随机推荐

  • 如何写入 NUnit gui 运行程序的 Log 选项卡和 Console.Error 选项卡

    在 NUnit Gui Runner 中 有 6 个选项卡 我可以通过编写以下内容来写入 Console Out Console WriteLine This will end up in the Console Out 我可以通过编写以下
  • Tomcat 服务器未作为服务启动:%1 不是有效的 Win32 应用程序

    我的 tomcat 服务器在 Eclipse 中工作正常 但是当我尝试启动服务器时它没有启动 以下是错误 2012 08 15 09 26 09 info Procrun 2 0 5 0 started 2012 08 15 09 26 0
  • 从请求中接受一组预定义的无害 HTML 标记有多安全?

    作为一名 Web 开发人员 我学到的第一件事就是永远不要接受来自客户端的任何 HTML 也许只有我对它进行 HTML 编码 我使用输出 HTML 的所见即所得编辑器 TinyMCE 到目前为止 我只在管理页面上使用它 但现在我也想在论坛上使
  • WPF:路径填充上的工具提示

    我想将工具提示分配给 System Windows Shape Path 虽然当我触摸路径的轮廓时会弹出工具提示 但当我位于路径的填充部分内时 我没有得到任何工具提示 我可以通过某种方式改变这种行为吗 我唯一的想法是将路径添加到画布等附加控
  • 当长度 > 2G 时,Fread on Lion 无法读取

    由于 Macosx Lion fread 不读取长度 gt 2G int 大小 2 147 483 648 字节 的文件 它在 macOS Snow Leopard 上工作了很多年 我写了一个程序来测试它 include
  • Objective-C:每次上下滚动时,UITableView 单元格都会被覆盖

    我有一个UITableView通过填充CoreData 并且刚刚注意到一些奇怪的事情 我在 UITable 中有大约 20 行左右 当我向下滚动表格并再次向上滚动时 单元格的标签会写在现有文本的顶部 并且每次我再次向下和向上时都会继续执行此
  • SQL Azure 和索引

    SQL Azure 自动重建 重新组织索引是真的吗 我们在 Sql Azure 上有一个数据库 并且正在经历性能下降 我想这是一个都市传说 你能帮助我吗 谢谢 马可 SQL Azure 不会自动重建索引 而统计信息会自动更新 如果您有特定原
  • 每次将图像推送到 GCR 时自动更新 Pod

    我有一个 docker 镜像被推送到 Container Registrydocker push gcr io go demo servertime和一个用以下命令创建的 podkubectl run servertime image gc
  • Windows Phone 8 应用程序栏按钮长按事件

    我正在开发 Windows Phone 8 C 应用程序 我必须获取已放置在应用程序栏中的前进和后退按钮的长按事件 但只发现应用程序栏按钮的单击事件 请让我知道如何捕获应用程序栏按钮的长按事件 提前致谢 这不可能 ApplicationBa
  • 使用 apollo graphql 反应 firebase 身份验证

    我发现一篇很棒的文章将身份验证添加到反应中 文章 https www robinwieruch de complete firebase authentication react tutorial https www robinwieruc
  • 处理训练和测试数据中的不同因子水平

    我有一个 20 列的训练数据集 所有这些都是我必须用于训练模型的因素 我已经获得了测试数据集 我必须在该数据集上应用我的模型进行预测并提交 我正在进行初始数据探索 只是出于好奇检查了训练数据和测试数据级别 因为我们正在处理所有类别变量 令我
  • 我可以使用 Selenium IDE 生成 Cucumber/Capybara 步骤吗?

    我已经安装了 Selenium IDE Firefox 插件 和 Capybara gem 我现在在我的 Rails 应用程序中从 Cucumber Capybara 步骤 javascript 驱动 Selenium 问题是 我可以将 S
  • Safari 浏览器中的 codeigniter 会话

    我们正在使用以下内容来检查所有控制器功能的会话 this gt session gt userdata Admin logged in https www codeigniter com user guide libraries sessi
  • 将 Interact.js 与 Angular 项目集成

    我需要在 Angular 项目中使用 Interact js 提供的功能 例如可拖动 可调整大小等 但我找不到在打字稿中导入它的可靠方法 我已经通过将其定义为函数来阅读一些解决方法 但我只想知道这是否是正确的方法 添加了 Interactj
  • Try-Catch 并“继续”——这可能吗?

    我的代码中有一部分正在查询网络上的所有 SQL Server 数据库 我首先尝试使用 SQL 登录来访问 SQL Server 实例 但如果失败 那么我想尝试使用我的 Windows 凭据进行连接 之后 如果我仍然无法连接 那么我希望代码失
  • 错误:安装 R 依赖包时未找到 gdal-config,而 gdal 已安装

    请指出我遗漏的一点 开放SUSE 11 3 xx linux y3pi Desktop R gt sudo R CMD INSTALL rgdal 0 7 12 tar gz root s password installing to li
  • 如何在c#中使用多个未选中的

    有没有办法对整个程序或整个块使用 unchecked 我正在从 java 翻译一些类型为 long 的东西 并且与无符号长常量进行大量比较 有些地方有一些开关有 20 30 个案例 我是否必须单独取消选中每个案例或者是否有有更快 更简单的方
  • 当我按下数字时,如何使用 EditText onTextChanged 事件?

    我有一个EditText with text 0 00 当我按数字 3 时 应该是这样的0 03当我第二次按数字 5 时 文本应该是0 35 And 35 0 35 09像这样 这EditText最初的值为0 00 这些都是用相同的方法完成
  • 通过反射执行方法时线程挂起

    我有一个执行器服务 它根据反射运行新线程 我有一种方法 在运行时不会退出线程并且会挂起程序执行 我不确定这是为什么 有人能指出我缺少什么吗 另外 如果任何并发专家注意到我可能遇到的任何问题 请告诉我 我在并发方面相当新手 Notes con
  • 等待IShellDispatch2.ShellExecute启动的进程

    我在用IShellDispatch2 ShellExecute https learn microsoft com en us windows desktop shell ishelldispatch2 shellexecute从我的提升进