當前位置:編程學習大全網 - 編程語言 - 用VB編程,實現用按鈕關閉QQ或者定時自動關閉QQ,怎麽弄?

用VB編程,實現用按鈕關閉QQ或者定時自動關閉QQ,怎麽弄?

Option Explicit

Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long

Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode 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 Const TH32CS_SNAPPROCESS = &H2

Private Const TH32CS_SNAPheaplist = &H1

Private Const TH32CS_SNAPthread = &H4

Private Const TH32CS_SNAPmodule = &H8

Private Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule

Private Const MAX_PATH As Integer = 260

Private Const PROCESS_TERMINATE = &H1

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 * MAX_PATH

End Type

Private Sub Command1_Click()

Dim i As Long

Dim proc As PROCESSENTRY32

Dim snap As Long

Dim exename As String

Dim theloop As Long

Dim ret As ListItem

ListView1.ListItems.Clear '清空所有內容

snap = CreateToolhelpSnapshot(TH32CS_SNAPall, 0) '獲得進程“快照”的句柄

proc.dwSize = Len(proc)

theloop = ProcessFirst(snap, proc) '獲取第壹個進程,並得到其返回值

i = 0

While theloop <> 0 '當返回值非零時繼續獲取下壹個進程

exename = proc.szExeFile

Set ret = ListView1.ListItems.Add(, "first" & CStr(i), exename) '將進程名添加到第壹項中

ListView1.ListItems("first" & CStr(i)).SubItems(1) = proc.th32ProcessID '將進程ID添加到第二項中

i = i + 1

theloop = ProcessNext(snap, proc)

Wend

CloseHandle snap '關閉進程“快照”句柄

End Sub

'終止進程

Private Sub Command2_Click()

Dim i As Long

Dim hand As Long

hand = OpenProcess(PROCESS_TERMINATE, True, CLng(ListView1.SelectedItem.SubItems(1))) '獲取進程句柄

TerminateProcess hand, 0 '關閉進程

Call Command1_Click '調用查看進程來刷新進程列表

End Sub

Private Sub Form_Load()

Dim header As ColumnHeader

ListView1.View = lvwReport

ListView1.ColumnHeaders.Clear

Set header = ListView1.ColumnHeaders.Add(, "first", "進程", 4000) '設置ListView中項目的寬度,讀者也可自行設置

Set header = ListView1.ColumnHeaders.Add(, "second", "ID", 1400)

ListView1.Refresh

End Sub

  • 上一篇:以前農村的石磨現在有什麽價值?
  • 下一篇:g76螺紋編程格式解說
  • copyright 2024編程學習大全網