【问题标题】:Get process info (window title) by process ID通过进程 ID 获取进程信息(窗口标题)
【发布时间】:2013-01-06 01:41:46
【问题描述】:

快速提问... Microsoft 删除了 Metro Apps 中对 Process 类的支持。如何获取已知进程 ID 的窗口标题?

我确实在整个互联网上搜索了一个没有成功的答案:/

【问题讨论】:

  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • Here's actual problem: I'm working on time tracking script. All I have to do is collect data (datetime start, datetime end and process/windows title) and send it to webserver. - 你可以通过其他方式做到这一点,这里有一个例子:stackoverflow.com/a/12015686/495455。我不明白你为什么需要通过使用 Win32 API 调用的 Process 类来完成它?

标签: c# windows-8 microsoft-metro


【解决方案1】:

Microsoft 不支持 Windows 应用商店应用中的 Process 类。

与桌面应用不同,Windows 应用商店应用不应该具有这种访问权限。此外,如果您有 Windows RT 并且正在运行使用 Process 类的 Metro 应用程序,那么您将无法运行,因为 Windows RT 不运行桌面应用程序。

很抱歉让您失望了,但如果您需要这样做,请创建一个桌面应用程序(无法在 Windows RT 上运行)。

附:由于诉讼,它们现在被称为 Windows 应用商店应用程序(而不是 Metro)。

【讨论】:

  • 该死的......所以,这里有一个替代方案:如果我执行命令'tasklist /fi "PID eq #PID#" /fo "LIST" /v',我可以获得窗口标题。但是如果我无法启动进程,我怎么能执行命令呢?
  • 我不确定这是否可能...如果它是一个 Windows Store 应用程序,它可能在 Windows RT 上运行,它甚至不使用桌面应用程序,这会使它变得毫无用处无论如何,但我认为无论如何你都做不到。
  • 桌面应用程序几乎仍然存在,只是为了向后兼容;微软鼓励人们从现在开始开发 Windows Store 应用程序。他们真的全力以赴地使用 Windows 8。
  • 这是实际问题:我正在编写时间跟踪脚本。我所要做的就是收集数据(日期时间开始、日期时间结束和进程/Windows 标题)并将其发送到网络服务器。你的意思是唯一的选择是编写桌面应用程序而不是Win8应用程序?没问题,因为我刚刚开始开发。 =) 感谢您的回答。 ;-)
  • 没问题,是的,如果你想使用 Process 类,你需要一个桌面应用程序来做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
相关资源
最近更新 更多