Можно ли записать путь файлов, который открывается в Windows в файловом диспетчере, VSCODE, Excel, PDF и т. Д. ИспользовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли записать путь файлов, который открывается в Windows в файловом диспетчере, VSCODE, Excel, PDF и т. Д. Использов

Сообщение Anonymous »

Как следует из названия, мне было интересно, как я могу заставить Python вернуть пользователи, которые в настоящее время открывают файлы, не только используют файловый диспетчер, но и другие программы, такие как VS -код. Я сделаю, чем временная метка данных и запишу их. Это возможно? А если да, то как?
спасибо! < /p>
Я попробовал этот код (который генерируется AI): < /p>
import psutil
import win32gui
import win32process
import time
import json
from datetime import datetime

class FileTracker:
def __init__(self):
self.target_processes = {
'explorer.exe': 'File Manager',
'Code.exe': 'VS Code',
'EXCEL.EXE': 'Excel',
'AcroRd32.exe': 'Adobe Reader',
'Acrobat.exe': 'Adobe Acrobat'
}
self.tracked_files = {}

def get_open_files(self):
current_files = {}

for proc in psutil.process_iter(['pid', 'name']):
try:
proc_name = proc.info['name']
if proc_name in self.target_processes:
files = proc.open_files()
if files:
current_files[proc_name] = {
'app_name': self.target_processes[proc_name],
'files': [f.path for f in files],
'timestamp': datetime.now().isoformat()
}
except (psutil.NoSuchProcess, psutil.AccessDenied):
continue

return current_files

def track_continuously(self, interval=5):
"""Track files every 'interval' seconds"""
while True:
current_files = self.get_open_files()

# Log new files
for proc_name, data in current_files.items():
if proc_name not in self.tracked_files:
self.tracked_files[proc_name] = set()

for file_path in data['files']:
if file_path not in self.tracked_files[proc_name]:
print(f"New file opened in {data['app_name']}: {file_path}")
self.tracked_files[proc_name].add(file_path)

time.sleep(interval)

# Usage
tracker = FileTracker()
print("Currently open files:")
files = tracker.get_open_files()
for proc, data in files.items():
print(f"\n{data['app_name']} ({proc}):")
for file_path in data['files']:
print(f" - {file_path}")


Подробнее здесь: https://stackoverflow.com/questions/796 ... -manager-v
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»