Shell开启程序与关闭

上一篇 / 下一篇  2006-10-20 22:01:05 / 天气: 晴朗 / 心情: 高兴 / 个人分类:Office与VBA

今天学到了一招,如何使用DOS命令来操作运行程序!呵呵,感觉很爽,在Shell上又发掘了一块宝库!

以下是我的一个实例:

我载了个可以在VBE环境中滚动鼠标的程序,不过它要运行才可以让VBE对鼠标感应,然后我就写了个加载宏,加载宏的代码就是下面这些,呵呵!
h8@i\cS0
}kV(l0}.LhV;|"a0开启Excel的时候就可以启动这个程序,然后哦关闭Excel时候又可以自动关闭这个小程序。感觉真好!

Dim pid As Long精英博客WcB'ne(b

^q:j3L:Dw|7k2F0Private Sub Workbook_BeforeClose(Cancel As Boolean)    '工作簿关闭的时候以隐藏窗体模式执行一个DOS命令,关闭那个开启的程序精英博客&?\Re2W"NG
On Error GoTo Err_Handle                               '关于taskkill,可以在控制台输入taskkill /?查看它的参数(/pid 设置要关闭的程序的ID)
1? X*ee!h-M0    Shell "cmd.exe /c taskkill /pid " & pid, vbHide精英博客 PF t3i6Z6u U9N
Err_Handle:
/i5H'y pa Zp;JM0End Sub
Mx0_nt3R.W#rX1r0
HDW.Kh)_0Private Sub Workbook_Open()
g.}tqO.S6db g%G0Dim strTemp As String
m g4a:ZC Yh0精英博客R.N.CC(s
If Len(Sheet1.Range("A1")) Then                            '检查sheet1的A1单元格是否有内容精英博客C1C6UE8v
    If (Dir(Sheet1.Range("A1")) = "VBScroll.exe") Then     '按照A1指定路径查看有没有VBScroll.exe程序
| `.I}e7v npT0        pid = Shell(Sheet1.Range("A1"))                    '如果找到,执行它精英博客rFe7m-hG
    Else
Y-\x R#I2@ \,X@0        GoTo Check_Handle                                  '否则弹出询问对话
OT+@/V N-c$g+dU6b0    End If精英博客eB X LA"`1y
Else
QU"c y1NO4R;G*j0Check_Handle:
Y{M[cup%]&xr0    If MsgBox("未找到VBScroll.exe!是否查找?", vbOKCancel) = vbOK Then       '提示是否手动查找该程序精英博客 a*z8E.WJQy LEb
        strTemp = Application.GetSaveAsFilename(InitialFileName:="vbscroll.exe", filefilter:="EXE File(*.exe),*.exe", buttontext:="开启")                           '获取路径
's(j z#n lc0        If strTemp = "False" Then    '如果未作选择,退出过程
Fe.^2C1}X6M0            Exit Sub
Q-G lJ d[L6}0        Else
+d*t9w \0pD9@u!|:F0            Sheet1.Range("A1") = strTemp    '将结果保存在A1,然后打开改程序精英博客E I};NY
            ThisWorkbook.Save
*t'V {5c9p0            pid = Shell(Sheet1.Range("A1"))
;x(^,aOKM&B0        End If精英博客F-Z-m ~6wX)q
    End If精英博客W g2u"_F1Z
End If精英博客jlp/{&H
End Sub

由此我想到了,可不可以使用类似的方法运行C++书写的控制台程序,然后捕获它的返回或者由此运行VBScript脚本,捕获它的返回值。

这个问题正在研究中.......


TAG: Office与VBA VB技术难点

Hner的个人空间 引用 删除 west_wolf   /   2006-10-21 19:27:32
能否简单讲讲功能,看不懂得啊
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar