Идёт загрузка страницы...

htp://aptem.net.ru






На главную страничку учебника Visual Basic

Полезные API функции Windows

В процессе создания приложения на Visual Basic возникают ситуации, когда какое-либо действие нельзя осуществить стандартными средствами Visual Basic. Здесь на помощь приходят Windows API. Вот пример: вам необходимо узнать сколько место осталось на диске. Как это зделать с помощью VB? Никак. А с помощью Windows API - легко!

Здесь я поместил наиболее часто употребляемые ф-ции Windows API. Они расположены в алфавитном порядке.

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

BitBlt - Копирует изображение из одного hDC в другой.

Синтаксис объявления:

Declare Function BitBlt Lib "gdi32" Alias "BitBlt" _
(ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, _
ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Пример:

Поместите на форму 2 PictureBox и загрузите в первый какую-нибудь картинку. Затем вставьте такой код:

Private Const SRCCOPY = &HCC0020

Private Sub Command1_Click()
BitBlt Picture2.hDC, 0, 0, 100, 100, Picture1.hDC, 0, 0, SRCCOPY
End Sub


ExitWindowsEx - Перезагрузка или выход из Windows.

Синтаксис объявления:

Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Пример:

Private Sub Command1_Click()
ExitWindowsEx EWX_SHUTDOWN, 0
'Выключит компьютер. Второй параметр в ф-ции игнорируется

End Sub


FindWindow - Находит Handle окна с указанным Caption.

Синтаксис объявления:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Пример:

Private Sub Command1_Click()
Dim hand As Long
hand = FindWindow(vbNullString, "Калькулятор")
'hand - содержит Handle (или дескриптор) окна с заголовком Калькулятор

End Sub


GetCursorPos - Возвращает текущую позицию курсора мыши (глобально).

Синтаксис объявления:

Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" _
(lpPoint As POINTAPI) As Long

Пример:

Type POINTAPI
x As Long
y As Long
End Type

Private Sub Command1_Click()
Dim a As POINTAPI
GetCursorPos a
Form1.Caption = a.x
End Sub


GetDriveType - Возвращает тип накопителя.

Синтаксис объявления:

Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" _
(ByVal nDrive As String) As Long

Пример:

Private Sub Command1_Click()
Form1.Caption = GetDriveType("E:\")
'Возвратит 5 если это устройство CD-ROM
End Sub


GetForegroundWindow - Возвращает Handle активного окна.

Синтаксис объявления:

Declare Function GetForegroundWindow Lib "user32" Alias _
"GetForegroundWindow" () As Long

Пример:

Private Sub Command1_Click()
Dim a As Long
a = GetForegroundWindow 'a содержит Handle активного окна
End Sub


SetCursorPos - Устанавливает новую позицию курсора мыши.

Синтаксис объявления:

Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" _
(ByVal x As Long, ByVal y As Long) As Long

Пример:

Private Sub Command1_Click()
SetCursorPos 100, 100
End Sub


SetVolumeLabel - Изменяет метку диска.

Синтаксис объявления:

Declare Function SetVolumeLabel Lib "kernel32" Alias _
"SetVolumeLabelA" (ByVal lpRootPathName As String, _
ByVal lpVolumeName As String) As Long

Пример:

Private Sub Command1_Click()
SetVolumeLabel "D:\", "NewLabel"
End Sub


SetWindowPos - Устанавливает позицию окна с определённым Handle (также с помощью этой функции можно сделать так, чтобы окно было ПОВЕРХ всех.

Синтаксис объявления:

Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long

Пример:

Private Sub Command1_Click()
SetWindowPos Form1.hwnd, -1, 0, 0, 200, 200, 0
'Устанавливает форму поверх всех окон, а также перемещает её в 'указанные
координаты и задаёт указанный размер (200 на 200 пикселей)
End Sub


ShellExecute - Запускает приложение, ассоциированное с расширением, которое имеет указанный файл (также может просто запустить указанное приложение).

Синтаксис объявления:

Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Пример:

Const SW_MAXIMIZE = 3

Private Sub Command1_Click()
ShellExecute Form1.hwnd, "open", "C:\temp\1.bmp", 0, 0, SW_MAXIMIZE
'Откроет программу, ассоциированную с расширением bmp и развернёт
'её на весь экран

End Sub


ShowCursor - Скрывает или показывает курсор мыши на экране.

Синтаксис объявления:

Declare Function ShowCursor Lib "user32" Alias "ShowCursor" _
(ByVal bShow As Long) As Long

Пример:

ShowCursor 1 'Добавляет к дисплейному счёткику единицу
ShowCursor 0 'Отнимает от дисплейного счёткика единицу

Когда счётчик становится меньше нуля - курсор исчезает.

На главную страничку учебника Visual Basic