API функции языка Visual Basic.

Пришло время поговорить о таком понятии как API функции в языке Visual Basic . Чем же важны эти функции в Visual Basic? Давайте разберемся, во-первых, когда Вы начнете программировать на Visual Basic, Вы сразу же поймете, что с использованием этих функций можно написать очень серьезные программы, во-вторых, просто многое нельзя сделать без использования API функций, например, практически все что связанно с использованием операционной системы Windows (например: узнать имя пользователя, место на жестком диске и так далее ).

Но для того чтобы начать применять на практике эти функции, Вам нужно знать, что они из себя представляют, давайте поговорим сначала об этом.

Теория по API функциям Visual Basic

API – это аббревиатура Application Programming Interface (интерфейс прикладного программирования ). Другими словами, API – это набор функций, которые сама операционная система дает программисту для использования их в своих программах. С помощью API программисты легко реализуют свои задумки на практике.

API функции могут вызываться из Visual Basic для выполнения задач, для которых недостаточно стандартного программного кода Visual Basic. Например, стандартные средства Visual Basic не позволяют выключить компьютер или перезагрузить его. Однако все это можно легко сделать через обращение к соответствующей функции API.

Практически все функции, которые располагаются в Windows - находятся внутри DLL (Dynamic Link Library ). Все dll-файлы расположены в системной папке Windows. Существует свыше 1000 функций API, которые условно делятся на четыре основные категории.

  • Работа с приложениями - запуск и закрытие приложений, обработка команд меню, перемещения и изменения размера окон;
  • Графика - создание изображений;
  • Системная информация - определение текущего диска, объем памяти, имя текущего пользователя и т.д.;
  • Работа с реестром - манипуляции с реестром Windows.

Применение API функций на практике

Теперь перейдем непосредственно к использованию этих функций на практике. Функции API, вызываемые в Visual Basic, должны быть сначала объявлены. При объявлении указывается имя DLL и функции, а также информация о количестве и типе аргументов.

Процедуры DLL объявляются командой Declare в секции General Declarations модуля формы или стандартного модуля:

Declare Function имя Lib "библиотека" [([ _ переменная [,ByVal,] переменная ]...])] As тип

Процедуры DLL, находящиеся в стандартных модулях, по умолчанию являются открытыми и могут вызываться из любой точки приложения. Процедуры, объявленные в модуле формы, являются закрытыми и перед их объявлением должно стоять ключевое слово Private.

Секция Lib сообщает, где следует искать файл DLL, содержащий функцию. При ссылке на основные библиотеки Windows (user32.dll, kernel32.dll, gdi.dll) расширение включать не обязательно.

Если путь к файлу не указан, то начинается просмотр каталогов в следующей последовательности

  1. Каталог, содержащий EXE-файл программы;
  2. Текущий каталог;
  3. Системный каталог Windows;
  4. Каталог Windows;
  5. Переменная окружения Path.

Вот небольшой перечень стандартных библиотек DLL Windows:

  • advapi.dll - защита NT,реестр и другие продвинутые сервисы;
  • comdlg.dll - стандартные диалоговые окна;
  • gdi.dll - интерфейс графических устройств;
  • kernel32.dll - память, диски, процессы, ресурсы;
  • mpr.dll - сети;
  • netapi32.dll - библиотека сетевого API;
  • shell32.dll - оболочка Windows, drag-and-drop ,выборка значков;
  • user32.dll - пользовательский интерфейс-окна, меню, строки, сообщения;
  • version.dll - контроль версий;
  • winmm.dll - мультимедиа, звук, джойстики, таймеры;
  • winspoll.dll - диспетчер печати.

Большинство процедур DLL за документировано с использованием нотации языка программирования C и C++. Для успешного преобразования функции API в команду Declare необходимо разбираться в механизме передачи аргументов. Обычно аргументы передаются по значению. В этом случае перед именем аргумента ставится ключевое слово ByVal. Если аргумент передается по ссылке, то ставится ByRef.

Вот самый малый список функций, которые используются в Visual Basic:

  • BitBlt - копирует изображение из одного hDC в другой;
  • FindWindow - находит Handle окна с указанным Caption;
  • GetCursorPos - возвращает текущую позицию курсора мыши (глобально);
  • GetDriveType - возвращает тип накопителя;
  • GetForegroundWindow - возвращает Handle активного окна;
  • SetCursorPos - устанавливает новую позицию курсора мыши;
  • SetVolumeLabel - изменяет метку диска;
  • SetWindowPos - устанавливает позицию окна с определённым Handle (также с помощью этой функции можно сделать так, чтобы окно было ПОВЕРХ всех;
  • ShellExecute - запускает приложение, ассоциированное с расширением, которое имеет указанный файл (также может просто запустить указанное приложение);
  • ShowCursor - скрывает или показывает курсор мыши на экране.

Примеры работы с реестром

Также при программировании на Visual Basic, да и на других языках возникает проблема, когда нужно использовать реестр Windows, но с помощью api функций это сделать легко, например:

Для чтения строкового параметра используйте функцию GetRegString

Пример:

Dim test As String test = GetRegString(HKEY_LOCAL_MACHINE, _ "Software\Microsoft\DirectX", "Version") Form1.Caption = test

Для чтения параметра DWORD GetRegDWord

Пример:

Dim test As Long test = GetRegDWord(HKEY_LOCAL_MACHINE, _ "Software\Microsoft\Internet Explorer\AboutURLs", "Home") Form1.Caption = test

Для записи строкового параметра используется SetRegString

Пример:

SetRegString HKEY_LOCAL_MACHINE, _ "Software\test", "MyProgram", "Options"

Если ключ или параметр не были созданы, то они будут созданы, если ключ или параметр уже существуют, то новые значения запишутся поверх старых.

Для записи параметра типа DWORD используется SetRegDWord

Пример:

SetRegDWord HKEY_LOCAL_MACHINE, _ "Software\test", "MyProgram", "555"

Для удаления ключа из реестра используется функция DeleteRegKey

Пример:

DeleteRegKey HKEY_LOCAL_MACHINE, "Software", "test", True

Второй параметр - Ключ-родитель
Третий параметр - True - если требуется подтверждение на удаление или False - если подтверждение не требуется.

Для удаления параметра из реестра используется функция DeleteRegValue

Пример:

DeleteRegValue HKEY_LOCAL_MACHINE,_ "Software\Microsoft\Internet Explorer\AboutURLs", "mozilla", False

На самом деле возможности API функций в операционной системе Windows практически безграничны. Давайте закончим на этом рассмотрение этой возможности Visual Basic и напоследок напишем небольшую программку с использованием API функций.

Данная программа просто выводит сообщение на экран, вставьте следующий код:

Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Sub Form_Load() Const TEXT = "Ты использовал API" Dim hRgn As Long Font.Name = "Times New Roman" Font.Bold = True Font.Size = 60 Width = TextWidth(TEXT) Height = TextHeight(TEXT) BeginPath hdc Print TEXT EndPath hdc hRgn = PathToRegion(hdc) SetWindowRgn hWnd, hRgn, False Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2 End Sub

Мы здесь использовали 4 функции (BeginPath, EndPath, PathToRegion, SetWindowRgn), которые располагаются в двух dll библиотеках (gdi32, user32).

На этом все, пока!

Приветствую!
В этой статье мы с вами рассмотрим, что такое API, где, как и для чего оно применяется. Так же мы рассмотрим, как API можно применить в своих web разработках и чем это может упростить жизнь web программисту.

Итак, начнём с определения. API (Application Programming Interface) - это интерфейс программирования, интерфейс создания приложений. Если говорить более понятным языком, то API - это готовый код для упрощения жизни программисту. API создавался для того, чтобы программист реально мог облегчить задачу написания того или иного приложения благодаря использованию готового кода (например, функций). Всем известный jQuery, написанный на JavaScript является тоже своего рода API. Если рассматривать конкретно данный пример, то jQuery позволяет намного облегчить написание кода. То что обычными средствами JavaScript можно было сделать за 30 строк, через jQuery пишется через 5-6. Если рассматривать API в общем, то можно найти очень много сервисов, представляющих решения для разработки. Самый известный на сегодняшний день - это сервис code.google.com, предоставляющий около полусотни разнообразных API! Это и интерфейс для создания Android-приложений, и различные API для работы с AJAX, и различные API приложений, которые можно легко подстроить под свой лад.

Ведь есть ли смысл писать код своими руками? Зачем трудиться над тем, что уже создано? Разве есть смысл отказываться от бесплатных решений (а фактически, и от бесплатной помощи) в web разработке? Если вы ответили на все эти вопросы «НЕТ», то считайте, что вы поняли суть API.

Но ещё хочу оговориться. Начинающим разработчикам НЕ следует пользоваться полуготовыми решениями, так как в будущем они не справятся с реальной задачей. Поэтому, если вы начинающий web программист, то не используйте полуфабрикаты! Учитесь думать своей головой, строить различные алгоритмы, чтобы понять суть программирования. Так же говорю, уже обращаясь ко всем, что API - это не готовые решения, это среда, интерфейс для создания своих проектов. Вы же не едите замороженный котлеты из магазина? Вы сначала их пожарите, не так ли? Эта аналогия очень ясно отображает суть API.

В общем, я рассказал, что такое API, где и как оно используется, самое главное, для чего. Желаю приятного изучения web программирования и постижения всё больших его глубин!

Теги: api

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит

, функций , структур и констант , предоставляемых приложением (библиотекой, сервисом) или операционной системой для использования во внешних программных продуктах. Используется программистами при написании всевозможных приложений.

Энциклопедичный YouTube

  • 1 / 5

    API определяет функциональность, которую предоставляет программа (модуль , библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.

    Если программу (модуль, библиотеку) рассматривать как чёрный ящик , то API - это множество «ручек», которые доступны пользователю данного ящика и которые он может вертеть и дёргать.

    Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию - высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.

    По такому принципу построены протоколы передачи данных по Интернет . Стандартный стек протоколов (сетевая модель OSI) содержит 7 уровней (от физического уровня передачи бит до уровня протоколов приложений, подобных протоколам HTTP и IMAP). Каждый уровень пользуется функциональностью предыдущего («нижележащего») уровня передачи данных и, в свою очередь, предоставляет нужную функциональность следующему («вышележащему») уровню.

    Важно заметить, что понятие протокола близко по смыслу к понятию API. И то, и другое является абстракцией функциональности, только в первом случае речь идёт о передаче данных, а во втором - о взаимодействии приложений.

    API библиотеки функций и классов включает в себя описание сигнатур и семантики функций .

    Сигнатура функции

    Иногда различают сигнатуру вызова и сигнатуру реализации функции. Сигнатура вызова обычно составляется по синтаксической конструкции вызова функции с учётом сигнатуры области видимости данной функции, имени функции, последовательности фактических типов аргументов в вызове и типе результата. В сигнатуре реализации обычно участвуют некоторые элементы из синтаксической конструкции объявления функции: спецификатор области видимости функции, её имя и последовательность формальных типов аргументов.

    Например, в языке программирования C++ простая функция однозначно опознаётся компилятором по её имени и последовательности типов её аргументов, что составляет сигнатуру функции в этом языке. Если функция является методом некоторого класса, то в сигнатуре будет участвовать и имя класса.

    В индустрии программного обеспечения общие стандартные API для стандартной функциональности имеют важную роль, так как они гарантируют, что все программы, использующие общий API, будут работать одинаково хорошо или, по крайней мере, типичным привычным образом. В случае API графических интерфейсов это означает, что программы будут иметь похожий пользовательский интерфейс, что облегчает процесс освоения новых программных продуктов.

    С другой стороны, отличия в API различных операционных систем существенно затрудняют перенос приложений между платформами. Существуют различные методы обхода этой сложности - написание «промежуточных» API (API графических интерфейсов wxWidgets , , GTK и т. п.), написание библиотек, которые отображают системные вызовы одной ОС в системные вызовы другой ОС (такие среды исполнения, как Wine , cygwin и т. п.), введение стандартов кодирования в языках программирования (например, стандартная библиотека языка C), написание интерпретируемых языков, реализуемых на разных платформах ( , python , perl , php , tcl , Java и т. д.).

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

    Например: для того, чтобы увидеть в браузере строчку «Hello, world! », достаточно лишь создать HTML -документ с минимальным заголовком и простейшим телом, содержащим данную строку. Когда браузер откроет этот документ , программа-браузер передаст имя файла (или уже открытый дескриптор файла) библиотеке, обрабатывающей HTML-документы, та, в свою очередь, при помощи API операционной системы прочитает этот файл и разберётся в его устройстве, затем последовательно вызовет через API библиотеки стандартных графических примитивов операции типа «очистить окошко», «написать „Hello, world!“ выбранным шрифтом». Во время выполнения этих операций библиотека графических примитивов обратится к библиотеке оконного интерфейса с соответствующими запросами, уже эта библиотека обратится к API операционной системы, чтобы записать данные в буфер видеокарты .

    При этом практически на каждом из уровней реально существует несколько возможных альтернативных API. Например: мы могли бы писать исходный документ не на HTML, а на LaTeX , для отображения могли бы использовать любой браузер. Различные браузеры, вообще говоря, используют различные HTML-библиотеки, и, кроме того, всё это может быть собрано с использованием различных библиотек примитивов и на различных операционных системах.

    Основными сложностями существующих многоуровневых систем API, таким образом, являются:

    • Сложность портирования программного кода с одной системы API на другую (например, при смене ОС);
    • Потеря функциональности при переходе с более низкого уровня на более высокий. Грубо говоря, каждый «слой» API создаётся для облегчения выполнения некоторого стандартного набора операций. Но при этом реально затрудняется, либо становится принципиально невозможным выполнение некоторых других операций, которые предоставляет более низкий уровень API.

    Наиболее известные API

    Операционных систем

    Песочница

    друже 26 ноября 2012 в 13:59

    Что такое API

    • Чулан *

    Приветствую!
    В этой статье мы с вами рассмотрим, что такое API, где, как и для чего оно применяется. Так же мы рассмотрим, как API можно применить в своих web разработках и чем это может упростить жизнь web программисту.

    Итак, начнём с определения. API (Application Programming Interface) - это интерфейс программирования, интерфейс создания приложений. Если говорить более понятным языком, то API - это готовый код для упрощения жизни программисту. API создавался для того, чтобы программист реально мог облегчить задачу написания того или иного приложения благодаря использованию готового кода (например, функций). Всем известный jQuery, написанный на JavaScript является тоже своего рода API. Если рассматривать конкретно данный пример, то jQuery позволяет намного облегчить написание кода. То что обычными средствами JavaScript можно было сделать за 30 строк, через jQuery пишется через 5-6. Если рассматривать API в общем, то можно найти очень много сервисов, представляющих решения для разработки. Самый известный на сегодняшний день - это сервис code.google.com, предоставляющий около полусотни разнообразных API! Это и интерфейс для создания Android-приложений, и различные API для работы с AJAX, и различные API приложений, которые можно легко подстроить под свой лад.

    Ведь есть ли смысл писать код своими руками? Зачем трудиться над тем, что уже создано? Разве есть смысл отказываться от бесплатных решений (а фактически, и от бесплатной помощи) в web разработке? Если вы ответили на все эти вопросы «НЕТ», то считайте, что вы поняли суть API.

    Но ещё хочу оговориться. Начинающим разработчикам НЕ следует пользоваться полуготовыми решениями, так как в будущем они не справятся с реальной задачей. Поэтому, если вы начинающий web программист, то не используйте полуфабрикаты! Учитесь думать своей головой, строить различные алгоритмы, чтобы понять суть программирования. Так же говорю, уже обращаясь ко всем, что API - это не готовые решения, это среда, интерфейс для создания своих проектов. Вы же не едите замороженный котлеты из магазина? Вы сначала их пожарите, не так ли? Эта аналогия очень ясно отображает суть API.

    В общем, я рассказал, что такое API, где и как оно используется, самое главное, для чего. Желаю приятного изучения web программирования и постижения всё больших его глубин!

    Теги: api

    Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит

    API определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.

    Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API - это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дёргать.

    Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию - высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.

    По такому принципу построены протоколы передачи данных по . Стандартный протокол Internet (сетевая модель OSI) содержит 7 уровней (от физического уровня передачи пакетов бит до уровня протоколов приложений, подобных протоколам HTTP и IMAP). Каждый уровень пользуется функциональностью предыдущего уровня передачи данных и, в свою очередь, предоставляет нужную функциональность следующему уровню.

    Важно заметить, что понятие протокола близко по смыслу к понятию API. И то и другое является абстракцией функциональности, только в первом случае речь идёт о передаче данных, а во втором - о построении компьютерных приложений.

    API библиотеки функций и классов включает в себя описание сигнатур и семантики функций .

    Application Programming Interface (API) программный интерфейс взаимодействия между системами, позволяющий:

    • Получать доступ к бизнес-сервисам предприятия
    • Обмениваться информацией между системами и приложениями
    • Упростить взаимодействие между компаниями, партнерами, разработчиками и клиентами

    Open API стратегия

    API стратегия включает в себя:

    • Разработку бизнес-продуктов на основе существующих API
    • Предоставление внутренних сервисов разработчикам
    • Модели монетизации API для построения мультиканального взаимодействия и повышения прибыли

    Реализация концепции Open API помогает трансформировать бизнес, встраивать его в гибкую проектную экосистему игроков рынка, создавать условия для постоянной генерации новых идей и формирования дополнительной ценности при управлении массивами корпоративных данных.

    Рынок интеграционных решений развивается в контексте эволюции API - от EDI и SOAP до Web 2.0 , с которого началась эра публичных API. Число таких интерфейсов в ближайшие 3 года может вырасти более чем в 50 раза и достичь 1 миллиона. Это связано с мультиканальностью: каналы взаимодействия с клиентами должны меняться вместе с ними. Непрерывный рост количества потребителей и объема данных привел к появлению экономики API, помогающей на основе открытых интерфейсов создавать инновационные бизнес-модели использования корпоративных активов и сервисов.

    Сигнатура функции

    Сигнатура функции - часть общего объявления функции, позволяющая средствам трансляции идентифицировать функцию среди других. В различных языках программирования существуют разные представления о сигнатуре функции, что также тесно связано с возможностями перегрузки функции в этих языках.

    Иногда различают сигнатуру вызова и сигнатуру реализации функции. Сигнатура вызова обычно составляется по синтаксической конструкции вызова функции с учётом сигнатуры области видимости данной функции, имени функции, последовательности фактических типов аргументов в вызове и типе результата. В сигнатуре реализации обычно участвуют некоторые элементы из синтаксической конструкции объявления функции: спецификатор области видимости функции, её имя и последовательность формальных типов аргументов.

    Например, в языке программирования Си++ простая функция однозначно опознаётся компилятором по её имени и последовательности типов её аргументов, что составляет сигнатуру функции в этом языке. Если функция является методом некоторого класса, то в сигнатуре будет учаcтвовать и имя класса.

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

    Например: для того, чтобы увидеть в браузере строчку «Hello, world!» достаточно лишь создать HTML -документ с минимальным заголовком, и простейшим телом, содержащим данную строку. Что произойдёт, когда браузер откроет этот документ ? Программа-браузер передаст имя файла (или уже открытый дескриптор файла) библиотеке, обрабатывающей HTML-документы, та, в свою очередь, при помощи API операционной системы прочитает этот файл, и разберётся в его устройстве, повызывает через API библиотеки стандартных графических примитивов операции типа «очистить окошко», «написать выбранным шрифтом Hello, world!», при этих операциях библиотека графических примитивов обратится к библиотеке оконного интерфейса с соответствующими запросами, уже эта библиотека обратится к API операционной системы с запросами вида «а положи-ка мне в буфер видеокарты вот это».

    При этом практически на каждом из уровней реально существует несколько возможных альтернативных API. Например: мы могли бы писать исходный документ не на HTML , а на LaTeX, для отображения могли бы использовать любой браузер. Различные браузеры, вообще говоря, используют различные HTML-библиотеки, и, кроме того, всё это может быть (вообще говоря) собрано с использованием различных библиотек примитивов и на различных операционных системах.

    Основными сложностями существующих многоуровневых систем API, таким образом, являются:

    • Сложность портирования программного кода с одной системы API на другую (например, при смене ОС);
    • Потеря функциональности при переходе с более низкого уровня на более высокий. Грубо говоря, каждый «слой» API создаётся для облегчения выполнения некоторого стандартного набора операций. Но при этом реально затрудняется, либо становится принципиально невозможным выполнение некоторых других операций, которые предоставляет более низкий уровень API.

    Основные типы API

    Внутренние API

    • Доступ к API предоставляется только внутренним разработчикам
    • Приложения нацелены на сотрудников предприятия

    Бизнес-драйверы:

    • Консистентность разработки
    • Снижение затрат
    • Повышение эффективности разработки

    Партнерские API

    • API доступны только ограниченному набору бизнес-партнеров
    • Приложения предназначены для конечных потребителей и для бизнес-пользователей

    Бизнес-драйверы:

    • Автоматизация процесса разработки
    • Развитие партнерских отношений
    • Оптимизация процесса взаимодействия с партнерами

    Публичные API

    Доступ предоставляется любому внешнему разработчику Приложения нацелены на конечных пользователей

    Бизнес-драйверы:

    • Разработка новых сервисов
    • Развитие экосистемы
    • Мультиканальное взаимодействие

    Наиболее известные API

    API операционных систем

    API графических интерфейсов

    • Direct3D (часть DirectX)
    • DirectDraw (часть DirectX)

    Похожие статьи