【发布时间】:2010-11-14 16:46:00
【问题描述】:
我有一个 VB6 应用程序,它使用以下方法打开文件及其关联的应用程序:
ShellExecute(0, "open", filename, params, vbNullString, vbNormalFocus)
这非常有效。
现在我有一个客户(使用 Adobe Reader 运行 XP)无法使用上述命令打开任何 PDF 文件。但是当从 Windows 资源管理器中双击同一个文件时,它打开时没有任何问题。我还在我的机器上测试了文件名/路径组合以排除这些问题。
我正在寻找有关我可以检查以确保 ShellExecute 正常工作的任何提示。或者是什么导致 ShellExecute 以这种方式失败?
【问题讨论】:
-
我很好奇你为什么要在文件名中添加 vbNullString。有什么理由吗?如果您不使用它有什么改变吗?
-
我认为,在字符串末尾添加 'vbNullString' 是不必要的。但是,如果我错了,您也需要将其添加到“打开”中。
-
真的不需要。某天刚刚添加了它,现在它仍然存在。然后我添加了它,因为文档说该函数采用以空字符结尾的字符串。
-
我删除了它们,它使代码更具可读性。
-
vbNullString 不是 不仅是 NUL 字符(您可能想要 vbNullChar),所有 VB 字符串值都已经在内部以 NUL 结尾。 “文件名”是完全限定的路径吗? “参数”中有什么(以及为什么要传递它)?但我同意返回值在这里应该是有意义的。
标签: winapi file vb6 registry shellexecute