vb创建的active.exe怎么结束他的进程呢?

yuanxy 2002-09-24 10:01:28
这是进程代码?
Private frmTimeClock As frmClock
Private WithEvents oTimer As Timer
Public Event JobStart()
Public Event JobEnd()

Private Sub Class_Initialize()
Set frmTimeClock = New frmClock
Load frmTimeClock
Set oTimer = frmTimeClock.timClock
oTimer.Enabled = False
End Sub

Private Sub Class_Terminate()
Set oTimer = Nothing
Unload frmTimeClock
End Sub

Public Sub StartJob()
oTimer.Interval = 100
oTimer.Enabled = True
End Sub

Private Sub doBigJob()
Dim lngTemp As Long, lngSum As Long
For lngTemp = 1 To 1000000000
lngSum = lngSum + 1
Next
End Sub

Private Sub oTimer_timer()
oTimer.Enabled = False
RaiseEvent JobStart
doBigJob
RaiseEvent JobEnd
End Sub
这是调用进程的代码
Option Explicit
Dim WithEvents myJob As BigJob

Private Sub cmdStart_Click()
myJob.StartJob
End Sub

Private Sub Form_Load()
Set myJob = New BigJob
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set myJob = Nothing
End Sub

Private Sub myJob_JobEnd()
lblMessage.Caption = "任务完成!"
End Sub

Private Sub myJob_JobStart()
lblMessage.Caption = "正在执行任务..."
End Sub

Private Sub timClock_Timer()
lblTime.Caption = Format(Now, "HH:NN:SS")
End Sub

我如果不等进程结束而关闭窗口他会出现一个切换按钮,请问各位高手怎么结束这个进程,还有进程之间可以通信吗?谢谢
...全文
187 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
laolin 2002-09-26
  • 打赏
  • 举报
回复
试试看这个办法:

1. 在你的进程程序中加个Cancel Flag
Public Cancel As Boolean

2.在处理中加入取消操作,最好再插入一个DoEvents
Private Sub doBigJob()
Dim lngTemp As Long, lngSum As Long
For lngTemp = 1 To 1000000000
If Cancel Then Exit For
DoEvents
lngSum = lngSum + 1
Next
End Sub

3.结束进程时,先取消进程处理
Private Sub Form_Unload(Cancel As Integer)
myJob.Cancel = True
Set myJob = Nothing
End Sub
Ah 2002-09-26
  • 打赏
  • 举报
回复
就是用API函数
OpenProcess 来打开进程
TerminateProcess 结束进程

就这么简单
junwhj 2002-09-25
  • 打赏
  • 举报
回复
'仅供参考

VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Begin VB.Form Form1
Caption = "进程管理"
ClientHeight = 3150
ClientLeft = 60
ClientTop = 345
ClientWidth = 7080
LinkTopic = "Form1"
ScaleHeight = 3150
ScaleWidth = 7080
StartUpPosition = 3 '窗口缺省
Begin MSComctlLib.ListView ListView1
Height = 2415
Left = 120
TabIndex = 3
Top = 120
Width = 6855
_ExtentX = 12091
_ExtentY = 4260
LabelWrap = -1 'True
HideSelection = -1 'True
_Version = 393217
ForeColor = -2147483640
BackColor = -2147483643
BorderStyle = 1
Appearance = 1
NumItems = 0
End
Begin VB.CommandButton cmdTerminate
Caption = "结束进程"
Height = 375
Left = 4680
TabIndex = 2
Top = 2640
Width = 1095
End
Begin VB.CommandButton cmdQuit
Caption = "退出"
Height = 375
Left = 5880
TabIndex = 1
Top = 2640
Width = 1095
End
Begin VB.CommandButton cmdRefresh
Caption = "刷新"
Height = 375
Left = 3480
TabIndex = 0
Top = 2640
Width = 1095
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

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 As PROCESSENTRY32) As Long

Private Declare Function Process32Next Lib "kernel32" _
(ByVal hSapshot As Long, lppe As PROCESSENTRY32) As Long

Private Declare Function TerminateProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long

Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long

Private Type PROCESSENTRY32
dwSize As Long
cntUseage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
swFlags As Long
szExeFile As String * 1024
End Type

Private Const TH32CS_SNAPPROCESS = &H2
Private Const PROCESS_TERMINATE = &H1


Private Sub Form_Load()
ListView1.View = lvwReport
ListView1.ColumnHeaders.Add , , "文件名", 5000
ListView1.ColumnHeaders.Add , , "进程ID", 1500
Call ShowProcessInfo
End Sub


Private Sub cmdRefresh_Click()
Call ShowProcessInfo
End Sub


Private Sub cmdTerminate_Click()
Dim lngProcess As Long

If ListView1.SelectedItem Is Nothing Then
Exit Sub
End If

lngProcess = OpenProcess(PROCESS_TERMINATE, _
0&, _
Val(ListView1.SelectedItem.SubItems(1)))
Call TerminateProcess(lngProcess, 1&)
Call CloseHandle(lngProcess)
Call ShowProcessInfo
End Sub


Private Sub cmdQuit_Click()
Unload Me
End Sub


Private Sub ShowProcessInfo()
Dim pe As PROCESSENTRY32
Dim r As Long, i As Long
Dim ListItemX As ListItem

ListView1.ListItems.Clear
r = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If r <> 0 Then
pe.dwSize = 1060
Process32First r, pe
Set ListItemX = ListView1.ListItems.Add(, , GetFileName(pe.szExeFile))
ListItemX.SubItems(1) = pe.th32ProcessID
Do
i = Process32Next(r, pe)
If i > 0 Then
Set ListItemX = ListView1.ListItems.Add(, , GetFileName(pe.szExeFile))
ListItemX.SubItems(1) = pe.th32ProcessID
Else
Exit Do
End If
Loop
End If
End Sub


Private Function GetFileName(strFullPath As String) As String
GetFileName = Left(strFullPath, InStr(1, strFullPath, Chr(0)))
End Function
yuanxy 2002-09-25
  • 打赏
  • 举报
回复
太深奥了,来点简单的有吗?
yuanxy 2002-09-24
  • 打赏
  • 举报
回复
我自己up
1,mruxdzip.exe
在菜单上最近打开文件的历史记录控件(1453KB)
2,applogger.zip
具有删除到回收站、读写 INI 文件、计算剩余磁盘空间,复制文件和添加到 Windows 文档列表(57KB)
3,ccrpbd10.zip
Windows 游览对话框控件(75KB)
4,ccrpdrg.zip
增强了的列表框控件(71KB)
5,ccrpfd.zip
Windows 文件对话框控件,功能强劲,可制作出 VB 的文件对话框(95KB)
6,ccrphky.zip
键盘控件(69KB)
7,ccrpprg.zip
进程杆控件(150KB)
8,ctlist.exe
一个增强的 ListView 控件(376KB)
9,ctlistbar.exe
Microsoft Outlook 风格的列表框控件(287KB)
10,cttree.exe
一个增强的 TreeView 控件(424KB)
11,dprogressw.exe
DameWare 公司出品进程杆控件(177KB)
12,proplistw.exe
DameWare公司出品类似 VB 中的属性列表控件(291KB)
13,buttnbar6.zip
Outlook 列表框控件(700KB)
14,fsi.zip
系统信息控件(24KB)
15,fsshr20d.exe
应用程序交换数据控件,不需要使用 DDE,COM 和剪贴板(289KB)
16,gbarocx.zip
进程杆控件(171KB)
17,graphic.zip
不需要调用 API ,创建一个 Office Ani 精灵助手(50KB)
18,ctlbar.ZIP
用过Oicq的用户,一定熟悉这个控件(59KB)
19,big2gb.zip
一个BIG5码<=>GB码互换的完全免费的ActiveX控件(81KB)
20,capscreen.zip
这是一个屏幕拷贝的控件,可以实现全屏的拷贝并支持另存为位图类型的文件 (28KB)
21,digital.zip
能够以液晶字体方式显示数字的一个小控件(15KB)
22,eqpro.zip
一个调整系统音量的控件,控制音量包括;很方便地控制,控件也很小巧(15KB)
23,flatbar.zip
一个工具栏控件,可变VB5.0的工具栏为Office或IE类型的平面工具栏(27KB)
24,lyftools.zip
这是一个封装了500多个Windows API的控件(229KB)
25,masflc.zip
一个用来播放 FLC,FLI 的 3DS 动画格式控件(60KB)
26,xzipdemo.zip
Xceed Zip控件 (98KB)
27,lfbb.zip
兰花打印控件(预览及打印输出,它支持多列,文本自动换行,页头和页尾,表格及段落)(186KB)
28,keyboard.zip
检测键盘按键控件(13KB)
29,winapi.zip
这是一个封装了部分Windows API的控件(例如:发EMail、改变分辨率等)(92KB)
30,dbdemo.zip
3D立体按钮控件(138KB)
31,spelltxt.zip
一个文档拼音检查的控件(337KB)
32,swflash.zip
播放的Flash文件的控件(160KB)
33,185.zip
EasySound 一个封装了DirectSound API的控件 (565KB)
34,157.zip
子分类控件,包含控件源码(44KB)
35,132.zip
MikoUtil系列控件(184KB)
36,109.zip
GB-Big5语言编码转换的控件源码(39KB)
37,108.zip
微软的DirectX 7 for VB开发库文件(187KB)
38,11.zip
MsgHook 用于子分类、截获消息的控件(147KB)
39,c1.zip
Windows 9x注册表控件(35KB)
40,c8.zip
只要点击就可以打开超连接的控件(10KB)
41,c9.zip
GIF98(24KB)
42,c10.zip
sysmenu(9KB)
43,c11.zip
小型控件集(40KB)
44,c12.zip
anigif(40KB)
45,cst.zip
圆盘仪表控件 V3.1(4143KB)
46,EZX.zip
让你能在VB中使用DirectX的控件,附例子和源代码(1619KB)
47,NCTDesignBox.exe
NCTDesignBox 1.01(513KB)
48,c_arp.zip
Activereport 1.1的破解文件(1KB)
49,clock.zip
显示时间和日期信息控件(5KB)
50,InputeDate.zip
日期输入框控件(13KB)
51,api21.zip
封装了500多个Windows API的控件,覆盖了网络、系统、界面、多媒体、图形、文字等各个方面(261KB)
52,ARRegistry.zip
访问系统注册表的控件(25KB)
53,isysinfo.zip
是一个可以获得系统信息的ActiveX控件,该控件是由VB5.0编写,使用这个控件可以获得系统的内存大小、CPU类型、显示器的分辩率、颜色数系统中各个驱动器、CPU占用率、Windows版本等信息 (19KB)
54,MsgHoo32.zip
同样是Windows消息处理控件(22KB)
55,MsgBlst32.zip
这是一个拦截、处理消息的控件(18KB)
56,threed32.zip
一个3D控件(73KB)
57,vfoutbar.zip
这里还有另一个控件 OutLook 风格的 BAR(39KB)
58,ovalbutton.zip
椭圆形按钮控件(8KB)
59,3dbdemo.zip
3D立体按钮控件(138KB)
60,tubPrinter.zip
可直接打印DataGrid,ListView,MsFlexGrid(53KB)
61,shape.zip
椭圆、三角、星...形按钮控件(131KB)
62,command.zip
千千平面按钮(35KB)
63,Chat.zip
Chat控件(16KB)

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧