我正在编写一个Python脚本,它可以获取在PC上运行的进程(PID、命令行等)的信息
在我的Windows 7 PC上,我可以使用“wmic”并使用它的输出:
输出=子流程.Popen(['wmic process get creationdate,commandline,processid'],标准输出=子流程.管道,shell=True).communicate()[0]
我可以从这个输出中获得的信息示例:
进程PID开始时间命令: blah.exe文件1234 2013年6月6日星期四15:33:40 C:\blah\blah.exe文件-a-b废话.txt
这给了我所有我需要的信息。。。但是不是所有的机器都允许我使用'wmic',因为我不是管理员。在
我可以使用'tasklist',但它不能像wmic那样提供'commandline'信息。在
我不能使用'psutils'(或'wmi'模块),因为它没有安装在我需要它工作的任何一台电脑上,而且我不想让管理安装模块在所有这些电脑上
对于如何使用标准Python2.6获取上述进程信息有什么想法?在
提前谢谢你, 尼克
Windows XP/7上的PYTHON 2.6
===========================================================================
编辑(2013年6月12日):
我正试着按照下面的建议去做,但是遇到了麻烦。。。将脚本til-1添加到我的目录中(直到将脚本放入我的目录中):
路径='.\psutil-0.7.1'
在系统路径追加(路径)
导入psutil
我现在得到以下错误:
回溯(最近一次呼叫):
File "C:\Users\nickw\Desktop\ProcessMonitor\ProcessMonitor_MODPS2.py", line 21, in <module>
import psutil
File ".\psutil-0.7.1\psutil\__init__.py", line 77, in <module>
import psutil._psmswindows as _psplatform
File ".\psutil-0.7.1\psutil\_psmswindows.py", line 15, in <module>
import _psutil_mswindows
ImportError: No module named _psutil_mswindows
你知道我做错什么了吗?在
检索进程的命令行的技术有点老套,但自从XP以来就包含在WMI中。基本上,它在读取另一个进程的内存。有关详细信息,请参见Getting another process command line in Windows及其链接。在
所以,你也一样
用
ctypes
或其他方法,如上面的链接所示,或以某种方式,利用现有的模块来为您做到这一点。有^{} 使多个文件更容易实现,而{a3}则在文件系统的任何地方创建整个环境,后者可能是一种过度使用。
相关问题 更多 >
编程相关推荐