类模块(.cls)怎么调用批处理文件
麻烦请教下各位,我现在有一个批处理文件需要执行,en1 = Shell(folder & "enc1.bat", 1)
这个代码我如果是创建一个FRM,在FRM里面测试代码是可以运行的,但现在想把它转到写的另一个类模块中(.cls文件),然后把类文件生成DLL去运行,运行时会通不过,系统后台日志报错:无效的过程调用或参数,望请教,这是什么原因,应该怎么处理? --------------------编程问答-------------------- 可能是运行时的进程当前路径问题.你如方便把那人bat设计为绝对路径的话就改一下.如不行的话,就要找怎么取当前dll所在目录的函数 --------------------编程问答-------------------- 这里不是路径的问题,路径现在已经设成绝对路径了。上面folder 为 “E:\1\”相同的代码在我新建的FRM里面去调用,是没问题的,但是放到CLS中却运行不起来,想知道是不是CLS文件中是不是不能这么地调用SHELL批处理? --------------------编程问答-------------------- UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP --------------------编程问答-------------------- 你说的CLS文件是运行在哪种工程中的,是"标准EXE工程"吗 --------------------编程问答-------------------- 恩。。。运行在标准EXE工程下是可以的,但打成DDL后,作为插件放到其它地方去调用时就执行不成功了。“无效的过程调用或参数” --------------------编程问答-------------------- 应该不是shell问题,最大的问题可能是你的dll编码有问题。 --------------------编程问答-------------------- 类模块作为插件的时候好像是无法调用外部的批处理吧???? --------------------编程问答-------------------- 有可能像楼上说的原因,代码是没问题的,因为在FRM里面测试是正常的,放进类模块中去后,运行就有问题了,...请问应该怎么解决啊? --------------------编程问答-------------------- 你把批处理的功能用VB做出来不就行了? --------------------编程问答-------------------- 将比处理封装在类的方法中间调用。
类模块中
Private Const DBL_QUOT = """"
Public Sub CallShell(sNewfolder As String)
Shell "cmd.exe /c start " & DBL_QUOT & DBL_QUOT & " " & DBL_QUOT & sNewfolder & DBL_QUOT
End Sub
窗体模块中
--------------------编程问答-------------------- 上面忘记申明变量了
Private Sub Command1_Click()
c.CallShell "D:\1.txt"
End Sub
窗体模块中
--------------------编程问答-------------------- 问题还是得不到解决,,用上面的方法,效果还是与之前直接调用SHELL同样的效果。。 --------------------编程问答-------------------- 贴出代码啊
Private Sub Command1_Click()
Dim c As Project1.Class1
Set c = New Class1
c.CallShell "D:\1.txt"
End Sub
补充:VB , 基础类