Vb6 Shell运行不';我不能始终如一地工作

Vb6 Shell运行不';我不能始终如一地工作,vb6,wsh,Vb6,Wsh,我正在尝试在vb6 dll中运行以下代码位: Dim objWSShell As Object Set objWSShell = CreateObject("Wscript.Shell") objWSShell.Run strPath & "test.bat", 0, True dll进程挂起。批处理文件将不会运行,无论其内容如何。我甚至尝试了一个空的批处理文件,但它仍然挂断。但是,如果我尝试这段代码,有以下更改: Dim objWSShell As Object Set objWSS

我正在尝试在vb6 dll中运行以下代码位:

Dim objWSShell As Object
Set objWSShell = CreateObject("Wscript.Shell")
objWSShell.Run strPath & "test.bat", 0, True
dll进程挂起。批处理文件将不会运行,无论其内容如何。我甚至尝试了一个空的批处理文件,但它仍然挂断。但是,如果我尝试这段代码,有以下更改:

Dim objWSShell As Object
Set objWSShell = CreateObject("Wscript.Shell")
objWSShell.Run "calc", 0, True

它很好用。我不明白为什么exe文件能工作而bat文件不能。有什么想法吗?

您需要运行cmd.exe并将BAT文件传递给它

objWSShell.Run "%COMSPEC% /c " & strPath & "test.bat", 0, True

您需要运行cmd.exe并将BAT文件传递给它

objWSShell.Run "%COMSPEC% /c " & strPath & "test.bat", 0, True

您不需要使用shell脚本编写工具,您可以让事情变得更简单&使用内置的
shell()
函数:

shell environ$("COMSPEC") & " /C c:\xxx\yyy.bat", vbNormalFocus 
同上:

shell "calc", vbNormalFocus 

您不需要使用shell脚本编写工具,您可以让事情变得更简单&使用内置的
shell()
函数:

shell environ$("COMSPEC") & " /C c:\xxx\yyy.bat", vbNormalFocus 
同上:

shell "calc", vbNormalFocus 
我遇到了一个问题,无法直接从
WScript.Shell
运行批处理文件,但我没有修改VBScript的权限。原来.bat扩展名上有一个注册表覆盖

虽然使用COMSPEC对我很有效,但删除注册表项实际上解决的不仅仅是WScript问题

我有一个无法直接从
WScript.Shell
运行批处理文件的程序,但我没有修改VBScript的权限。原来.bat扩展名上有一个注册表覆盖


虽然使用COMSPEC对我很有效,但删除注册表项实际上解决的不仅仅是WScript问题

我同意这一点,如果需要,可以使用“Shell和wait”技术对其进行增强。谷歌应该随时提供一些例子。我同意这一点,如果需要,可以使用“Shell和wait”技术对其进行增强。谷歌应该随时提供一些例子。