访问挂起 WScript.Shell.run
Access hangs on WScript.Shell.run
我正在使用 WScript.Shell
到 运行 读取文件并发送一些数据的第三方可执行文件。
Dim objShell As Object, Shellerror As Long
Set objShell = CreateObject("WScript.Shell")
问题是,Access 在 .run
语句上挂起。
Shellerror = objShell.Run(Chr(34) & PreveriPath(ApplicationPath) & "SimplyTax\simplytax.exe" & Chr(34) & "" & VrstaZahteve & " " & Delovanje & " " & SWid & " " & Chr(34) & Datoteka & Chr(34) & " " & Geslo & " RD#" & Chr(34) & ResponseDatoteka & Chr(34), 0, True)
您可能仅通过此调用就看不到任何内容,这是实际获得 运行.
的字符串
Shellerror = objShell.Run("F:\AA\Bicom 5\SimplyTax\simplytax.exe" racun test 10456317 "F:\AA\Bicom 5\SimplyTax\racun.txt" test RD#"F:\AA\Bicom 5\SimplyTax\Response\STResponse.txt", 0, True)
现在的问题是,执行只是挂在这一行,没有任何错误或任何东西,直到我强行关闭 Access(它进入无响应状态)。
我已经研究这个问题两天了,我唯一能弄清楚的是只有当文件路径中有空白时它才会挂起。我不能只删除路径中的空格,因为我们正在为几家不同的公司做这件事,它们有不同的文件夹结构(有些有空格,有些没有)。
据我所知,使用不带空格的路径的公司没有任何问题。
我已经尝试了一些路径,none 似乎可行。我在它们周围加上双引号,在它们周围放置单引号,我删除了所有引号,我尝试使用产生相同结果的 ShellExecute
函数,它只是使 Access 响应速度不快。
我觉得我在这里碰壁了...我做错了什么?
那么这就是你的解决方案。
如果调用的程序没有完成,Access(或者更确切地说 Shell.Run)将等待它。等等。
您可以尝试为 intWindowStyle
传递 1 而不是 0 以显示程序 window。可能显示错误。
此外,您的命令行的这一部分看起来很奇怪:
test RD#"F:\AA\Bicom 5\SimplyTax\Response\STResponse.txt"
RD#
真的应该是这个样子吗?
很遗憾,我没有找到解决这个问题的方法。似乎有问题的程序无法处理带空格的文件路径...
我只是在我的应用程序中添加了一个新字段,它需要一个没有空格的文件路径,并告诉他们将程序复制到该路径。现在可以正常使用了。
感谢您的回复和帮助。
我正在使用 WScript.Shell
到 运行 读取文件并发送一些数据的第三方可执行文件。
Dim objShell As Object, Shellerror As Long
Set objShell = CreateObject("WScript.Shell")
问题是,Access 在 .run
语句上挂起。
Shellerror = objShell.Run(Chr(34) & PreveriPath(ApplicationPath) & "SimplyTax\simplytax.exe" & Chr(34) & "" & VrstaZahteve & " " & Delovanje & " " & SWid & " " & Chr(34) & Datoteka & Chr(34) & " " & Geslo & " RD#" & Chr(34) & ResponseDatoteka & Chr(34), 0, True)
您可能仅通过此调用就看不到任何内容,这是实际获得 运行.
的字符串Shellerror = objShell.Run("F:\AA\Bicom 5\SimplyTax\simplytax.exe" racun test 10456317 "F:\AA\Bicom 5\SimplyTax\racun.txt" test RD#"F:\AA\Bicom 5\SimplyTax\Response\STResponse.txt", 0, True)
现在的问题是,执行只是挂在这一行,没有任何错误或任何东西,直到我强行关闭 Access(它进入无响应状态)。
我已经研究这个问题两天了,我唯一能弄清楚的是只有当文件路径中有空白时它才会挂起。我不能只删除路径中的空格,因为我们正在为几家不同的公司做这件事,它们有不同的文件夹结构(有些有空格,有些没有)。
据我所知,使用不带空格的路径的公司没有任何问题。
我已经尝试了一些路径,none 似乎可行。我在它们周围加上双引号,在它们周围放置单引号,我删除了所有引号,我尝试使用产生相同结果的 ShellExecute
函数,它只是使 Access 响应速度不快。
我觉得我在这里碰壁了...我做错了什么?
那么这就是你的解决方案。
如果调用的程序没有完成,Access(或者更确切地说 Shell.Run)将等待它。等等。
您可以尝试为 intWindowStyle
传递 1 而不是 0 以显示程序 window。可能显示错误。
此外,您的命令行的这一部分看起来很奇怪:
test RD#"F:\AA\Bicom 5\SimplyTax\Response\STResponse.txt"
RD#
真的应该是这个样子吗?
很遗憾,我没有找到解决这个问题的方法。似乎有问题的程序无法处理带空格的文件路径...
我只是在我的应用程序中添加了一个新字段,它需要一个没有空格的文件路径,并告诉他们将程序复制到该路径。现在可以正常使用了。
感谢您的回复和帮助。