大哥们好,本人是公司网管,最近因公司同事们猛聊QQ。而被老板痛骂!本人想写一个监控的小程序,随电脑自动启动,当电脑一启动QQ程序,该监控程序就KILL掉QQ程序!!
请大哥们给个意见!!!
请大哥们给个意见!!!
解决方案 »
- picturebox问题,急~~~~急~~~~进来看看也给分
- 请问各位从哪里能找到VB高手?或是WINDOWS编程高手?或API高手?
- vsFlexGrid的问题,小数点前面的零没法显示.
- 有过软件发售经历的爷们们请进来!
- 如何实现语音视频聊天
- mshflexgrid 显示记录超不过2048条,怎样解决? 急
- 有谁知道Ado的动态属性Unique Table,Unique Schema,Unique Catalog的使用
- 问一个问题哥哥们不要笑我~~~IDE是什么呀??谢谢~~~
- 请教Content.IE5文件夹的路径存在注册表的哪个键中
- 关于commondialog的问题,请教各路英雄.
- 急盼答复一个问题,在线等待(关于ADODC不能在98下运行的问题)
- 求救?
dim hwnd as long
hwnd = FindWindow(your_fomr_classname, your_fomr_caption)
if (hwnd <> 0)
SendMessage(hwnd, WM_CLOSE, 0, 0)
end if
判断如果类名="#32770"的就KILL掉,这样就可以.
显示进程、关闭进程
首先通过CreateToolhelp32Snapshot函数创建一个进程的快照,然后通过调用Process32First使用快照返回的句柄对进程进行遍历,相关的信息存放在PROCESSENTRY32结构类型的实例中,然后显示出来。 Winxp+vb6+sp6代码如下:Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As LongPrivate Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As LongPrivate Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As LongPrivate Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _ ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long Private Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As Long, _ ByVal uExitCode As Long) As Long Private 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 * 1024End Type Const TH32CS_SNAPHEAPLIST = &H1Const TH32CS_SNAPPROCESS = &H2Const TH32CS_SNAPTHREAD = &H4Const TH32CS_SNAPMODULE = &H8Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)Const TH32CS_INHERIT = &H80000000'添加listview控件,3个按钮'删除listview中选定的进程Private Sub Command2_Click() If MsgBox("你想删除 " & ListView1.SelectedItem.SubItems(2) & " 进程?", vbYesNo + vbQuestion) <> vbYes Then Exit Sub End If Dim mProcID As Long mProcID = OpenProcess(1&, -1&, ListView1.SelectedItem) TerminateProcess mProcID, 0& DoEvents ListView1.ListItems.Remove (ListView1.SelectedItem.Index) ListView1.RefreshEnd Sub'得到进程填充listviewPrivate Sub Command1_Click() Dim my As PROCESSENTRY32 Dim l As Long Dim l1 As Long Dim mlistitem As ListItem ' List1.Clear l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) If l Then my.dwSize = 1060 If (Process32First(l, my)) Then '遍历第一个进程 Do Set mlistitem = ListView1.ListItems.Add(, , my.th32ProcessID) mlistitem.SubItems(1) = my.th32ParentProcessID mlistitem.SubItems(2) = my.szExeFile Loop Until (Process32Next(l, my) < 1) '遍历所有进程知道返回值为False End If l1 = CloseHandle(l) End IfEnd Sub Private Sub Form_Load() ListView1.ListItems.Clear ListView1.ColumnHeaders.Clear ListView1.FullRowSelect = True ListView1.ColumnHeaders.Add , , "Process ID", 1500 ListView1.ColumnHeaders.Add , , "Process Parent ID", (1500) ListView1.ColumnHeaders.Add , , "Name", (Me.Width - 3200) ListView1.View = lvwReportEnd Sub '循环检测进程中是否有指定进程,如果有,关闭,如果没有,启动一个程序Private Sub Command3_Click() Dim my As PROCESSENTRY32 Dim l As Long Dim l1 As Long Dim flag As Boolean Dim mName As String Dim i As Integer 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 = "winword.exe" Then PID = my.th32ProcessID pname = mName MsgBox "找到word" If MsgBox("你想删除 " & mName & " 进程?", vbYesNo + vbQuestion) <> vbYes Then Exit Sub End If Dim mProcID As Long mProcID = OpenProcess(1&, -1&, PID) TerminateProcess mProcID, 0& flag = True Exit Sub Else flag = False End If Loop Until (Process32Next(l, my) < 1) '遍历所有进程知道返回值为False End If l1 = CloseHandle(l) End If If flag = False Then MsgBox "没有找到word" Shell "c:\Program Files\Microsoft Office\Office\WINWORD.EXE", vbNormalFocus End IfEnd Sub
请大哥们给个意见!!!
结束进程用TerminateProcess就可以了不过建议你从设置服务器的方面考虑一下(比如说封掉某个端口)
要不会个思路,把允许执行的程序列出来,别的就不能上了,有点象天网那样