ПОНЯТНО О Visual Basic NET (том 3)


Windows API - часть 2


Итак, как видите, многое нужно знать заранее. А откуда эти знания взять?

Определяем свободное место на диске. В библиотеке kernel32.dll  Windows API имеется функция GetDiskFreeSpaceA, при помощи которой можно определить свободное место на диске. Создайте проект с кнопкой. Вот код:

Declare Function Свободное_место Lib "kernel32.dll" Alias "GetDiskFreeSpaceA" _

             (ByVal Диск As String, ByRef Секторов_в_кластере As Integer, ByRef Байтов_в_секторе As Integer, _

             ByRef Свободно_кластеров As Integer, ByRef Всего_кластеров As Integer) As Integer

 

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click

    Dim Секторов_в_кластере, Байтов_в_секторе, Свободно_кластеров, Всего_кластеров As Integer

    Свободное_место("E:\", Секторов_в_кластере, Байтов_в_секторе, Свободно_кластеров, Всего_кластеров)

    Debug.WriteLine(Секторов_в_кластере)

    Debug.WriteLine(Байтов_в_секторе)

    Debug.WriteLine(Свободно_кластеров)

    Debug.WriteLine(Всего_кластеров)

    Debug.WriteLine("Свободно байтов - " &   _

CLng(Свободно_кластеров) * Секторов_в_кластере * Байтов_в_секторе)

End Sub

Запустите проект. Нажмите кнопку. VB напечатает:

8

512

6313557

10004470

Свободно байтов - 25860329472

Пояснения: На физическом уровне место под информацию на дисках отводится в так называемых кластерах. Кластеры делятся на сектора, сектора – на байты. Кластер может быть занят информацией или свободен. Чтобы узнать, сколько на диске имеется свободных байтов, нужно, как вы уже догадались, умножить число свободных кластеров на число секторов в кластере и на число байтов в секторе.

Функция имеет 5 параметров. Само значение функции нас никак не интересует, а интересуют некоторые параметры. Первый параметр указывает имя интересующего нас диска, смысл остальных параметров ясен из их имен.

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

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




Начало  Назад  Вперед