Foxtable(狐表)用户栏目专家坐堂 → 怎么实现删除目录之前 关闭所有进程


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

主题:怎么实现删除目录之前 关闭所有进程

帅哥哟,离线,有人找我吗?
李孝春
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)For Each p As System.Diagnostics.P...  发帖心情 Post By:2021/1/15 13:55:00 [只看该作者]

有点蓝老师 经反复测试   如果是当前直接打开word pdf 等文件  然后运行如下代码  是可以直接关闭进程  并且删除目录

但是如果把这些文件全部在窗体web浏览器组件中显示   如下代码只能弹出3这个提示   567这个提示无法操作  无法关闭进程和删除目录   有没有办法修正代码呢?

vars("文件名")="EventCode" 
If vars("文件名")="" Then
    If FileSys.DirectoryExists(ProjectPath & "\Reports") Then '
        MessageBox.Show("1")
        FileSys.DeleteDirectory(ProjectPath & "\Reports",2,2)
        MessageBox.Show("2")
    End If
Else
    MessageBox.Show("3")
    Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()  
    For Each p As System.Diagnostics.Process In ps
        Select Case p.ProcessName
            Case "wps","WINWORD","POWERPNT","AcroRd32","WINEXCEL"
                If p.MainWindowTitle.Contains(vars("文件名")) And p.MainWindowTitle<>"" Then
                    MessageBox.Show("5")
                    p.kill
                    If FileSys.DirectoryExists(ProjectPath & "\Reports") Then '
                        MessageBox.Show("6")
                        FileSys.DeleteDirectory(ProjectPath & "\Reports",2,2)
                        MessageBox.Show("7")
                    End If
                End If
        End Select
    Next
End If
[此贴子已经被作者于2021/1/15 13:55:18编辑过]

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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/15 14:05:00 [只看该作者]

试试

窗口beforeclose事件
Dim web As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
web
.Address = nothing

BeforeCloseProject事件
if forms("xx窗口").opened
forms("xx窗口").close
System.Threading.Thread.Sleep(1000)
end if
vars("文件名")="EventCode" 
If vars("文件名")="" Then
    If FileSys.DirectoryExists(ProjectPath & "\Reports") Then '
……

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)试试窗口beforeclose事件Dim we...  发帖心情 Post By:2021/1/15 14:30:00 [只看该作者]

测试了还是没有达到效果   麻烦老师看看(如果是在项目外打开文件  代码直接可以起到效果   如果在窗体中web浏览器打开文件 代码不起效果  为何?)

图片点击可在新窗口打开查看此主题相关图片如下:12121.gif
图片点击可在新窗口打开查看

以下内容是专门发给有点蓝浏览




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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/15 14:48:00 [只看该作者]

Else
    MessageBox.Show("3")
    Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
    For Each p As System.Diagnostics.Process In ps
        Select Case p.ProcessName
            Case "wps","WINWORD","POWERPNT","AcroRd32","WINEXCEL"
                If p.MainWindowTitle.Contains(vars("文件名")) And p.MainWindowTitle<>"" Then
                    MessageBox.Show("5")
                    p.kill
                    
                End If
        End Select
    Next
    If FileSys.DirectoryExists(ProjectPath & "\Reports") Then '
        MessageBox.Show("6")
        FileSys.DeleteDirectory(ProjectPath & "\Reports",2,2)
        MessageBox.Show("7")
    End If
End If

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)Else    MessageBox.Show(...  发帖心情 Post By:2021/1/15 15:07:00 [只看该作者]

谢谢!

 回到顶部
总数 15 上一页 1 2