Windows API: настоящая эффективность

Страницы работы

Фрагмент текста работы

Windows API: настоящая эффективность

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

Сравнение функции API с функциями VBA

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

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

Таблица 12.4. Сравнение функций Windows API ч VBA для работы с файлами и дисками

Функиня плп оператор УВД

Эквивалентные функции API

Отлпчпе Функипп API

 

ChDir,ChDrive

SetCurrentDirector у

Нет дополнительных функциональных возможностей

 

CurDir

GetCurrent Directory

Нет дополнительных функциональных возможностей

 

Dir

FindFirstFile, FindNextFile, FindClose

Требуется больше вызовов функций, но и предоставляется больше информации о каждом файле

 

FileCopy

CopyFile

Позволяет избежать перезаписи существующего файла

 

FileDateTime

GetFileTime

Гораздо сложнее, но предоставляет информацию о времени всех событий, связанных с файлом (создания, последнего открытия и последней модификации)

 

FileLen

GetFileSize

Работает с огромными файлами (более 2 Гб)

 

GetAttr

GetFileAttributes

Нет дополнительных функциональных возможностей

 

Kill

DeleteFile

Нет дополнительных функциональных возможностей

 

MkDir,RmDir

Create Directory,

Поддержка атрибута защиты NT

CreateDirectoryEx,

Remove Directory

Name

MovteFile

Нет дополнительных функциональных позмож-

носте и

SetAttr

SetFileAttributes

Нет дополнительных функциональных возмож

ностей

Open, Input,

CreateFile, ReadFile,

Все равно, что сравнивать яблоки с апельсина

Print, Write,

WriteFile, CloseHandle

ми (функцию API CreateFile необходимо ис

Close

пользовать для получения дескрипторов фай

лов, но в общем применять функции VBA для

операций ввода-вывода файлов гораздо проще)

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

Таблица 12.5. Функции Windows API, lie имеющие аналогов в VBA

функция                              Описание

CompareFileTime                       Сравнивает значения времени двух файлов

FindFirstChangeNotification,         Сообшает Windows о необходимости унсдомлять ваше приложение, об

FindNextChangeNotification          изменениях файла или каталога

FindCloseChangeNotification

GetBinaryType                         Выясняет, является ли файл исполняемым, и если является, то определяет его тип

GetDiskFreeSpace                      Предоставляетинформациюодиске, втом числе объем свободного дискового пространства

GetDriveType                         Определяет тип диска (фиксированный, сменный, сетевой, компакт-диск или RAM-диск)

GetFileInformationByHandle           Предоставляет подробную информацию о файле при единственном вызове функции

GetFullPathName                       Определяет полный путь доступа к файлу по указанному относительному пути

GetLogicalDrives,                     Определяют имена логических дисков компью- тера в виде битовой маски

GetLogicalDriveStrings            либо в виде строки, разделенной нулевыми символами

GetShortPathName                      Определяет короткое (8.3) имя файла по указанному длинному имени файла

GetTempFileName                       Определяет имя временного файла по имени каталога, символам префикса и необязательному                                   уникальному целому числу

GetTempPath                           Находит каталог, предназначенный для хранения временных файлов

GetVolumeInforraationПредоставляет информацию о файловой системе и заданном томе

SearchPath                           Ищет файл по заданному пути или по системным путям, установленным по умолчанию

SetFileTimeИзменяет значения времени для заданного

Похожие материалы

Информация о работе