Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3975 / 230 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 14:

Автоматизация приложений Microsoft Office и управление процессами

Управление работой Блокнота

  1. Щелкните на команде Close Solution (Закрыть решение) в меню File (Файл), а затем создайте в папке c:\vbnet03sbs\Гл.13 новый проект с именем My Start App.
  2. Отобразите форму проекта, а затем добавьте в нее с помощью элемента управления Button две кнопки.
  3. Установите свойство Text объекта Button1 на значение Запустить блокнот, а свойство Text объекта Button2 на значение Остановить блокнот. Установите свойство Text формы равным Примеры запуска процесса. Теперь добавьте в проект невидимую компоненту Process, которую Visual Basic использует для управления приложением Notepad (Блокнот) во время его выполнения.
  4. Щелкните на закладке Components (Компоненты) Области элементов среды Visual Studio. Эта закладка выглядит так.


    До сих пор вы использовали только закладку Windows Forms окна Toolbox (Область элементов), но закладка Components (Компоненты) также очень полезна. Она содержит компоненты .NET, которые осуществляют мониторинг событий операционной системы и среды разработки Visual Studio.

  5. Сделайте двойной щелчок мышью в окне Toolbox (Область элементов) на компоненте Process на закладке Components (Компоненты). Компонента Process добавится в область компонент под формой, аналогично другим невидимым элементам управления Toolbox (Область элементов). У этой компоненты нет видимого интерфейса пользователя; она просто представляет приложение, которое запущено вашим проектом.
  6. Щелкните на объекте Process1, а затем используйте окно Properties (Свойства) для установки свойства Name объекта на значение noteProcess.
  7. В окне Properties (Свойства) щелкните на знаке "плюс" (+) рядом с категорией StartInfo, в результате чего она откроется, а затем установите свойство FileName равным notepad.exe. Используйте имя объекта noteProcess в коде вашей программы, когда захотите запустить, остановить или исследовать состояние приложения Notepad (Блокнот). Свойство FileName устанавливает имя приложения равным notepad.exe. При корректной установке приложения это имя можно найти в системном реестре. (Если вы хотите запустить другое приложение, то измените это имя, например, на winword.exe или excel.exe.)

    Примечание. Чтобы передать запускаемому приложению аргументы командной строки, установите свойство Arguments из категории StartInfo.

    Теперь ваша форма выглядит примерно так.

  8. Сделайте двойной щелчок мышью на кнопке Запустить блокнот формы, а затем введите в Редакторе кода следующий оператор программы:

    noteProcess.Start()

    Так как вы уже указали имя приложения с помощью компоненты Process, здесь его указывать не требуется. Имя объекта noteProcess содержит всю необходимую информацию.

  9. Снова отобразите форму, а затем сделайте двойной щелчок мышью на кнопке Остановить блокнот.
  10. Введите в Редакторе кода следующий оператор программы:

    noteProcess.CloseMainWindow()

    Метод CloseMainWindow является эквивалентом щечку на кнопке Закрыть в строке заголовка Блокнота. Если у пользователя в приложении есть несохраненный файл, то прежде, чем приложение будет закрыто, появится запрос на сохранение этого файла. (Приложение также можно закрыть с помощью метода Kill, но этот вариант не позволит сохранить изменения.)

  11. Прокрутите код программы формы в самый верх, а затем введите следующие ссылки на классы:

    Imports System.Threading
    Imports System.Diagnostics

    Эти классы System используются, когда вы управляете процессами из вашего кода программы, хотя они и не требуются, если вы используете только методы Start и CloseMainWindow, как это сделал я. (Я включаю их для того, чтобы определить классы Framework, которые могут понадобиться для дальнейшего изучения этого направления.)

  12. Щелкните на кнопке Save All (Сохранить все) на стандартной панели инструментов, а затем запустите программу.

    Примечание. Готовая программа Start App лежит в папке c:\vbnet03sbs\Гл.13\start app.

    Появится следующая форма.


  13. Щелкните на кнопке Запустить блокнот. Ваша программа запустит Notepad (Блокнот).


  14. Снова отобразите форму, а затем щелкните мышью на кнопке Остановить блокнот. Visual Basic закрое приложение, используя метод CloseMainWindow. Вы можете запускать и останавливать Notepad (Блокнот) сколько вам захочется - ваша программа теперь может управлять процессами запускаемых вами приложений, так как связывает их с объектом noteProcess.
  15. Щелкните на кнопке Закрыть формы, чтобы закрыть программу.

Краткая справка по лекции 13

Чтобы Сделайте следующее
Добавить в ваш проект ссылку на компоненту или приложение, которое поддерживает Automation В меню Project (Проект) щелкните на команде Add Reference (Добавить ссылку). Далее щелкните на закладке COM, на желаемой библиотеке объектов, на кнопке Select (Выбрать), а затем на OK.
Просмотреть объекты, которые доступны для использования в вашем проекте В меню View (Вид) щелкните на команде Object Browser (Обозреватель объектов). Выберите с помощью иерархической древовидной структуры на панели Objects (Объекты) те объекты, которые вы хотите изучить.
Создать а программе объект Automation

Используйте оператор Dim и функции CType и CreateObject. Например:

Dim xlApp As Excel.Application
xlApp = CType(CreateObject _
	("Excel.Application"), Excel.Application)
Получить с помощью Automation доступ к функциям приложения

Создайте объект Automation, а затем сошлитесь на методы или свойства этого объекта. Например:

xlApp.Quit()
Запускать и останавливать приложения из Visual Basic

Добавьте в форму компоненту Process, сделав двойной щелчок мышью на элементе Process на закладке Components (Компоненты) Области элементов. Установите свойства Name и FileName объекта процесса, а затем используйте для запуска и остановки процесса из вашего кода программы следующие операторы программы соответственно:

Objectname.Start()
Objectname.CloseMainWindow()
Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?