已知进程名应该怎么获得进程的ID号呢?我用 int i =Process.GetCurrentProcess().Id不能正确获得,得到的一个号是个随机的,每次运行都不同,而且得到的号不是“任务管理器”中的号
是不是方法不对?请高手指点!!!

解决方案 »

  1.   

    Process.GetCurrentProcess().Id 和任务管理器的PID 一样啊~~ 没反县不同的
      

  2.   

    最近连续好几个类似(涉及Win32,通常用C++来解决的这类问题)的帖子都是你发的,虽然你跟我有矛盾,不过这类问题到是我所关注的你的描述自我矛盾,你一方面说“根据进程名”来获得ID,另一方面你调用Process.GetCurrentProcess()
    你根本没有传递“进程名”这个参数,你又怎么获得呢?
    我之前说你基础不好,没有冤枉你吧?foreach(int pid Process.GetProcessesByName(processName))
    {
    Console.WriteLine(pid);
    }
    而且得到的号不是“任务管理器”中的号==》这句话让我更加困惑,你只得到了一个号,而任务管理器中有很多号,怎么叫什么不任务管理器中的号呢?
      

  3.   

    CSToD:了,我在贴上的那段代码之前已经判断是我的程序的进程名,我没写上去而已
    我说的得到的号不是“任务管理器”的号是说不是我想获得的那个进程的号
    我基础是不好,但你在那个帖子上说的那么直接很难让人接受嘛,我现在开始喜欢编程已经很不容易了,让你一打击当然很不舒服了
    还是很感谢你,羡慕你的技术,希望有一天我也会成为高手,对了,阻止进程被删那个程序我可能写不出来,那就麻烦你帮我一下吧,不过我尽量自己写,看能完成到什么程度,争取三月份之前能写出来非常感谢你!结贴时多给你加分
      

  4.   

    这样不行啊,有错误,“无法将类型Syste.Diagnostic.Process”转换为int
      

  5.   

    写错了foreach(Process p Process.GetProcessesByName(processName)) 

    Console.WriteLine(p.Id); 

      

  6.   


    int id=Process.GetCurrentProcess().Id这样获取进程Id是正确的,同时跟任务管理器里是相同的.
    但你每次启动的进程Id是随机的,这个原因不知道,你可以试下你机器上装的一些别的软件,打开关掉,打开关掉之后,它两次的进程Id也是不一样的,亲测!
      

  7.   

    ycsno1:我开始写的代码有问题,现在正确了。
      不好意思啊,结贴时没看到你发的帖子,没能给你加分、、、、、