gpt4 book ai didi

java - 启动相关程序或显示来自另一个程序的 "Open with"对话框

转载 作者:可可西里 更新时间:2023-11-01 14:41:17 24 4
gpt4 key购买 nike

在 Window Seven 下,以下命令会显示一个对话框然后终止而没有任何其他操作,为什么?

预期效果是启动相关程序 Notepad++ 或至少 Notepad

RUNDLL32.EXE SHELL32.DLL,OpenAs_RunDLL D:\doc\toto.txt

enter image description here

最佳答案

首先,请注意 OpenAs_RunDLL 是一个 undocumented entry point所以期望它起作用的唯一原因是它出现在 HKEY_CLASSES_ROOT 注册表中作为 Open With shell 动词的实现(至少在某些版本的 Windows 中)。

这仅意味着它可以预期在被适当的 shell 函数调用时工作。这并不意味着它一定会在任意上下文中工作。

在我的家用计算机 (Windows Vista) 上,通过 rundll32 调用 OpenAs_RunDLL 时,当通过开始菜单的运行对话框,可以使用键盘快捷键 Windows+R 打开。

当从命令行控制台窗口发出时,它 工作,并且症状与您描述的相同:显示对话框,但未启动应用程序。这是完全合法的行为,因为您在非设计的上下文中使用了未记录的入口点。

由于无法保证 OpenAs_RunDLL 会存在于 future 的 Windows 版本中,因此结果很简单:不要使用它。使用支持的 SHOpenWithDialog API 函数,或使用 ShellExecuteShellExecuteExopenas verb ;后者可能特别有用,因为它是 easy to do from a scripting language such as VBScript .

关于java - 启动相关程序或显示来自另一个程序的 "Open with"对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23566667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com