【问题标题】:VB6 - ShellExecute not workingVB6 - ShellExecute 不起作用
【发布时间】:2017-08-08 14:12:16
【问题描述】:

我一直在尝试使用 VB6 中的 ShellExecute 方法打开文件,文件名将从表单中的文本框中获取。但是文件没有打开,也没有错误。

但是,如果我直接传递文件名而不是从变量引用,则相同的方法可以顺利进行。下面的代码供参考。不确定问题出在哪里,但非常感谢任何帮助。

工作代码

ShellExecute 0, vbNullString, "F:\Desktop\SBKL\template.xlsx", vbNullString, vbNullString, vbNormalFocus  

非工作代码

Dim FlNme As String
FlNme = Trim(Me.T_Doc_Link.Text)
ShellExecute 0, vbNullString, FlNme, vbNullString, vbNullString, vbNormalFocus

【问题讨论】:

  • 当失败时,FlNme 变量中究竟是什么?
  • 另外,您可能应该将其作为函数调用以获取其返回值:intReturn = ShellExecute(0, vbNullString, FlNme, vbNullString, vbNullString, vbNormalFocus)
  • @RBarryYoung 非常感谢。我尝试查看 FlNme 内部的确切内容,发现换行符很少。我不知道换行符是如何来的。但是,以下代码运行顺利: FlNme = Replace(Replace((Trim(Me.T_Doc_Link.Text)), vbCrLf, ""), vbNewLine, "")

标签: vb6 shellexecute


【解决方案1】:

在调用ShellExecute() 之前,您应该使用Dir$() 检查文件是否存在,并在路径和/或文件错误时警告用户:

If Dir$(FlNme, vbNormal) = vbNullString Then
    MsgBox "File not found:" & vbCrLf & FlNme
    Exit Sub
End If
ShellExecute 0, vbNullString, FlNme, vbNullString, vbNullString, vbNormalFocus

【讨论】:

  • 此问题现已解决。我尝试找到“标记已回答”选项,但找不到。
  • 完成.. 谢谢。标记为已完成
猜你喜欢
  • 1970-01-01
  • 2012-12-19
  • 2023-03-31
  • 1970-01-01
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 2020-05-20
  • 2011-03-01
相关资源
最近更新 更多