Kill Process..

Status
Niet open voor verdere reacties.

w00tare

Gebruiker
Lid geworden
10 jul 2009
Berichten
216
Hallo Helpmij Leden.

Ik heb een progamma gemaakt wat eingelijk simpel task processen killt (sluit),
Maar ik heb de functie ;
Code:
ListBox1.Items.Clear()
        ListBox1.DisplayMember = "ProcessName"

        Dim p As System.Diagnostics.Process
        For Each p In System.Diagnostics.Process.GetProcesses
            ListBox1.Items.Add(p)
        Next
Werk ook helemaal perfect.

Maar nu de Shutdown/Kill code :
Code:
Private Sub cmdSendCloseMessage_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdSendCloseMessage.Click
        Dim target_hwnd As Integer

        ' Get the target's window handle.
        target_hwnd = FindWindow(vbNullString, ListBox1.SelectedItem)
        If target_hwnd = 0 Then
            MsgBox("Error finding target window handle")
            Exit Sub
        End If

        ' Send the application the WM_CLOSE message.
        PostMessage(target_hwnd, WM_CLOSE, 0, 0)

        cmdTerminate.Enabled = True
        cmdSendCloseMessage.Enabled = False
    End Sub
    ' Terminate the process.
    Private Sub cmdTerminate_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdTerminate.Click
        Dim target_hwnd As Integer
        Dim target_process_id As Integer
        Dim target_process_handle As Integer

        ' Get the target's window handle.
        target_hwnd = FindWindow(vbNullString, ListBox1.SelectedItem)
        If target_hwnd = 0 Then
            MsgBox("Error finding target window handle")
            Exit Sub
        End If

        ' Get the process ID.
        GetWindowThreadProcessId(target_hwnd, target_process_id)
        If target_process_id = 0 Then
            MsgBox("Error finding target process ID")
            Exit Sub
        End If

        ' Open the process.
        target_process_handle = OpenProcess(SYNCHRONIZE Or PROCESS_TERMINATE, 0, target_process_id)
        If target_process_handle = 0 Then
            MsgBox("Error finding target process handle")
            Exit Sub
        End If

        ' Terminate the process.
        If TerminateProcess(target_process_handle, 0) = 0 Then
            MsgBox("Error terminating process")
        Else
            MsgBox("Process terminated")
        End If

        ' Close the process.
        CloseHandle(target_process_handle)

        cmdSendCloseMessage.Enabled = True
        cmdTerminate.Enabled = False

    End Sub

Hij geeft een error, dat die een process niet kan omzetten in een string.
Als iemand hier een oplossing voor weet,
Graag.

Btw; voel vrij om de codes te gebruiken ;)
 
Yo,

Hij geeft een error, dat die een process niet kan omzetten in een string.
Err, waar precies? Daarbij, een proces (even snel je code doorgekeken) wordt toch gedefined als een handle (int)? (Dim target_process_handle As Integer...)

Waar in je code komt precies de error?
 
Laatst bewerkt:
Ik heb dit uit mijn hoofd gedaan dus ik weet niet of het helemaal werkt.
Code:
Dim p As Process = ListBox1.SelectedItem
        p.Kill()
het enige nadeel is dat als je bijv. kladblok 2x geopend hebt, dat de code ze allebij afsluit.

[edit]IK heb de code aangepast en is nog makkelijker. ik heb hem nu wel getest.
als je nu bijv. 2x kladblok geopend hebt, sluit hij ze niet allebij. (PS. ik zou een timer maken die enabled = en dan op interval op 100 en dan de code die jij mij gaf in mijn post.)[/edit]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan