Výběr procesu z ListBoxu programově.   otázka

VB.NET, WinForms

Dobrý den, mám tento kód

Public Class Form1
    Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
        AddItems()
    End Sub

    Private Sub lstProcessesAddItem_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstProcessesAddItem.SelectedIndexChanged
        Try
            lblFileName1.Text = CType(lstProcessesAddItem.SelectedItem, Process).MainModule.FileName
        Catch exp As Exception
        End Try
    End Sub

    Private Sub AddItems()
        Try
            Dim prc As Process
            lstProcessesAddItem.Items.Clear()
            lstProcessesAddItem.DisplayMember = "ProcessName"
            For Each prc In Process.GetProcesses()
                lstProcessesAddItem.Items.Add(prc)
            Next
            lstProcessesAddItem.Sorted = True
        Catch exp As Exception
            MessageBox.Show(exp.Message, Me.Text)
        End Try
    End Sub

a nemůžu pořád přijít na to, jak v seznamu programově vyhledat jeden konkrétní proces a programově ho zastavit. Něco jako "Jestliže se vyskytuje (např.)notepad, po stisknutí btn1_Click ukončit tento proces."

Děkuji za jakoukoli inspiraci.

Marcel Borna

nahlásit spamnahlásit spam 0 odpovědětodpovědět

procesy se dají vybírat podle názvu (jméno souboru bez přípony).

nemám možnost si to ověřit, ale zkuste se podívat jestli funkce GetProcesses nemá paramert 'název'. Myslím, že se to dokonce řešilo někde tady na fóru

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji za typ. Našel jsem jen GetProcessesByName.Mohlo by to být ono, ale jak dál?

Např.:

Dim a As Process() = Process.GetProcessesByName("notepad")

If a Is Process.GetProcessesByName("notepad") Then

...

M.B.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkuste porovnávat ProcessId (PID)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

GetProcessesByName to je přesně ono, vrátí všechny procesy toho jména. Pak už není problém s tím pracovat. Stačí si vytvořit objekt typu Process a přiřadit mu vybraný proces, a pokud ho chcete zastavit, stačí zavolat metodu Stop

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji moc za pomoc i za vysvětlení postupu. Opravdu mi to moc pomohlo.

Marcel Borna

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback