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

Гнучкий і потужний мову програмування Visual Basic .NET, будучи одним із спеціально створених засобів розробки додатків для платформи Microsoft .NET, дозволяє повністю використовувати всі її можливості. Зокрема, компоненти простору імен System.Diagnostics дозволяють здійснювати взаємодію з процесами, журналами подій і лічильниками продуктивності. Наприклад, можна закрити програму з Visual Basic, використовуючи клас Process.
Вам знадобиться
  • - Microsoft Visual Studio.
Інструкція
1
Імпортуйте простору імен System, System.Diagnostics і System.Threading. На початок модуля додайте наступні рядки коду: Imports SystemImports System.DiagnosticsImports 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 ProcessFor Each oProc In aoAllProcesses 'дії над oProcNextВ циклі аналізуйте властивості 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. При необхідності реалізуйте повноцінну обробку винятків з висновком діагностичних повідомлень.