Запрет запуска приложений после текущего (перевести с VB 6.0) - Visual Basic .NET
Формулировка задачи:
Прошу помощи в переводе кода с vb6.
Или может предложить более простой вариант запрета запуска приложений после текущего.
Решение задачи: «Запрет запуска приложений после текущего (перевести с VB 6.0)»
textual
Листинг программы
Imports System.Runtime.InteropServices Public Class Form1 Public Structure PROCESSENTRY32 Public dwSize As UInt32 Public cntUsage As UInt32 Public th32ProcessID As UInt32 Public th32DefaultHeapID As IntPtr Public th32ModuleID As UInt32 Public cntThreads As UInt32 Public th32ParentProcessID As UInt32 Public pcPriClassBase As UInt32 Public dwFlags As Int32 <VBFixedString(260), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _ Public szExeFile As String End Structure Public Enum SnapshotFlags As Integer HeapList = &H1 Process = &H2 Thread = &H4 [Module] = &H8 Module32 = &H10 Inherit = &H80000000 All = &HF NoHeaps = &H40000000 End Enum Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" _ (ByVal dwFlags As SnapshotFlags, ByVal th32ProcessID As UInteger) As IntPtr Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As IntPtr, _ ByRef lppe As PROCESSENTRY32) As Boolean Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As IntPtr, _ ByRef lppe As PROCESSENTRY32) As Boolean Private Declare Function CloseHandle Lib "kernel32" (ByVal hHandle As IntPtr) As Boolean Dim LastProc As String, mas_id(200) As Int64 Dim k, n Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick Dim proc As New PROCESSENTRY32(), snap If CheckBox1.Checked Then snap = CreateToolhelp32Snapshot(15, 0) proc.dwSize = Marshal.SizeOf(proc) k = Process32First(snap, proc) Dim flag As Boolean Do While k flag = True If proc.th32ProcessID > 99 Then For i = 0 To n If proc.th32ProcessID = mas_id(i) Then flag = False Next If flag Then Process.GetProcessById(proc.th32ProcessID).Kill() 'ListBox1.Items.Add("убит " & proc.th32ProcessID & " " & Process.GetProcessById(proc.th32ProcessID).ProcessName) End If End If k = Process32Next(snap, proc) Loop CloseHandle(snap) Else Timer1.Stop() End If End Sub Private Sub CheckBox1_Click(sender As Object, e As EventArgs) Handles CheckBox1.Click Dim proc As New PROCESSENTRY32(), snap If CheckBox1.Checked Then snap = CreateToolhelp32Snapshot(15, 0) proc.dwSize = Marshal.SizeOf(proc) k = Process32First(snap, proc) Dim i = 0 Do While k LastProc = proc.szExeFile k = Process32Next(snap, proc) 'ListBox1.Items.Add(LastProc) mas_id(i) = proc.th32ProcessID i += 1 Loop n = i - 1 CloseHandle(snap) Me.Text = LastProc Timer1.Interval = 10 Timer1.Start() Else Timer1.Stop() End If End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д