加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

用VB结束Excel的进程

发布时间:2020-12-16 23:50:55 所属栏目:大数据 来源:网络整理
导读:'窗体中放一个默认的按钮 Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" ( ByVal dwFlags As Long , ByVal th32ProcessID As Long ) As Long Private Declare Function Process32First Lib "kernel32" ( ByVal hSnapshot As Long ,lppe
  1. '窗体中放一个默认的按钮
  2. PrivateDeclareFunctionCreateToolhelp32SnapshotLib"kernel32"(ByValdwFlagsAsLong,ByValth32ProcessIDAsLong)AsLong
  3. PrivateDeclareFunctionProcess32FirstLib"kernel32"(ByValhSnapshotAsLong,lppeAsPROCESSENTRY32)AsLong
  4. PrivateDeclareFunctionProcess32NextLib"kernel32"(ByValhSnapshotAsLong,lppeAsPROCESSENTRY32)AsLong
  5. PrivateDeclareFunctionCloseHandleLib"kernel32"(ByValhObjectAsLong)AsLong
  6. PrivateDeclareFunctionOpenProcessLib"kernel32"(ByValdwDesiredAccessAsLong,_
  7. ByValblnheritHandleAsLong,ByValdwAppProcessIdAsLong)AsLong
  8. PrivateDeclareFunctionTerminateProcessLib"kernel32"(ByValApphProcessAsLong,_
  9. ByValuExitCodeAsLong)AsLong
  10. PrivateTypePROCESSENTRY32
  11. dwSizeAsLong
  12. cntUsageAsLong
  13. th32ProcessIDAsLong
  14. th32DefaultHeapIDAsLong
  15. th32ModuleIDAsLong
  16. cntThreadsAsLong
  17. th32ParentProcessIDAsLong
  18. pcPriClassBaseAsLong
  19. dwFlagsAsLong
  20. szExeFileAsString*1024
  21. EndType
  22. ConstTH32CS_SNAPHEAPLIST=
  23. ConstTH32CS_SNAPPROCESS=
  24. ConstTH32CS_SNAPTHREAD=
  25. ConstTH32CS_SNAPMODULE=
  26. ConstTH32CS_SNAPALL=(TH32CS_SNAPHEAPLISTOrTH32CS_SNAPPROCESSOrTH32CS_SNAPTHREADOrTH32CS_SNAPMODULE)
  27. ConstTH32CS_INHERIT=
  28. PrivateSubCommand1_Click()
  29. DimmyAsPROCESSENTRY32
  30. DimlAsLong
  31. Diml1AsLong
  32. DimFileNameAsString*9
  33. DimmProcIDAsLong
  34. l=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0)
  35. IflThen
  36. my.dwSize=1060
  37. If(Process32First(l,my))Then'遍历第一个进程
  38. Do
  39. FileName=my.szExeFile
  40. IfUCase(FileName)="EXCEL.EXE"Then'当前的进程是Excel
  41. mProcID=OpenProcess(1&,-1&,my.th32ProcessID)
  42. TerminateProcessmProcID,0&'结束Excel进程
  43. Debug.Print"结束了"&FileName
  44. DoEvents
  45. EndIf
  46. LoopUntil(Process32Next(l,my)<1)'遍历所有进程直到返回值为False
  47. EndIf
  48. l1=CloseHandle(l)
  49. EndIf
  50. EndSub

用VB结束所有Excel的进程,用VB开发Exxcel的应用时,如果出现意外退出,Excel进程会驻留,以后再调用Excel时不能正常使用,所以有时有必要将所有Excel全部结束

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读