以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请问如何结束Excel进程 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148421) |
|||||
-- 作者:km007 -- 发布时间:2020/4/7 17:19:00 -- 请问如何结束Excel进程
|
|||||
-- 作者:有点蓝 -- 发布时间:2020/4/7 17:32:00 -- 强制杀掉execl进程 Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()For Each p As System.Diagnostics.Process In ps output.show(p.processName) If ("Excel" = p.ProcessName) msgbox(p.MainWindowTitle) p.kill End If Next FileSys.DeleteFile(rpt,2,2)
|
|||||
-- 作者:km007 -- 发布时间:2020/4/7 17:43:00 -- 这样的话,会把其他Excel的进程都被关掉了,如果我仅想关闭是 WebBrowser 打开的Excel文件的进程呢? |
|||||
-- 作者:km007 -- 发布时间:2020/4/7 18:42:00 -- 蓝版,请赐教 |
|||||
-- 作者:有点蓝 -- 发布时间:2020/4/7 20:02:00 -- 试试 Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() For Each p As System.Diagnostics.Process In ps output.show(p.processName) If ("Excel" = p.ProcessName andalso p.MainWindowTitle = "") msgbox(p.MainWindowTitle)
p.kill End If Next FileSys.DeleteFile(rpt,2,2) |
|||||
-- 作者:km007 -- 发布时间:2020/4/7 21:15:00 -- 以下是引用有点蓝在2020/4/7 20:02:00的发言: 试试 Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() For Each p As System.Diagnostics.Process In ps output.show(p.processName) If ("Excel" = p.ProcessName andalso p.MainWindowTitle = "") msgbox(p.MainWindowTitle)
p.kill End If Next FileSys.DeleteFile(rpt,2,2) 刚测试,在没有打开其他Excel文件时,这代码是没问题,但如果存在已打开了其他Excel文件时,还是会报一楼的那个截图错误 |
|||||
-- 作者:有点蓝 -- 发布时间:2020/4/7 21:49:00 -- beforeclose事件 Dim wbr As WinForm.WebBrowser = e.Form.Controls("WebBrowser1") wbr.AddRess = nothing application.doevents
|
|||||
-- 作者:km007 -- 发布时间:2020/4/7 22:35:00 -- 蓝版厉害! 另外再请教个问题:由于我将窗口中,用控件将 WebBrowser1 显示的Excel文件左上角的 保存按钮 挡住了,不想给操作员点击 自己另外在窗口中添加了一个按钮控件,我想操作员点击该按钮控件后 实现跟 Excel自带的保存功能一样,请问这个代码该如何写呢? 还有就是, WebBrowser1 显示的Excel,如存在修改过,关闭时,会提示下图的提示 [此贴子已经被作者于2020/4/7 22:52:40编辑过]
|
|||||
-- 作者:有点蓝 -- 发布时间:2020/4/7 22:58:00 -- 比较麻烦
比如: Dim oDocument As object = axWebBrowser.Gettype().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, Nothing, axWebBrowser, Nothing) oDocument.save
|
|||||
-- 作者:km007 -- 发布时间:2020/4/7 23:59:00 -- 蓝版,保存的问题解决了,但占用进程的问题依旧 操作步骤 1、先用OFFICE随便打开一份Excel文件; 2、打开狐表项目窗口中 WebBrowser1 显示Excel文件 BeforeClose事件: Dim wbr As WinForm.WebBrowser = e.Form.Controls("WebBrowser1") wbr.AddRess = Nothing application.doevents AfterClose事件: Dim rpt As String = ProjectPath & "Reports\\Bee8879fd.xls" Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() For Each p As System.Diagnostics.Process In ps If ("Excel" = p.ProcessName AndAlso p.MainWindowTitle = "") p.kill End If Next Try FileSys.DeleteFile(rpt,2,2) \'则彻底删除之 Catch ex As Exception End Try 3、关闭 WebBrowser1 窗口,此时会依旧会出现以下截图提示 [此贴子已经被作者于2020/4/8 0:00:36编辑过]
|