我正在寻找简单的API来获取有关用户在Python中使用计算机的信息。
什么是相关的:
我希望答案是关于Linux系统的,但如果它更容易,我也对Windows替代品感兴趣。我现在不太关心可移植性。
我想在Linux下有运行shell脚本和检索输出的后备,但我想知道这是否是常用的方式,或者如果某些API很好地包装它已经
我很抱歉这个问题模糊不清,但我确实在尝试评估我可以在某些API下轻松获取信息的程度,并了解哪些工具是“常用的”这种工作。
感谢您提供的所有信息。
答案 0 :(得分:3)
问题不是那么模糊,而是相当宽泛。您正在寻找的大多数信息(正如您所表明的那样)分散在SO上的各种问题上。
我已经就这个主题做了一些研究,我正在考虑编写一个生产力跟踪应用程序。以下是我可以给你的一些一般性建议:
要监视和查询有关窗口(标题,状态等)的信息,您需要查看libwnck(请参阅:python-wnck)。请注意,在创建时,WnckScreen
对象将不会从X服务器获取信息,并且看起来屏幕上没有工作区和窗口(more on this here)。
在某些情况下,您可以通过在/proc
中查询其条目来获取有关正在运行的流程的一些有用信息(您可能需要查看psutil模块)。但是,你更有可能不会(这取决于你在寻找什么)。
要查询有关应用程序的非常具体的信息,您必须查看该特定应用程序支持的内容。
在Linux上,应用程序倾向于使用D-Bus服务公开相关的内部功能。
例如,图腾有a D-Bus service基本上暴露了the main Totem object,您可以使用它来监控正在播放的内容等。Geany,我使用的文本编辑器(或轻量级IDE),有一个您可以使用feature complete D-Bus plugin来查询当前活动的标签等。
Firefox在这方面有点奇怪。多年来,为了揭露D-Bus服务已经做出了各种努力,但由于某些原因,这些努力似乎从来没有出现过。最好的办法是查看MozRepl哪些“允许您从内部编写Firefox和其他基于Mozilla的应用程序”(它通过telnet公开交互式shell)。
至于查询个人控件/小部件的通用方法。在Linux上我只知道Parasite。如果您使用过Firebug,它就像那样,但对于GTK +应用程序。但是,我怀疑它在您的用例场景中会有多大用处。
您也可以(ab)使用辅助技术支持(对于屏幕阅读器等)。见this answer。我自己也没有这方面的经验。
如果您有任何疑问,请随时对此答案发表评论。