我有一个VB6应用程序,它使用以下命令打开文件及其关联的应用程序:

ShellExecute(0, "open", filename, params, vbNullString, vbNormalFocus)


这很完美。

现在,我有一个客户(使用Adobe Reader运行XP)无法使用上述命令打开任何PDF文件。但是,从Windows资源管理器双击该文件时,打开该文件没有任何问题。我还在计算机上测试了文件名/路径组合,以排除此类问题。

我正在搜索有关我可以检查以确保ShellExecute正常工作的任何提示。还是什么会导致ShellExecute以这种方式失败?

最佳答案

ShellExecute的返回值是多少?如果它是0x0000001f(== 31,表示SE_ERR_NOASSOC),则根据shellapi.h,“没有与之关联的应用程序
给定的文件扩展名。”,这意味着以某种方式丢失了.pdf文件扩展名的注册。重新安装Adobe Reader可能会有所帮助。

关于winapi - 哪些原因会使ShellExecute失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1193873/

10-11 09:07