Вопрос о восстановлении конкретных файлов runinng процесса VB.NET
Привет всем мне нужна помощь с моим VB.Net код,
Я хотел бы иметь возможность перечислить все файлы, которые в настоящее время открыты процессом, например "EXCEL", чтобы я мог получить пути к файлам.
в настоящее время я использую следующий код, который извлекает только первый открытый файл и для каждого цикла заканчивается !!
Что я уже пробовал:
For Each p As Process In Process.GetProcessesByName(ProcessRuningName) Try Using searcher As New ManagementObjectSearcher("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " & p.Id) For Each mgmtObj As ManagementObject In searcher.Get() cl = mgmtObj.Item("CommandLine").ToString().Split("""") For x = 0 To cl.Count - 1 Dim FilePath As String = cl(x) If System.IO.Path.GetFileName(FilePath) = FileName Then processFilesRuning.Add(FileName) End If Next Next End Using Catch ex As Win32Exception 'handle error End Try Next
Так что, как вы можете видеть, я пытаюсь искать в каждом процессе с именем "Excel", которое уже восстановлено, но я получаю только один результат, который является первым открытым файлом Excel, и он игнорирует другой открытый файл, поэтому, пожалуйста, ребята, помогите мне с этим.
Заранее спасибо
Sandeep Mewara
Нашел похожую проблему обсуждавшуюся здесь много лет назад: c# - найти все открытые книги Excel - переполнение стека[^]
Похоже, это должно помочь.
Dave Kreskowiak
Ну, я могу сказать вам, что класс Win32_Process дает вам только информацию о самом объекте процесса, а не о каких-либо открытых им файлах.