Як закрити програму з Visual basic

Гнучкий і потужний мову програмування Visual Basic .NET, будучи одним із спеціально створених засобів розробки додатків для платформи Microsoft .NET, дозволяє повністю використовувати всі її можливості. Зокрема, компоненти простору імен System.Diagnostics дозволяють здійснювати взаємодію з процесами, журналами подій і лічильниками продуктивності. Наприклад, можна закрити програму з Visual Basic, використовуючи клас Process.
Як закрити програму з Visual basic
Вам знадобиться
  • - Microsoft Visual Studio.
Інструкція
1
Імпортуйте простору імен System, System.Diagnostics і System.Threading. На початок модуля додайте наступні рядки коду:

Imports System
Imports System.Diagnostics
Imports System.Threading

Це потрібно просто для зручності використання компонентів, що відносяться до даних просторів імен.

2
Отримайте дані процесу, який необхідно закрити. Використовуйте об'єкт класу System.Diagnostics.Process. Оголосіть змінну даного класу:

Dim oProc As Process

Потім використовуйте який-небудь метод для знаходження необхідного процесу.

3
Якщо програма, яку надалі необхідно буде закривати, запускається розробляються додатком, то просто збережіть об'єкт, що повертається методом Start при запуску:

oProc = Process.Start ("app.exe")

4
Якщо необхідно закрити процес з відомим ідентифікатором, використовуйте статичний метод GetProcessById класу Process для отримання відповідного об'єкта:

oProc = Process.GetProcessById (nID)



Тут nID - числовий ідентифікатор процесу.

5
Якщо відомі тільки деякі характеристики цільового процесу, зробіть його пошук. Отримаєте список процесів, запущених на локальній машині, у вигляді масиву об'єктів класу Process. Використовуйте методи GetProcesses (повертає всі процеси) або GetProcessesByName (тільки процеси з заданим ім'ям):

Dim aoAllProcesses As Process () = Process.GetProcesses ()
Dim aoProcsByName As Process () = Process.GetProcessesByName ("app.exe")

Перерахуйте об'єкти масиву за допомогою циклу:



Dim oProc As Process
For Each oProc In aoAllProcesses
'Дії над oProc
Next

У циклі аналізуйте властивості MainModule, MainWindowTitle, ProcessName, і т.д. для знаходження потрібного об'єкта.

6
Спробуйте завершити програму за допомогою відсилання повідомлення закриття її головного вікна. Викличте метод CloseMainWindow об'єкта, відповідного цільовим процесу. При необхідності зробіть очікування завершення додатки шляхом виклику WaitForExit, наприклад:

oProc.CloseMainWindow ()
oProc.WaitForExit ()

Даний метод не гарантує завершення програми, оскільки повідомлення закриття вікна часто обробляється і може бути проігноровано.

7
При необхідності гарантованого завершення програми після виклику CloseMainWindow здійсните очікування протягом невеликого проміжку часу. Використовуйте метод Sleep класу Thread. Потім перевірте стан процесу, проаналізувавши властивість HasExited і, якщо він не завершений, викличте метод Kill:

Thread.Sleep (6000)
oProc.Refresh ()
If not oProc.HasExited Then
oProc.Kill ()
End If

При бажанні можна здійснювати опитування стану процесу в циклі, видаючи періодичні запити користувачеві про необхідність завершення програми без збереження даних. І тільки в разі згоди викликати Kill.

8
Звільніть системні ресурси після завершення програми за допомогою методу Close:

oProc.Close ()

9
Для того щоб уникнути непередбачених помилок під час виконання програми, помістіть весь алгоритм закриття програми в блок Try-Catch-End Try. При необхідності реалізуйте повноцінну обробку винятків з висновком діагностичних повідомлень.

Увага, тільки СЬОГОДНІ!