Совет 1: Как закрыть программу из Visual basic

Гибкий и мощный язык программирования Visual Basic .NET, являясь одним из специально созданных средств разработки приложений для платформы Microsoft .NET, позволяет полностью использовать все ее возможности. В частности, компоненты пространства имен System.Diagnostics позволяют осуществлять взаимодействие с процессами, журналами событий и счетчиками производительности. Например, можно закрыть программу из Visual Basic, используя класс Process.
Вам понадобится
  • - 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. При необходимости реализуйте полноценную обработку исключений с выводом диагностических сообщений.

Совет 2: Как получить доступ к портам

Одна из нелегких проблем при создании программ по работе с периферийными устройствами — организация доступа программы к портам компьютера. Если вы пишите на языке программирования Basic, то с этой проблемой вам поможет Microsoft Visual Studio 2005. Если до этого вы программировали не в данной среде, загрузите и установите программу.
Вам понадобится
  • - интернет.
Инструкция
1
Запустите Microsoft Visual Studio 2005. Данное программное обеспечение по умолчанию устанавливается на персональный компьютер вместе с операционной системой. Найти можете через меню «Пуск». Создайте новый проект с помощью меню «Файл» — «Новый» — «Проект». В качестве типа объектов укажите Windows, а в группе «Шаблоны» выберите «Консоль Приложение».
2
Создайте методы SendSerialData и ReceiveSerialData, используя следующую команду (ее нужно указывать внутри метода):Using com1 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort("COM1")Чтение можно реализовать методом com1.ReadLine().Запись — com1.WriteLine(data).Не забудьте в конце метода закрыть порт процедурой com1.Close().
3
Предусмотрите процедуру запуска чтения или записи по запросу пользователя или иным путем. Реализацию запуска можно расширить позднее, после тестирования работы программы с последовательными портами. Сейчас будет достаточно запуска из консоли. Запустите выполнение программы с помощью кнопок меню или нажав CTRL + F5 на клавиатуре. Исправьте ошибки, если они возникли в процессе тестирования.
4
Для более подробной информации обращайтесь к мануалам по языку Basic. Похожие решения такой проблемы вы можете найти на тематических сайтах по программированию на Basic. Справочная информация также содержится на сайте Microsoft. В целом же можно сказать, что получить доступ к портам компьютера не так уж и легко, так как подобные операции требуют определенного навыка работы на персональном компьютере, а также работы с интернет системами. Старайтесь не открывать все порты, так как ваш компьютер будет полностью уязвим в сети, что может привести к серьезным последствиям.
Видео по теме
Поиск
Совет полезен?
Добавить комментарий к статье
Осталось символов: 500