1

ユーザーが ListView ボックスで選択したプロセスを別のフォームで閉じたいと考えています。ListView ボックスは、チェックボックスを使用して、閉じるプロセスを選択します。残念ながら、チェックされたプロセスをプロセスに変換する方法がわかりません....助けはありますか?

public void Form4_Load(object sender, EventArgs e)
{
    Process[] prs = Process.GetProcesses();
    listView1.Items.Clear();
    foreach (Process proces in prs)
    {
        if (!string.IsNullOrEmpty(proces.MainWindowTitle))
            listView1.Items.Add(proces.MainWindowTitle);
    }
    foreach (Process PRC in listView1.CheckedItems)
    {
        \\Idk what to put here.
    }
4

1 に答える 1

0

プロセスを強制終了するには、その名前またはプロセス ID が必要なので、プロセスを追加する上記のコードを次のように変更しますListView1

private void Form4_Load(object sender, EventArgs e)
        {
            Process[] prs = Process.GetProcesses();
            listView1.Items.Clear();
            foreach (Process proces in prs)
            {
                if (!string.IsNullOrEmpty(proces.MainWindowTitle))
                {
                    ListViewItem item = new ListViewItem();
                    item.Tag = proces.Id; //it will be used to kill this process
                    item.Text = proces.MainWindowTitle;
                    listView1.Items.Add(item);
                }
            }
        }

後で選択したプロセスを強制終了するために使用するタグ フィールドに注意してください。選択したすべての をループしListViewItems、タグ フィールドから対応するプロセス ID を取得し、 を使用してプロセスへの参照を取得しますSystem.Diagnostics.Process.GetProcessByIdKillこのメソッドは、このオブジェクトが参照するプロセスを停止できるメソッドを公開する Process のオブジェクトを返します。

private void button1_Click(object sender, EventArgs e)
        {
            foreach (ListViewItem list in listView1.CheckedItems)
            {
                Process p = System.Diagnostics.Process.GetProcessById(Convert.ToInt32(list.Tag));
                if (p != null)
                    p.Kill();
            }
    }
于 2011-08-18T02:01:55.370 に答える