Foxtable(狐表)用户栏目专家坐堂 → 关于执行外部程序


  共有3505人关注过本帖树形打印复制链接

主题:关于执行外部程序

帅哥哟,离线,有人找我吗?
flashv
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
关于执行外部程序  发帖心情 Post By:2022/4/4 16:38:00 [只看该作者]

Dim Proc As New Process '定义一个新的Process
Proc.File =
"C:\test.xls" '指定要打开的文件

Proc.Start()


1.如何判断文件是否存在?


2.如何判断文件是否已经运行(避免重复运行)


盼复,谢谢老师!


 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1275 积分:7922 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2022/4/4 17:02:00 [只看该作者]

你是想写一个自动控制多个狐表程序自启吗?可以通过Windows进程,与该狐表程序的名字做比对,判断是否已经在运行

 回到顶部
帅哥哟,离线,有人找我吗?
flashv
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
  发帖心情 Post By:2022/4/4 17:45:00 [只看该作者]

不是,写的一个收银系统,要调用扫码收款的程序.

 回到顶部
帅哥哟,离线,有人找我吗?
flashv
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
  发帖心情 Post By:2022/4/4 22:50:00 [只看该作者]

官方老师们都放假了啊?

 回到顶部
帅哥哟,离线,有人找我吗?
flashv
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
  发帖心情 Post By:2022/4/5 0:26:00 [只看该作者]

如何判断文件是否存在我已经知道了.
如何判断文件是否运行了呢?(可执行文件,不是EXCEL文档)

 回到顶部
帅哥哟,离线,有人找我吗?
hongsejiyi
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:333 积分:5177 威望:0 精华:0 注册:2019/1/1 15:53:00
  发帖心情 Post By:2022/4/5 7:56:00 [只看该作者]

看看是否有用,请参考:

函数代码:  函数名为test_win
'本函数的功能是,测试指定的程序/窗口标题,是否存在
'可以终止指定的窗口
'如果存在,返回True,不存在返回 False
'第三个参数可有可无,如果有且为True,就会查找该窗口,如果有就关闭; 如果没有或者有且为False,只查不关闭.

Dim proc_name As String = args(0)  '运行程序的文件名,不函扩展
Dim proc_title As String = args(1) '窗口标题

Dim proc_kill As Boolean  '获得是否关闭此窗口

If args.length =3 Then  '参数可以只有两个
    proc_kill  = args(2)
Else
    proc_kill = False
End If

Dim test_win As Boolean = False   '返回值 ,默认为False

Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
For Each p As System.Diagnostics.Process In ps
    If (proc_name = p.ProcessName AndAlso p.MainWindowTitle.contains( proc_title ) )
        'msgbox(p.MainWindowTitle)
        test_win = True
        'output.Show(p.processname & "->" & p.mainwindowtitle)
        If proc_kill Then
            p.kill  '杀掉查找到的进程
        End If
    End If
Next

Return test_win  '返回查找的状态,True为查找到了,False为没有找到

[此贴子已经被作者于2022/4/5 7:56:42编辑过]

 回到顶部