小菜之前没用到过关于进程这些方面的函数,所以不熟,请给我些出来,谢谢!
解决方案 »
- 如何将image控件放到自定义控件(或picturebox)的前方?
- 如何用VB代码进行3721的卸载!!!
- 我打开RECORDSET更改记录时,用EDIT方法,但提示未找到该方法,我把代码单独拿出来测试,没有问题。
- 如何查找一个文件是否存在?(文件只提供文件名)
- 可不可以在toolbar的按钮(button)上加16*16的图标(icon)?
- 请大家给我介绍点VB6.0的书籍
- 麻烦大家帮我翻译一段英文好吗?是一道算法题的描述部分
- 各位大侠,这是小弟第N次向您求救啦,此题难道真的无解吗!!!(Marki兄在吗?)
- 关于加密问题,HELP ME
- 用adoConnection.Open打开EXCEL文件,为何出现运行错误^-2147418113^
- 用VB去点击另一个程序的某个按钮
- vb6 select语句中加入变量后 总报错“from子句语法错误”
Private Sub Command1_Click()
Dim w As WebBrowser
Dim s As New SHDocVw.ShellWindows
For Each w In s
w.Quit
Next
End Sub
另外,本报不需要webbrowser吧?'引用ieframe.dll
Private Sub Command1_Click()
Dim w
Dim s As New SHDocVw.ShellWindows
For Each w In s
If InStr(w.LocationURL, "baidu.com") > 0 Then
MsgBox TypeName(w)
w.Navigate ("www.google.cn")’w.Quit,根据浏览器类别来作出相应动作,非ie的建议转移到一个指定的页面,例如警告页面
End If
Next
End Sub
可以用w.FullName判断是不是IE;
ShellWindows在SHDocVw定义的,所以要webbrowser。
s = "iexplore.exe"s = "Select * from Win32_Process Where Name = '" & s & "'"
Set o = GetObject("winmgmts:")
For Each p in o.ExecQuery(s)
p.Terminate
Next
Set objApp = CreateObject("Shell.Application")
For Each objIE In objApp.windows
If InStr(1, objIE.FullName, "iexplore.exe", vbTextCompare) Then
objIE.Quit
End If
Next
Set objApp = Nothing
'执行进程创建事件
Dim objSWbemServices As SWbemServices
If ConnectWmiServer(objSWbemServices, ".") Then
Set CreateProcessEvent = New SWbemSink
'Set objSWbemServices = GetObject("winmgmts:\\.\root\cimv2")
objSWbemServices.ExecNotificationQueryAsync CreateProcessEvent, "SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'"
Else
MessageBox 0, "连接不到WMI服务!!", "错误", vbCritical
End If
SetObjectNothing objSWbemServices
End Sub
'进程创建事件
Private Sub CreateProcessEvent_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet)
'当有进程创建了则添加信息到LISTVIEW中
Dim lvItem As ListItem, lgWorkingSetSize As Long
Dim processUserName As String, processPath As String
'添加进程名到LISTVIEW中
Set lvItem = Me.lvProcessexInfo.ListItems.Add(, , objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("Name").Value)
'添加进程PID到LISTVIEW中
lvItem.SubItems(1) = objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("ProcessID").Value
'添加进程用户名到LISTVIEW中
processUserName = GetProcessUserNameByProcessID(objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("ProcessID").Value)
lvItem.SubItems(2) = processUserName
'添加进程使用的内存到LISTVIEW中
lvItem.SubItems(3) = CStr(CLng(objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("WorkingSetSize").Value) \ 1024) & "K"
'添加进程路径到LISTVIEW中
If IsNull(objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("CommandLine")) Then
If IsNull(objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("ExecutablePath")) Then
processPath = ""
Else
processPath = objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("ExecutablePath")
End If
Else
If Len(objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("ExecutablePath")) > Len(objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("CommandLine")) Then
processPath = objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("ExecutablePath")
Else
processPath = objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("CommandLine")
End If
End If
lvItem.SubItems(4) = Replace(processPath, """", "")
processPath = objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("ExecutablePath").Value
imgProcessList.ListImages.Add , "H" & objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("ProcessID").Value, GetIcon(processPath)
lvItem.smallIcon = imgProcessList.ListImages.Item("H" & objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("ProcessID").Value).Key
lgWorkingSetSize = (Val(objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("WorkingSetSize").Value) / 1024) / 1024
statusMsg.Panels.Item(1).Text = "进程数: " & CStr(Mid(statusMsg.Panels.Item(1).Text, 5, Len(statusMsg.Panels.Item(1).Text) - 4) + 1)
statusMsg.Panels.Item(2).Text = "内存使用: " & Mid(statusMsg.Panels.Item(2).Text, 6, Len(statusMsg.Panels.Item(2).Text) - 6) + lgWorkingSetSize & "M"
SetObjectNothing lvItem
End Sub本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chenhui530/archive/2007/09/30/1808002.aspx
Option ExplicitPrivate Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 1024
End TypeConst TH32CS_SNAPHEAPLIST = &H1
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPTHREAD = &H4
Const TH32CS_SNAPMODULE = &H8
Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Const TH32CS_INHERIT = &H80000000Dim findpid As Long
Dim FindProcessName As String
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 hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As LongPrivate Function fun_FindProcess(ByVal ProcessName As String) As Long
Dim strdata As String
Dim my As PROCESSENTRY32
Dim l As Long
Dim l1 As Long
Dim mName As String
Dim i As Integer, pid As Long
l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If l Then
my.dwSize = 1060
If (Process32First(l, my)) Then
Do
i = InStr(1, my.szExeFile, Chr(0))
mName = LCase(Left(my.szExeFile, i - 1))
If mName = LCase(ProcessName) Then
pid = my.th32ProcessID
fun_FindProcess = pid
Exit Function
End If
Loop Until (Process32Next(l, my) < 1)
End If
l1 = CloseHandle(l)
End If
fun_FindProcess = 0
End Function
Private Sub Form_Load()
Dim WshShell As Object
Dim exetemp As String
Set WshShell = CreateObject("wscript.shell")
Timer1.Interval = 2000 '2s扫描1次
FindProcessName = "IEXPLORE.EXE" '指定程序
Me.Hide
End SubPrivate Sub Timer1_Timer()
findpid = fun_FindProcess(FindProcessName)
If findpid <> 0 Then Shell "cmd /c taskkill /f /im " & FindProcessName, 0
Timer1.Interval = 0
End Sub
Timer1.Interval = 0 (最后第二行)