当前位置:编程学习 > VB >>

类模块(.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

--------------------编程问答-------------------- 上面忘记申明变量了

窗体模块中


Private Sub Command1_Click()

    Dim c As Project1.Class1
    Set c = New Class1
    
    c.CallShell "D:\1.txt"

End Sub
--------------------编程问答-------------------- 问题还是得不到解决,,用上面的方法,效果还是与之前直接调用SHELL同样的效果。。 --------------------编程问答--------------------  贴出代码啊
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,