Q8Falcon Ответов: 0

Вопрос о восстановлении конкретных файлов 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 дает вам только информацию о самом объекте процесса, а не о каких-либо открытых им файлах.

0 Ответов