Как убить экземпляр приложения - PullRequest
1 голос
/ 15 июля 2011

У меня есть текстовый файл по этому пути "C: \ Test \ test.txt", когда он был открыт, мне нужно закрыть его.

Когда я пытаюсь использовать приведенный ниже код, все экземплярыблокнота закрываются, и я не хочу, чтобы это произошло, и я хочу закрыть только файл ".txt":

Любая помощь будет принята!

Вот мой код:

 Dim Process() As Process = System.Diagnostics.Process.GetProcessesByName("notepad")
  For Each p As Process In Process
    p.Kill()
Next 

Ответы [ 2 ]

2 голосов
/ 15 июля 2011

Вы можете просмотреть свойство

Process.MainWindowTitle

p.

Название блокнота будет Filename.txt - Notepad

Если вызапустив процесс самостоятельно, вы можете убить его, используя метод Process.Kill().

Обратите внимание, что во многих (большинстве?) обстоятельствах уничтожение всех экземпляров процесса не является хорошим опытом для пользователя, поскольку пользователь можетзапускали экземпляры этого процесса самостоятельно, в дополнение к экземпляру, который ваша программа запустила / пытается закрыть.

1 голос
/ 15 июля 2011

Вы могли бы сделать что-то, как упомянуто об использовании оператора if. Предполагая, что вы открыли файл с именем test.

 Dim Process() As Process = System.Diagnostics.Process.GetProcessesByName("notepad")      
    For Each p As Process In Process
        If p.MainWindowTitle.Contains("test") Then
            p.Kill()
        End If
    Next

EDIT:

Для проверки нескольких файлов

просто добавьте или в строку .Contains

If p.MainWindowTitle.Contains("test") Or ("blahblah") Then
p.kill()
...