用Python写一段代码,实时监测哪个软件读写了C盘和D盘的文件。并在图形化界面展示出来。(时间、进程名、操作盘符、具体操作(删除,修改或新建))(不要用Win32file)
时间: 2023-06-27 17:05:55 浏览: 138
这个任务需要使用Python的第三方库pywin32和WMI。以下是示例代码:
```python
import wmi
import tkinter as tk
# 创建WMI对象
w = wmi.WMI()
# 创建Tkinter窗口
root = tk.Tk()
root.title("文件监控")
root.geometry("400x300")
# 创建Tkinter标签
label = tk.Label(root, text="正在监听C盘和D盘文件读写情况...")
label.pack()
# 监听C盘和D盘
def monitor_drives():
c_drive = w.watch_for(
notification_type="Creation,Deletion,Modification",
wmi_class="Win32_LogicalDisk", DriveType=3, Delay="2"
)
d_drive = w.watch_for(
notification_type="Creation,Deletion,Modification",
wmi_class="Win32_LogicalDisk", DriveType=4, Delay="2"
)
for new in c_drive, d_drive:
event_type = new.EventType
drive = new.Drive
time = new.TimeGenerated.strftime("%Y-%m-%d %H:%M:%S")
process_id = new.ProcessID
process_name = wmi.Process(ProcessId=process_id)[0].Name
if event_type == "creation":
action = "新建"
elif event_type == "deletion":
action = "删除"
else:
action = "修改"
# 在Tkinter标签中显示监控结果
label.config(text=f"{time} {process_name} 在 {drive} 盘 {action} 文件")
# 每隔2秒监听一次,直到程序退出
while True:
monitor_drives()
root.update()
root.after(2000)
root.mainloop()
```
该代码使用WMI监听C盘和D盘的文件读写情况,并在Tkinter标签中展示监控结果。注意,该代码需要以管理员权限运行才能正确监听文件的读写情况。
阅读全文