问题标签 [shellexecuteex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1711 浏览

c++ - 如何检测通过 ShellExecuteEx 启动是否被 UAC 取消

我通过 ShellExecuteEx 启动 exe:

如何检测 UAC 是否取消了启动?在这种情况下,ShellExecuteEx 成功(hInstApp = 42,GetLastError 返回 0)。

谢谢

0 投票
1 回答
298 浏览

c++ - 通过 ShellExecuteEx 函数启动时,Install-Shield 窗口没有出现在顶部

我正在尝试使用以下代码启动通过 install-shield 制作的 setup.exe

问题是启动的安装程序窗口没有出现在顶部。任何帮助将不胜感激。

谢谢

0 投票
1 回答
845 浏览

c - 使用 ShellExecuteEx 永久设置路径变量

我想出了这个代码。它将正确执行并返回 true。但它不会改变 Path 变量的值。当我在 cmd 中这样输入 --> setx Path "C:\Program Files\Java\jdk1.7.0_02\bin\" 时,它可以工作并更改路径值

这是代码

这里会有什么问题?

0 投票
1 回答
2446 浏览

c++ - ShellExecuteEx & GetExitCodeProcess - 处理无效或分段错误

我正在尝试启动一个应用程序,然后监视它直到它关闭。我正在使用 ShellExecuteEX 和 GetExitCodeProcess 并且有几个问题。

下面的代码在调用 GetExitCodeProcess 时会导致分段错误。如果我更改 shellInfo.fMask = NULL,它不会出现 seg 错误,但我收到一个错误,提示 Invalid Handle。

Notepad.exe 会启动。

0 投票
1 回答
728 浏览

c++ - 通过 ShellExecuteInfo 提升过程 - 无限壳?

我按照这篇文章来提升一个进程,但是在我下面的代码中(目前几乎是一个副本),在调试时,我得到了无限数量的 shell。指示它发生的行。

我在这里查看了 MSDN 文章,但这并没有给我太多的见解。请指教我做错了什么?

我是 C++ 新手。

0 投票
1 回答
392 浏览

delphi - 从 EXE 从 EXE 执行 EXE

我有 3 个程序,App1.exe、App2.exe 和 App3.exe。每个都可以彼此独立运行,但 App2.exe 可以使用 ShellExecuteEx 运行 App3.exe,而 App1.exe 可以使用 ShellExecuteEx 运行 App2.exe(后者又可以运行 App3)。App3 有可选的命令行参数,如果使用 GUI 将不会显示,但会自动生成输出文件并关闭。当 App2 运行 App3 传递命令行参数时,它工作得很好,但是当 App1 运行 App2 时,App2 运行 App3 传递命令行参数,App3 的 ShellExecuteEx 返回 true,但 GUI 显示并且不创建输出文件。
你知道为什么会发生这种情况吗?它确实适用于 Windows XP,但不适用于 Vista 或 7。我也尝试使用 CreateProcess(),它给出了相同的结果。所有 3 个应用程序都在同一个文件夹中。

0 投票
0 回答
679 浏览

winapi - Win32:TerminateProcess 被 Windows 错误报告对话框击败

我正在开发一个程序(“A”),它使用 ShellExecuteEx 调用另一个偶尔崩溃的程序(“B”)。程序 A 可以检测到 B 的崩溃,并可以使用 TerminateProcess 杀死 B。

但是,当 B 崩溃时(在 A 终止它之前),会弹出 Windows 的“程序 B 已停止工作”对话框 (WerFault.exe)。因此,尽管 A 可以杀死 B,但每次 B 失败时都会留下一个 WerFault.exe 实例。

我想我可能会通过使用 WER api 调用 WerAddExcludedApplication 并将 B 放在排除列表中来获得一些乐趣。但是,似乎所做的只是更改“已停止工作”对话框,使其仅提供“关闭”和“调试”,并省略“在线检查解决方案”。

知道如何在不调用 WerFault.exe 的情况下让 B 崩溃吗?(Windows 7的)。

我确实看到了这个线程:How to crash a process on Windows-7 without getting the WER dialog? . 但是,其目的是确保始终调用 WER,而不是如何禁用或关闭它。

建议?

0 投票
2 回答
3429 浏览

automation - UI 自动化没有看到隐藏的窗口?

我有已签名的 winforms 应用程序,并且清单具有 level="requireAdministrator" uiAccess="false"。
我想启动另一个带有隐藏窗口的应用程序并使用 UI 自动化 API 使用它。

在 Spy++ 中可以看到带有隐藏窗口的新进程,但在 UISpy 中看不到,我也无法使用 FindFirst 方法找到它:

当 ProcessWindowStyle 被最小化时,一切都很好,当它被隐藏时 - 一切都停止了。
是预期的 UI 自动化行为吗?UI 自动化无法访问隐藏窗口?有没有办法破解它?

0 投票
2 回答
8445 浏览

c++ - c++ 以管理员身份创建进程并获取其输出

我有一个问题,我一直在寻找必须结合在一起的两件事,Createprocess()以管理员身份运行一个进程并获得输出。

当我CreateProcess()以管理员身份使用 Google 搜索时,我会让人们回复使用shellexecute. 我去shellexecute,当我在那里时,shellexecute 不输出控制台(进程)上运行的内容。

我再次谷歌如何使用 shellexecute 获得进程的输出,我得到的答案说你不能用 shellexecute 做到这一点,使用 createprocess,所以我去 createprocess。我正在努力将我正在使用的 shellexecute 转换为 createprocess。

我用 shellexecute 做的是我正在寻找的东西,以管理员身份运行。但没有输出。

这是我的 shellexecute 代码。

这段代码在一个方法中运行,它的作用是添加一个防火墙规则来为即将到来的连接打开一个端口。它工作正常,问题是我不知道进程是否成功,而不是 shellexecute。所以我需要输出。

0 投票
1 回答
1284 浏览

windows - 具有管理员权限的 Delphi 外部 exe 在 Windows 8 中最小化

我有一个问题,当我执行命令行帮助程序时,Windows 8 用户帐户控制 (UAC) 弹出窗口会在其清单中请求管理员权限。UAC 弹出窗口只是在 Windows 任务栏中闪烁黄色,导致用户体验混乱:

最小化 UAC

单击任务栏图标后,UAC 警报显示:

UAC 警报

在 Windows 7 中,UAC 警报并未最小化,而是显示在前台。有关如何在 Windows 8 中解决此问题的任何想法?

作为参考,我的主应用程序在用户权限下运行,并使用ShellExecuteEx. 我正在设置ShellExecuteExTShellExecuteInfo.nShowSW_SHOW