欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#?如何獲取當前進程或線程的ID

 更新時間:2022年04月20日 08:44:46   作者:comsky  
這篇文章主要介紹了C#?如何獲取當前進程或線程的ID,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

獲取當前進程或線程的ID

如果獲得當前進程的Id用:

Process[] processes = Process.GetProcesses();?
foreach(Process process in processes)?
{?
if(process.ProcessName == "進程名"?
{?
MessageBox.Show(process.Id);?
}?
}
Process processes ? =Process.GetCurrentProcess

processes.id獲取當前進程的ID

如果獲取當前線程的ID用:

Thread.CurrentThread.ManagedThreadId.ToString() (推薦)

AppDomain.GetCurrentThreadId().ToString()

C# 進程讀取方法

首相要加入using System.Diagnostics;命名空間。

GetProcesses()、Modules屬性。

一些進程的屬性信息:

  • Id // 進程唯一標識符 (Id)
  • Handle //關聯(lián)進程的本機句柄 (Handle)
  • HandleCount //打開句柄數(shù) (HandleCount)
  • BasePriority //關聯(lián)進程的基本優(yōu)先級
  • StartTime //進程啟動時間
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;//包含進程相關
namespace ProccessEx
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Process[] processes = null;
        private void btnGetProcessess_Click(object sender, EventArgs e)
        {
            processes = Process.GetProcesses();// 獲取本地計算機上的進程
            this.lbProcess.Items.Clear();
            foreach (Process item in processes) {
                this.lbProcess.Items.Add(item.ProcessName);
            }
        }
        private void lbProcess_Click(object sender, EventArgs e)
        {
            if (lbProcess.Items.Count == 0) return;
            else {
                lbModels.Items.Clear();
            }
            Process currentProcess = processes[lbProcess.SelectedIndex]; // SelectedIndex 屬性
            try {
                ProcessModuleCollection modules = currentProcess.Modules; // Mpdules 屬性
                foreach (ProcessModule item in modules) {  // 注意是 ProcessModule 類型
                    lbModels.Items.Add(item.FileName);
                }
                // 顯示當前進程的基本信息
                string info = "進程唯一標識符 (Id):" + currentProcess.Id + "\r\n\r\n";
                info += "關聯(lián)進程的本機句柄 (Handle):" + currentProcess.Handle + "\r\n\r\n";
                info += "打開句柄數(shù) (HandleCount):" + currentProcess.HandleCount + "\r\n\r\n";
                info += "關聯(lián)進程的基本優(yōu)先級:" + currentProcess.BasePriority + "\r\n\r\n";
                info += "進程啟動時間:" + currentProcess.StartTime + "\r\n\r\n";
                txtProcessInfo.Text = info;
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
        private void btnKill_Click(object sender, EventArgs e)
        {
            if (lbProcess.Items.Count == 0 || lbProcess.SelectedIndex == -1) return;
            Process currentProccess = processes[lbProcess.SelectedIndex];// 獲取當前鼠標選擇的進程
            currentProccess.Kill();// 殺掉進程
            currentProccess.Close();// 釋放進程資源
            lbProcess.Items.RemoveAt(lbProcess.SelectedIndex);
            lbModels.Items.Clear();
            txtProcessInfo.Clear();
        }
        /// <summary>
        /// 用360瀏覽器打開我的博客
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOpenIE_Click(object sender, EventArgs e)
        {
            // 沒注冊就使用絕對路徑
            // 打開我的博客
            Process.Start(@"C:\Users\Administrator\AppData\Roaming\360se6\Application\360se.exe", "blog.huvjie.com");
        }
        /// <summary>
        /// 打開新進程,如:notepad
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnStartnew_Click(object sender, EventArgs e)
        {
            Process.Start(txtProcessFileName.Text.Trim());
        }
    }
}

輸出效果:

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論