我这个怎么解决,我弄了好几天都不行

问题遇到的现象和发生背景

我想写一个vb但是我想在点击command的时候运行bat

用代码块功能插入代码,请勿粘贴截图
我的解答思路和尝试过的方法

各种网上的教程都用过了

我想要达到的结果

把这个程序打包之后也可以用我嵌入的这个程序

仅供参考:

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Const SYNCHRONIZE = &H100000
Dim terminateFlag As Boolean
Private Sub Form_Load()
    terminateFlag = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
    terminateFlag = True
End Sub
Private Sub ShellWait(cmd As String)
Dim pId As Long, pHnd As Long, r As Long
    pId = Shell(cmd, vbHide)
    pHnd = OpenProcess(SYNCHRONIZE, 0, pId)
    If pHnd <> 0 Then
        Do
           r = WaitForSingleObject(pHnd, 1000) '等1秒
           DoEvents
        Loop While r <> 0 And terminateFlag = False
        Call CloseHandle(pHnd)
    End If
End Sub
Private Sub Command1_Click()
Dim f As Integer
Dim ln As String
    ShellWait  "cmd /c net use y: \\10.83.20.20\set1  001$rmd /user:oper"
    f=FreeFile()
    Open "y:\info.ini" For Input As #f
    Line Input #f, ln
    Debug.Print ln
    Close #f
    ShellWait "cmd /c net use y: /delete"
End Sub


几种解决办法,首先保证安装的计算机支持DOS命令
第一种,可以将要运行的BAT放到资源文件里,然后每次调用前释放
第二种,在点击COMMAND按钮触发的事件里创建.bat文档,然后用SHELL调用
第三种,创建好.BAT文件然后用OLE控件将创建的文件插入到窗体中
这样就能保证你运行的.BAT文件不在程序外,打包的时候就不受影响了