问题标签 [shellexecute]

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 投票
2 回答
3357 浏览

.net - 谷歌浏览器破坏了 ShellExecute()?

多年来,我一直在使用 ShellExecute() API 从我的应用程序中启动默认的 Web 浏览器。像这样:

它一直运行良好,直到几周前谷歌发布了它的 Chrome 浏览器。现在,如果计算机上安装了 Chrome,ShellExecute API 将不再打开网页。

有没有人想出如何解决这个问题?(没有检测到 Chrome 并显示一条消息告诉用户这是 Chrome 的错?)

编辑:谢尔盖提供的代码似乎有效,所以我接受了它作为“答案”。除了我不喜欢对 WinExec 的调用:MSDN 读到 WinExec 只是为了与 16 位应用程序兼容而提供的。IOW,它可能会停止使用任何服务包。我没有尝试过,但如果它已经停止在 Windows x64 上工作,我不会感到惊讶,因为它根本不支持 16 位应用程序。因此,我将使用 ShellExecute 而不是 WinExec,它的路径与 Sergey 的代码一样从注册表中获取,并将 URL 作为参数。谢谢!

0 投票
3 回答
891 浏览

vb6 - Vista不允许一个.exe调用另一个.exe

我有一个在 Vista 上运行的旧版 VB6 可执行文件。此可执行文件将另一个旧版 MFC C++ 可执行文件脱壳。

在我们早期的 Vista 测试中,此调用将显示典型的 UAC 消息,以在运行第二个可执行文件之前获得用户的许可。这并不完美,但可以接受。但是,现在看起来这个调用被操作系统完全忽略了。

我该怎么做才能使这个电话正常工作?

0 投票
2 回答
2715 浏览

c++ - 摆脱 ShellExecute 造成的邪恶延迟

这是困扰我一段时间的事情,必须有一个解决方案。每次我调用 ShellExecute 打开一个外部文件(无论是文档、可执行文件还是 URL)时,都会在 ShellExecute 生成新进程并返回之前在我的程序中造成很长时间的锁定。有谁知道如何解决或解决这个问题?

编辑:正如标签所示,这是在使用 C++ 的 Win32 上。

0 投票
10 回答
741088 浏览

python - 如何从 Python 执行程序?os.system 由于路径中的空格而失败

我有一个需要执行外部程序的 Python 脚本,但由于某种原因失败了。

如果我有以下脚本:

然后它失败并出现以下错误:

'C:\Temp\a' 不是内部或外部命令、可运行程序或批处理文件。

如果我用引号转义程序:

然后它工作。但是,如果我添加一个参数,它会再次停止工作:

执行程序并等待它完成的正确方法是什么?我不需要从中读取输出,因为它是一个执行工作然后退出的可视程序,但我需要等待它完成。

另请注意,将程序移动到非间隔路径也不是一种选择。


这也不起作用:

注意交换的单/双引号。

这里有或没有记事本的参数,它会失败并显示错误消息

文件名、目录名或卷标语法不正确。

0 投票
1 回答
5860 浏览

windows - shell\command\open 值的语法 - %1 vs %l vs %L

我在工作中开发的程序之一是读取注册表以弄清楚如何打开从另一个应用程序提供的文件(我们没有使用 ShellExecute,因为我们需要处理 id,我没有仔细查看 ShellExecuteEx足以看到它提供了进程句柄,无论如何现在为时已晚)。它已经工作了,所以这更多是为了我自己的启迪,但是有谁知道为什么有些条目使用 %l 或 %L 而不是 %1?至少对于“%l”,它可能是一个错字,但“%L”似乎不太可能。事实上,媒体播放器在各种音频文件的打开命令中使用“%L”。我很确定它与 %1 的含义相同,只是因为我想不出它可能是什么。

我目前最喜欢的理论是关于 l 和 1 如何容易混淆的笑话。或者它可以代表“位置”,但这会很蹩脚:)

0 投票
3 回答
80301 浏览

c# - .NET 中的 ShellExecute 等效项

我正在寻找 .NET 首选的方式来执行与 ShellExecute 在 Win32 中执行的相同类型的操作(针对任意文件类型打开、打印等)。

我已经编写 Windows 20 多年了,但我是 .NET 的新手,所以也许我只是在寻找错误的地方。我目前正在使用 .NET 2.0 (VS C# 2005),但如果需要可以使用 VS 2008。

如果唯一的答案是使用 P/Invoke,那么我最好还是使用 Win32 编写我的小实用程序。

0 投票
4 回答
6946 浏览

handle - ShellExecute() 的句柄 - 父窗口?

我正在尝试使用ShellExecute在 Excel 中打开文件。我在 MSDN 论坛上阅读了有关该功能的信息,并找到了有关句柄的以下信息,这是第一个参数:

“hwnd [in] 用于显示用户界面 (UI) 或错误消息的所有者窗口的句柄。如果操作与窗口无关,则此值可以为 NULL。”

我还听说这被称为父窗口的句柄。什么是父/所有者窗口?正如您在下面看到的,我使用 NULL 作为句柄,但由于操作确实与窗口相关联,我可能需要一个句柄,但我不知道该句柄使用什么。

0 投票
4 回答
1707 浏览

windows - 从 WOW64 启动 Shell 链接 (LNK)

我们的 32 位应用程序通过 ShellExecute 启动 Windows LNK 文件(Shell 链接)。当它尝试“启动”指向 64 位二进制文​​件的链接(例如“开始”菜单中的“Internet Explorer(64 位)”快捷方式)时,它总是最终启动 32 位二进制文​​件。在内部,ShellExecute 错误地解析了链接目标:LNK 内部有一个隐藏字段,其中包含 FOLDERID_ProgramFiles。64 位应用程序将此解析为 64 位程序文件目录,但 32 位应用程序不会。

Wow64DisableWow64FsRedirection 不会改变 ShellExecute 的这种行为。

除了通过 64 位“蹦床”过程(由于我们的插件架构如何工作,这不是一个选项),32 位应用程序是否有任何方法可以像 64 位应用程序一样启动 shell 链接?

0 投票
1 回答
3476 浏览

java - 需要从 webapp 执行 shell 脚本并在页面中显示控制台输出

我正在寻找可以帮助我将其集成到 Struts2/Spring 应用程序中的 java 示例或库。许多构建系统(例如 Luntbuild 或 Hudson)都具有此功能,我想在尝试从其中一个中挖掘它之前,我想我会问是否有人知道一个独立的示例。我也浏览了 Quartz 作业调度框架,但我还没有找到 UI 钩子。我只需要从包含 JSP 的文件中读取吗?

0 投票
1 回答
264 浏览

shellexecute - 在过程中执行 ShellExecute

我想调用它.. 和 ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) 一样好,我可以在 form1 的方法中毫无问题地调用它

但我只有一个过程“过程转换数据集();” 我想调用它并且它不识别句柄......我只需要将这个过程作为form1的方法吗?我怎么做?这就是解决方案。