我是靠谱客的博主 朴素往事,最近开发中收集的这篇文章主要介绍用VB结束Excel的进程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  1. '窗体中放一个默认的按钮
  2. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As LongByVal th32ProcessID As LongAs Long
  3. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
  4. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
  5. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As LongAs Long
  6. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
  7.                           ByVal blnheritHandle As LongByVal dwAppProcessId As LongAs Long
  8. Private Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As Long, _
  9.                           ByVal uExitCode As LongAs Long
  10. Private Type PROCESSENTRY32
  11.     dwSize   As Long
  12.     cntUsage   As Long
  13.     th32ProcessID   As Long
  14.     th32DefaultHeapID   As Long
  15.     th32ModuleID   As Long
  16.     cntThreads   As Long
  17.     th32ParentProcessID   As Long
  18.     pcPriClassBase   As Long
  19.     dwFlags   As Long
  20.     szExeFile   As String * 1024
  21. End Type
  22. Const TH32CS_SNAPHEAPLIST = 
  23. Const TH32CS_SNAPPROCESS = 
  24. Const TH32CS_SNAPTHREAD = 
  25. Const TH32CS_SNAPMODULE = 
  26. Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
  27. Const TH32CS_INHERIT = 
  28. Private Sub Command1_Click()
  29.     Dim my     As PROCESSENTRY32
  30.     Dim l     As Long
  31.     Dim l1     As Long
  32.     Dim FileName As String * 9
  33.     Dim mProcID As Long
  34.     l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
  35.     If l Then
  36.         my.dwSize = 1060
  37.         If (Process32First(l, my)) Then         '遍历第一个进程
  38.             Do
  39.                 FileName = my.szExeFile
  40.                 If UCase(FileName) = "EXCEL.EXE" Then '当前的进程是Excel
  41.                     mProcID = OpenProcess(1&, -1&, my.th32ProcessID)
  42.                     TerminateProcess mProcID, 0&    '结束Excel进程
  43.                     Debug.Print "结束了" & FileName
  44.                     DoEvents
  45.                 End If
  46.             Loop Until (Process32Next(l, my) < 1)             '遍历所有进程直到返回值为False
  47.         End If
  48.         l1 = CloseHandle(l)
  49.     End If
  50. End Sub

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

最后

以上就是朴素往事为你收集整理的用VB结束Excel的进程的全部内容,希望文章能够帮你解决用VB结束Excel的进程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部