马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着Java嘛,而且像PHP/C#等语言不需要修改代码都可以跨Windows/Linux。起首经由过程CreateToolhelp32Snapshot函数创立一个历程的快照,然后经由过程挪用Process32First利用快照前往的句柄对历程举行遍历,相干的信息寄存在PROCESSENTRY32布局范例的实例中,然后显现出来。
Winxp+vb6+sp6
代码以下:
PrivateDeclareFunctionCreateToolhelp32SnapshotLib"kernel32"(ByValdwFlagsAsLong,ByValth32ProcessIDAsLong)AsLong
PrivateDeclareFunctionProcess32FirstLib"kernel32"(ByValhSnapshotAsLong,lppeAsPROCESSENTRY32)AsLong
PrivateDeclareFunctionProcess32NextLib"kernel32"(ByValhSnapshotAsLong,lppeAsPROCESSENTRY32)AsLong
PrivateDeclareFunctionCloseHandleLib"kernel32"(ByValhObjectAsLong)AsLong
PrivateDeclareFunctionOpenProcessLib"kernel32"(ByValdwDesiredAccessAsLong,_
ByValblnheritHandleAsLong,ByValdwAppProcessIdAsLong)AsLong
PrivateDeclareFunctionTerminateProcessLib"kernel32"(ByValApphProcessAsLong,_
ByValuExitCodeAsLong)AsLong
PrivateTypePROCESSENTRY32
dwSizeAsLong
cntUsageAsLong
th32ProcessIDAsLong
th32DefaultHeapIDAsLong
th32ModuleIDAsLong
cntThreadsAsLong
th32ParentProcessIDAsLong
pcPriClassBaseAsLong
dwFlagsAsLong
szExeFileAsString*1024
EndType
ConstTH32CS_SNAPHEAPLIST=&H1
ConstTH32CS_SNAPPROCESS=&H2
ConstTH32CS_SNAPTHREAD=&H4
ConstTH32CS_SNAPMODULE=&H8
ConstTH32CS_SNAPALL=(TH32CS_SNAPHEAPLISTOrTH32CS_SNAPPROCESSOrTH32CS_SNAPTHREADOrTH32CS_SNAPMODULE)
ConstTH32CS_INHERIT=&H80000000
增加listview控件,3个按钮
删除listview当选定的历程
PrivateSubCommand2_Click()
IfMsgBox("你想删除"&ListView1.SelectedItem.SubItems(2)&"历程?",vbYesNo+vbQuestion)vbYesThen
ExitSub
EndIf
DimmProcIDAsLong
mProcID=OpenProcess(1&,-1&,ListView1.SelectedItem)
TerminateProcessmProcID,0&
DoEvents
ListView1.ListItems.Remove(ListView1.SelectedItem.Index)
ListView1.Refresh
EndSub
失掉历程添补listview
PrivateSubCommand1_Click()
DimmyAsPROCESSENTRY32
DimlAsLong
Diml1AsLong
DimmlistitemAsListItem
List1.Clear
l=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0)
IflThen
my.dwSize=1060
If(Process32First(l,my))Then遍历第一个历程
Do
Setmlistitem=ListView1.ListItems.Add(,,my.th32ProcessID)
mlistitem.SubItems(1)=my.th32ParentProcessID
mlistitem.SubItems(2)=my.szExeFile
LoopUntil(Process32Next(l,my)<1)遍历一切历程晓得前往值为False
EndIf
l1=CloseHandle(l)
EndIf
EndSub
PrivateSubForm_Load()
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Clear
ListView1.FullRowSelect=True
ListView1.ColumnHeaders.Add,,"ProcessID",1500
ListView1.ColumnHeaders.Add,,"ProcessParentID",(1500)
ListView1.ColumnHeaders.Add,,"Name",(Me.Width-3200)
ListView1.View=lvwReport
EndSub
轮回检测历程中是不是有指定历程,假如有,封闭,假如没有,启动一个程序
PrivateSubCommand3_Click()
DimmyAsPROCESSENTRY32
DimlAsLong
Diml1AsLong
DimflagAsBoolean
DimmNameAsString
DimiAsInteger
l=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0)
IflThen
my.dwSize=1060
If(Process32First(l,my))Then遍历第一个历程
Do
i=InStr(1,my.szExeFile,Chr(0))
mName=LCase(Left(my.szExeFile,i-1))
IfmName="winword.exe"Then
PID=my.th32ProcessID
pname=mName
MsgBox"找到word"
IfMsgBox("你想删除"&mName&"历程?",vbYesNo+vbQuestion)vbYesThen
ExitSub
EndIf
DimmProcIDAsLong
mProcID=OpenProcess(1&,-1&,PID)
TerminateProcessmProcID,0&
flag=True
ExitSub
Else
flag=False
EndIf
LoopUntil(Process32Next(l,my)<1)遍历一切历程晓得前往值为False
EndIf
l1=CloseHandle(l)
EndIf
Ifflag=FalseThen
MsgBox"没有找到word"
Shell"c:ProgramFilesMicrosoftOfficeOfficeWINWORD.EXE",vbNormalFocus
EndIf
EndSub
[img=1border=0style=,1src=]http://www.ckuyun.com/[/img]
C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。 |