我想创建一个可以监视已打开进程的应用程序。我想用它来监控我多久打开一次我的mp3文件。程序将在后台运行并计算我运行每个mp3文件的次数,之后我会根据这个数字对我的mp3文件进行排序。
我使用Process Monitor检查是否可以完成。当我过滤输出,使它只显示我的MP3播放器进程,并设置为只看到“处理开始”操作,然后我可以读取打开的文件,例如这是进程监视器<的命令行详细信息/ b>向我展示了实时开放的文件。运行每个文件后,Process Monitor中有一个新输入。
如您所见,我可以轻松计算Process Monitor输出以获取每个文件的启动次数。但是,我不知道它是如何完成的,因为Process Monitor是一个.exe,我无法在代码中看到。
解决问题的最简单方法是什么?实际上我想使用的编程语言并不重要,可以是C#,C ++,Python。
提前谢谢。
答案 0 :(得分:0)
我自己想出了一些东西。在 Python 2.7 中使用此库psutil应该足够了。我的进程名称将保持不变,因为我总是使用相同的程序来运行我的mp3 /视频文件。
这里有一些少量的代码,但总的来说灵魂很简单:)
import psutil
process_list = psutil.pids()
for i in process_list:
temp_process = psutil.Process(i)
#if process doesn't have a name then the .name() method will cause a crash, we need to try-catch it
try:
if (temp_process.name()=="mpc-hc64.exe"):
print temp_process.cmdline() #in my case opened file will be listed in the cmdline, may not always be true
print temp_process.open_files() #this however should ALWAYS return files that are opened by current process!!
except:
print "no process name"