【问题标题】:Find process id when Process.Start returns null?Process.Start返回null时查找进程ID?
【发布时间】:2012-08-22 16:52:07
【问题描述】:

如果我尝试通过直接调用Process.Start(filepath) 打开图像文件、视频或网站,则通常会成功。但是,Process.Start 的返回值有时会为空。 (As discussed here)

我需要知道关联进程的 ID,以便稍后检索它并在必要时关闭它。 (用例:用户使用我的程序打开一个图像文件,并想使用我的程序关闭它)但是,检索返回 null 的进程的进程 ID 有点困难:P

除了直接指定我们可能遇到的每种类型的文件要使用哪个程序之外,我应该如何解决这个问题有什么建议吗?

【问题讨论】:

  • 如果打开图像/视频/任何内容并没有启动 new 进程,而只是在现有进程中打开它,您会怎么做?如果一个对 other 文件仍然有用的长时间运行的进程突然关闭,我会很生气...
  • 这不是这个软件的目的。如果您以这种方式创建图像,这特别是因为您希望它与当前运行的任何其他图像查看器/进程分开打开。如果您只想更改图像,则可以通过与操作系统交互直接进行。 (基本上,业务规则)

标签: c# .net process


【解决方案1】:

您必须直接指定使用哪个程序来获取进程的 id。我可以想象你可以问操作系统每个扩展使用什么程序,因为操作系统有一个列表。

【讨论】:

  • 这是否取决于注册表项?这就是我使用谷歌所能找到的一切。否则每个人都说只使用 Process.Start,但他们显然不需要我所做的所有相同信息。编辑:找到了这个,我认为这可能会解决它,但会有点混乱。 :(stackoverflow.com/a/162371/1233949
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多