Скачиваний:
11
Добавлен:
30.09.2018
Размер:
18.17 Кб
Скачать

7 7. Лекция: Кратко о приложениях для сетей. Windows API: версия для печати и PDA

Практическая работа "Создание Browser" демонстрирует возможность создания приложений для сетей. Далее обсуждается возможность включения готовых фрагментов Windows в пользовательские приложения. Кратко о приложениях для сетей При разработке приложений для сетей могут использоваться сочетания кода языка гипертекста, документы ActiveX и т.д. Ограничимся написанием программы-Browser; для создания таких приложений разработан элемент управления WebBrowser, обладающий методами, обеспечивающими, например, навигацию; событиями, связанными с загрузкой файлов и т.д. После создания Browser'a его возможности могут интегрироваться в приложение и пользователь получает доступ в сеть из своей пользовательской Visual Basic-программы.

  Практическая работа 47. Создание Browser Последовательность действий: вывести элемент управления WebBrowser: меню Проект Компоненты Microsoft Internet Controls OK, вывести его на форму, рис. 7.1, центр,

создать на форме элемент управления StatusBar: меню Проект Компоненты Microsoft Windows Common Controls OK вывести на форму с панели элементов управления элемент управления StatusBar, рис. 7.1 внизу,

свойству Style, созданного на форме элемента управления (рис. 7.1 вверху) СomboBox присвоить значение 0; очистить свойство Text,

создать 5 объектов CommandButton: Command1, Caption = New URL; Command2, Caption = STOP; Command3, Caption = HOME; Command4, Caption = FORWARD; Command5, Caption = BACK. Cвойствам Picture присвоить значения - имена файлов с рисунками, см. рис. 7.1 вверху,

 

найти (меню Windows Пуск Поиск) файлы tearoom.htm, readmevb.htm, Register.htm (или другие файлы формата *.htm, имеющиеся в наличии), скопировать их на дискету,

ввести код, данный ниже, пояснения даны под комментариями,

стартовать проект; в поле элемента управления WebBrowser выводится стартовый файл (здесь) Running Bithday.htm, см. код; в поле комбинированного списка имеется одна запись "Running Bithday", в поле объекта StatusBar - соответствующая запись,

ввести в текстовое поле СomboBox последовательно имена файлов и соответствующие пути: tearoom.htm, readmevb.htm, Register.htm, нажимая после каждого ввода командную кнопку Command1 (New URL) - в поле WebBrowser выводятся новые страницы, список СomboBox заполняется именами файлов. Наблюдать содержимое поля StatusBar,

использовать кнопки Command3 (HOME), Command4 (FORWARD), Command5 (BACK) - в поле WebBrowser выводятся ранее использованные страницы (рис. 7.1).

  ' описание переменной, предназначенной для хранения ' стартового URL Private start As String ' инициализация переменной, хранящей стартовый URL и ' передача параметра процедуре навигации ' Web Browser1.Navigate start Private Sub Form_Load() ErhaltAdr makeNavig start End Sub ' присвоить переменной значение - имя файла Private Sub ErhaltAdr() start = "file://A:\Running Birthday.htm" End Sub ' навигация браузера. В результате навигации ' устанавливается соединение с соответствующим узлом ' и начинается загрузка файла, указанного в URL Private Sub makeNavig(Adr As String) WebBrowser1.Navigate Adr End Sub ' командной кнопкой можно остановить передачу и ' загрузку файла Private Sub WebBrowser1_DownloadBegin() Command2.Enabled = True End Sub Private Sub Command2_Click() WebBrowser1.Stop End Sub ' заканчивается загрузка файла, указанного в URL, ' останавливать нечего Private Sub WebBrowser1_DownloadComplete() Command2.Enabled = False ' указать имя файла (URL) в статусной строке StatusBar1.SimpleText = WebBrowser1.LocationName StatusBar1.SimpleText = "LOAD FROM: " & WebBrowser1.LocationName With ComboBox1 ' включить в список ComboBox имя файла ' текущего URL и исключить 5-й элемент списка, ' если список полон .AddItem WebBrowser1.LocationName ' .ListIndex = 0 If .ListCount > 5 Then .RemoveItem 5 End If End With End Sub ' перемещения к ранее использованным страницам Private Sub Command5_Click() WebBrowser1.GoBack End Sub Private Sub Command4_Click() WebBrowser1.GoForward End Sub Private Sub Command3_Click() makeNavig start End Sub ' после ввода пути и имени файла в поле ComboBox (здесь ' используется тип доступа "file:\\путь :") сделать щелчок ' на кнопке для реализации навигации Private Sub Command1_Click() makeNavig ComboBox1.Text End Sub  

Рис. 7.1.  Browser  

  Windows API - набор DLL (библиотек динамической компоновки) с сотнями функций API - это интерфейс прикладного программирования. DLL - это составная часть Windows и представляет собой откомпилированный код. При работе функции, объединeнные в файле, связываются с программмой; программа использует их во время выполнения . Win32 (версия API) состоит из 32-разрядных функций. Для обеспечения совместимости с предыдущими версиями сохранeн (ранний) 16-разрядный код API.

  Перед тем, как воспользоваться функцией DLL, еe нужно объявить (объявление процедуры и типов еe параметров).

  API Viewer Программа API Viewer, рис. 7.2, входящая в комплект Visual Basic, содержит информацию о большинстве функций, типов данных и констант. Там содержатся готовые фрагменты, которые можно включить в приложение.

  API Viewer можно вызвать следующим образом: меню Пуск Программы Microsoft Visual Basic Microsoft Visual Basic Tools API Text Viewer. API Viewer можно добавить в меню Добавления (подключить к IDE Visual Basic): меню Добавления Менеджер Дополнений VB API Viewer (список Доступные дополнния) в нижнем правом углу окна окна Добавления пометить флажок Загрузка при запуске ОК закрыть Visual Basic, затем стартовать его ещe раз в меню Добавления появился API Viewer сделaть щелчок на его имени выводится окно API Viewer, рис. 7.2. API Viewer нужно сконфигурирвать: File Load text File Win32API.txt File Convert to Database сохранить под предложенным именем базу данных использовать это окно для поиска объявлений (см. рис. 7.3) необходимой функции.

   

Рис. 7.2.  API Viewer  

  API Viewer предоставляет следующие возможности:

  выбор вида объявления - константа, функция, или тип данных (поле API Type),

после ввода имени искомого элемента отображается выбранная группа; список можно пролистать (поля Type the first few letters : и Available Items),

выбор типа объявления - Private, Public, (окно Declare Scope),

добавление/удаление объявления выбранного элемента в список Selected Items; можно также очистить этот список (кнопки Add, Remove, Clear),

скопировать объявления из списка Selected Items в буфер обмена (кнопка Copy).

  Объявление функций В окне API Viewer, рис. 7.2 из списка API Type (верхняя часть окна) следует выбрать Declares. Далее нужно ввести в поле Type the first few letters : имя функции (например) CopyFile, после щелчка на еe имени в поле Available Items и на кнопке Add в нижнее поле окна выводится еe объявление. Далее следует выбрать выбрать тип (Public, Private), скопировать объявление в буфер обмена (кнопка Copy). Впоследствии нужно вставить объявление функции в область (General) (Declarations) проекта. При использовании в проекте модуля следует использовать тип объявления Public и поместить объявление функции в область модуля.

  В данном случае (рассматривается функция CopyFile) объявление имеет вид:

  Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA"_ (ByVal lpExistingFileName As String, ByVal lpNewFileName _ As String, ByVal bFailIfExists As Long) As Long Declare - обозначение объявления внешней процедуры,

Function - тип процедуры,

CopyFile - имя функции: копирование файла,

Lib - используется для указания DLL, содержащей функцию,

"kernel32" - имя DLL,

Alias "CopyFileA" API - ключевое слово Alias указывает имя функции, обеспечивающее совместимость 16-разрядной и 32-разрядной версий API,

ByVal - способ передачи параметра - "по значению",

LpExistingFileName, lpNewFileName, bFailIfExists - список параметров,

As String, As Long - типы (данных) параметров,

As Long - тип значения, возвращаемого функцией.

  Возвращаемое значение (здесь) RetVal принимает значение 0, если копирование файла не произошло.

  Практическая работа 48. Использование Windows АPI Использовать функцию Windows АPI копирование файла; для этого выполнить следующее:

  Создать на форме (рис. 7.3): элементы управления DriveListBox, DirListBox, FileListBox; синхронизировать их работу, обеспечить вывод содержимого каталога после его маркировки и нажатия клавиши Enter,

две командные кнопки, четыре поля метки, см. код процедур,

 

ввести код, данный ниже, пояснения даны под комментариями,

стартовать проект, выбрать для копирования файл в дереве файлов, выведенном в поля элементов DriveListBox, DirListBox, FileListBox (здесь - файл Net14.ICO на дискете), маркировать файл. Сделать щелчок на кнопках Command2 и (последровательно несколько раз) на Command1 (Function:) - в поля меток выводятся: имя дискового устройства, имя каталога, путь и имя файла, сообщение о числе копирований файла, рис. 7.3

  ' объявление функции Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA"_ (ByVal lpExistingFileName As String, ByVal lpNewFileName _ As String, ByVal bFailIfExists As Long) As Long ' описание переменной для хранения возвращаемого функцией значения Dim RetVal As Long Private Sub Command1_Click() ' процедура копирования файла ' переменная описана как Static для обеспечения ' многократного копирования файла последовательным ' нажатием командной кнопки Static i As Integer RetVal = CopyFile(File1, "lpNewFileName", 1) ' копирование Print File1 ' вывод имени копируемого файла на форме ' вывод имени файла и числа копирований Label1 = File1 & " Copy " & i + 1 i = i + 1 End Sub ' синхронизация работы элементов управления Dir1 и Drive1; ' обеспечение вывода содержимого каталога при его ' маркировке и нажатии клавиши Enter Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Private Sub Dir1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Dir1.Path = Dir1.List(Dir1.ListIndex) End Sub ' вывод в поля меток имени дискового устройства, каталога, ' пути и имени файла Private Sub Command2_Click() Label2 = Drive1: Label3 = Dir1: Label4 = File1 End Sub  

Рис. 7.3.  Пример использования Windows API

Соседние файлы в папке INTUIT Лекции Visual Basic