Русский_Проект:Функции API

Руководство по функциям Windows API

В данном руководство объясняется,как пользоваться различными функциями API при написании программ на Visual Basic. Если вы только приступаете к программированию с помощью API, вы должны сначала прочитать Функции API:Введение . Вы можете также обратиться к определениям терминов,если Вы не понимаете некоторые термины, используемые в этом руководстве.

Выбирайте способ работы с функциями API:

  • Список функций по алфавиту
  • Список функций с обратным вызовом по алфавиту
  • Другая информация по функциям
  • Список функций по категориям
  • Список структур по алфавиту

Список функций по алфавиту

A B C D E F G H I J K L M N
O P Q R S T U V W X Y Z

    A
  1. AngleArc
  2. Arc
  3. ArcTo
    B
  4. Beep
  5. BitBlt
  6. BringWindowToTop
    C
  7. CharLower
  8. CharToOem
  9. CharUpper
  10. ChooseColor
  11. ClipCursor
  12. CommDlgExtendedError
  13. CopyFile
  14. CopyRect
  15. CreateDirectory
  16. CreateDirectoryEx
  17. CreateEllipticRgn
  18. CreateEllipticRgnIndirect
  19. CreateHatchBrush
  20. CreatePen
  21. CreatePenIndirect
  22. CreatePolygonRgn
  23. CreatePolyPolygonRgn
  24. CreateRectRgn
  25. CreateRectRgnIndirect
  26. CreateRoundRectRgn
  27. CreateSolidBrush
    D
  28. DeleteFile
  29. DeleteObject
  30. DestroyIcon
  31. DrawIcon
    E
  32. Ellipse
  33. EnableWindow
  34. EnumWindows
  35. EqualRect
  36. EqualRgn
  37. ExitWindowsDialog
  38. ExitWindowsEx
  39. ExtFloodFill
  40. ExtractIcon
  41. ExtractIconEx
    F
  42. FillRect
  43. FillRgn
  44. FindWindow
  45. FlashWindow
  46. FrameRect
  47. FrameRgn
    G
  48. GetACP
  49. GetActiveWindow
  50. GetArcDirection
  51. GetClassName
  52. GetClipCursor
  53. GetComputerName
  54. GetCursor
  55. GetCursorPos
  56. GetDC
  57. GetDesktopWindow
  58. GetDiskFreeSpace
  59. GetDoubleClickTime
  60. GetDriveType
  61. GetFileAttributes
  62. GetFileSize
  63. GetForegroundWindow
  64. GetFullPathName
  65. GetKeyboardState
  66. GetKeyState
  67. GetLastError
  68. GetLocalTime
  69. GetLogicalDriveStrings
  70. GetMenu
  71. GetMenuItemCount
  72. GetOEMCP
  73. GetOpenFileName
  74. GetParent
  75. GetPixel
  76. GetPrivateProfileString
  77. GetRgnBox
  78. GetSaveFileName
  79. GetShortPathName
  80. GetStockObject
  81. GetSysColor
  82. GetSystemDirectory
  83. GetSystemMenu
  84. GetSystemMetrics
  85. GetSystemTime
  86. GetTempPath
  87. GetTickCount
  88. GetTopWindow
  89. GetUserName
  90. GetVersion
  91. GetVersionEx
  92. GetVolumeInformation
  93. GetWindow
  94. GetWindowRect
  95. GetWindowsDirectory
  96. GetWindowText
  97. GetWindowTextLength
    H
    I
  98. InflateRect
  99. IntersectRect
  100. InvertRect
  101. InvertRgn
  102. IsCharLower
  103. IsCharUpper
  104. IsChild
  105. IsIconic
  106. IsRectEmpty
  107. IsWindow
  108. IsWindowEnabled
  109. IsZoomed
    J
    K
  110. keybd_event
    L
  111. LineTo
  112. LoadCursor
  113. LoadCursorFromFile
    M
  114. mciSendString
  115. MessageBeep
  116. MoveFile
  117. MoveToEx
  118. MoveWindow
    N
    O
  119. OemToChar
  120. OffsetRect
    P
  121. PaintDesktop
  122. PlaySound
  123. Polygon
  124. Polyline
  125. PolylineTo
  126. PolyPolyline
  127. PtInRect
  128. PtInRegion
    Q
    R
  129. Rectangle
  130. RectInRegion
  131. RegCloseKey
  132. RegCreateKeyEx
  133. RegDeleteKey
  134. RegDeleteValue
  135. RegEnumKeyEx
  136. RegOpenKeyEx
  137. RegQueryValueEx
  138. RegSetValueEx
  139. ReleaseCapture
  140. ReleaseDC
  141. RemoveDirectory
  142. RoundRect
    S
  143. SelectObject
  144. SendMessage
  145. SetActiveWindow
  146. SetArcDirection
  147. SetComputerName
  148. SetCursor
  149. SetCursorPos
  150. SetDoubleClickTime
  151. SetFileAttributes
  152. SetForegroundWindow
  153. SetKeyboardState
  154. SetParent
  155. SetPixel
  156. SetRect
  157. SetRectEmpty
  158. SetSysColors
  159. SetSystemTime
  160. SetVolumeLabel
  161. SetWindowPos
  162. SetWindowText
  163. Shell_NotifyIcon
  164. ShellExecute
  165. SHEmptyRecycleBin
  166. SHFileOperation
  167. SHGetSpecialFolderLocation
  168. ShowCursor
  169. ShowWindow
  170. SHQueryRecycleBin
  171. Sleep
  172. sndPlaySound
  173. StretchBlt
  174. SubtractRect
  175. SwapMouseButton
  176. SystemParametersInfo
    T
  177. TextOut
    U
  178. UnionRect
    V
    W
  179. WindowFromPoint
  180. WritePrivateProfileString
    X
    Y
    Z

В начало.

Список функций с обратным вызовом по алфавиту
  • BrowseCallbackProc
  • CCHookProc
  • CFHookProc
  • EnumChildProc
  • EnumFontFamExProc
  • EnumFontFamProc
  • EnumThreadWndProc
  • EnumWindowsProc
  • PropEnumProcEx NEW
  • SoundSentryProc
  • WindowProc

Другая информация по функциям
  • CSIDLs
  • Коды ошибок
  • Extended Window Styles
  • Manufacturer IDs
  • Product IDs
  • Коды виртуальных клавиш
  • Window Styles


Функции Windows API:Введение

Функции API:Введение

Добро пожаловать на страницы руководства по функциям API. Это руководство имеет дело с API для всех 32-разрядных версий Windows: Windows 95/98, Windows NT.

  • Введение в Windows API
  • Введение в руководство по функциям API

Введение в Windows API

Что такое "API"?

API сокращенно Application Programming Interface(интерфейс прикладного программирования). Проще говоря, API - набор функций, которые операционная система предоставляет программисту. API обеспечивает относительно простой путь для программистов для использования полных функциональных возможностей аппаратных средств или операционной системы .

Понятие о Windows API

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

32-разрядные версии Windows, или 95/98 или NT, обычно используют один и тот же набор функций API, хотя имеются некоторые различия между платформами. 32-разрядный API содержит многочисленные расширения и поддержки к устаревшему 16-разрядному API, используемому в Windows 3.x. Старые функции поддерживаются по причинам совместимости. Однако, 32-разрядные приложения должны использовать исключительно 32-разрядные функции. Это не проблема, так как 16-разрядные функции обычно заменялись подобными функциями.

Как организованы функции Windows API ?

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

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

Наверх.
В начало.

Введение в руководство по функциям API

Руководство по функциям API -это коллекция некоторых функций. Я не претендую на полное описание всех функций(их слишком много),но коллекция будет постоянно пополнятся.

Как организовано данное руководство?

Основная страничка содержит список функций,входящих в руководство,в алфавитном порядке.Каждая функция имеет свою страничку с описанием параметров функции,ее использовании и примером.


Функции API:Определения терминов

Определения терминов

Declare
Оператор,используемый для вызова функции API. Declare сообщает Visual Basic имя,местоположение DLL,а также требуемые параметры
Классы окна
Определяет общие атрибуты к группе окон. Окна, которые созданы как члены некоторого класса окна, наследует много свойств того класса
Контекст устройства
В Windows поверхность,на которой вы рисуете,называется контекстом устройства.Доступ к нему обеспечивает дескриптор hDC.Получив дескриптор контекста устройства,можно вызывать API-функции для вывода графики(точки,линии,окружности,текст).Смотри также : Дескриптор, Указатель.
Логическое
Когда используется, чтобы описать графический объект (типа шрифта или кисти), это означает, что описанный объект является "идеальным" объектом. Информация относительно логического объекта используется системой, чтобы создать физический объект, который не может точно соответствовать логическому. Однако, только физические объекты могут фактически использоваться
Общий диалог
Одно из диалоговых окон, встроенных в Windows API,предназначенный для выбора пользователем различных операций. Общие диалоговые окна включают Открытие файла, Сохранение файла, Выбор цвета, Выбор шрифта, Печать, Установку печати, Найти текст, и Найти и заменить текст
Дескриптор
Уникальное целое число, которое присваивается объекту под Windows. Дескрипторы могут идентифицировать большинство видов объекта, включая ключи системного реестра, файлы, блоки памяти, окна. Смотри также: Контекст устройства, Указатель
Перо
Объект,используемый для вывода линий и кривых. Перо определяет стиль,размер и форму линий и кривых.Доступ к перу обычно доступен через дескриптор
Слово(Word)
Безнаковое двухбайтовое целое.Часть памяти, обычно переменная, которая имеет длину двух байтов. Tермин word дается чему - нибудь, что имеет длину в два байта
Сообщение
Тип команды, посланной объекту. Физически, сообщение идентифицировано 32-разрядным целым числом. Большинство сообщений имеет два параметра, связанные с ними. Большинство объектов непрерывно ожидают новые сообщения и реагируют на них.Смотри также Функции Windows API:Сообщения
Указатель
A number that identifies a specific memory address. Pointers differ from handles to memory blocks because whereas the handle refers to a block of memory whose exact physical location may vary, the pointer identifies the specific physical location of where it starts. Visual Basic implicitly passes strings, data structures, and all ByRef variables by passing a pointer to the variable's memory address to the function. Смотри также: Контекст устройства, Дескриптор.
Устройство
Объект, который исполняет операции ввода или вывода (или оба). Устройства используются, чтобы связаться с пользователем и включают такие объекты как клавиатура, мышь, и принтеры. Большинство окон являются устройствами..
Клиентская область
Область окна,определяющая ее основу.В эту область не входят заголовок,меню(если есть),панель управления,строка состояния,бордюр окна.
Функция с обратным вызовом
Функция, код которых пишете вы, но вызывает их Windows. В Visual Basic, все функции с обратным вызовом должны быть Public и находится в стандартном модуле
hookfunction
Особый вид функции обратного вызова. Hook functions are used to process messages associated with an object such as a window or a dialog box. In general, hook functions are called to respond to some sort of message

последнее обновление: Сентябрь 04, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:Использование в Visual Basic

Использование функций API в Visual Basic

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

Объявление функций API и DLL

Процедуры DLL объявляются командой Declare в секции General Declarations модуля формы или стандартного модуля:
Declare Function имя Lib "библиотека" [Alias "псевдоним"] [([[ByVal ] _
переменная [As тип] [,ByVal,] переменная [As тип]]...])] As тип

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

Библиотеки

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

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

Стандартные библиотеки DLL
Библиотека | Описание
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 необходимо разбираться в механизме передачи аргументов.Обычно аргументы передаются по значению.Ниже перечислены типы аргументов C и их эквиваленты в Visual Basic

Типы данных в C и Visual Basic
Windows API | Visual Basic
char | ByVal Byte
handle | ByVal Long
INT | ByVal Long
UINT | ByVal Long
Bool | ByVal Long
WORD | ByVal Integer
DWORD | ByVal Long
WPARAM | ByVal Long
LPARAM,LRESULT | ByVal Long
COLORREF | ByVal Long
ATOM | ByVal Integer
Byte | ByVal Byte

Передача аргументов по значению

При передаче аргумента по значению передается не сама переменная,а ее временная копия.Если процедура изменяет ее значение,такие изменения будут относиться к копии,но не к самой переменной.При передаче по значению используется ключевое слово ByVal

Передача аргументов по ссылке

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


Функции Windows API:AngleArc

Функция AngleArc

Declare Function AngleArc Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dwRadius As Long, ByVal eStartAngle As Single, ByVal eSweepAngle As Single) As Long

Платформа
  • Windows 95/98: Не поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

AngleArc рисует дугу на устройстве используя текущее для устройства перо. Круг, которым рисуется дуга,определена ее центром и радиусом. Начало и конечные точки дуги определены угловыми мерами в градусах, и рисуются против часовой стрелки от линии, параллельной положительной оси X. Дуга непосредственно оттянута или по часовой стрелке или против часовой стрелки соединненых точек, в зависимости от параметров настройки устройства. AngleArc также рисует линию, соединяющую текущий точку устройства к началу дуги

Возвращаемое значение
В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки),в успешном случае функция возвращает значение,отличное от нуля

Параметры
hdc
Дескриптор контекста устройства для рисования дуги
x
Координата x центра круга
y
Координата y центра круга
dwRadius
Радиус круга
eStartAngle
Угол (в градусах) для идентификации отправной точки дуги
eSweepAngle
Угол (в градусах) для идентификации конечной точки дуги
Пример

' Рисуем дугу, сформированную верхней половиной круга (от 0 до 180
' градусов против часовой стрелки). Круг центрирован в (100, 150) и имеет радиус
' 50. Дуга оттянута, используя сплошное черное перо.
Dim hpen As Long  ' дескриптор черного пера
Dim holdpen As Long   ' дескриптор предварительно выбранного пера Form1
Dim retval As Long   ' возвращаемое значение

' Получаем сплошное черное перо для использования в Form1
hpen = GetStockObject(BLACK_PEN)  ' дескриптор черного пера
holdpen = SelectObject(Form1.hDC, hpen)  ' выбираем перо

' Выбираем направление против часовой стрелки
' для вывода дуги
retval = SetArcDirection(Form1.hDC, AD_COUNTERCLOCKWISE)
' рисуем дугу
retval = AngleArc(Form1.hDC, 100, 150, 50, 0, 180)

' Выбираем прежнее перо Form1 для установки по умолчанию
retval = SelectObject(Form1.hDC, holdpen)  ' выбираем старое перо

Схожие функции
Arc, ArcTo, Ellipse, GetArcDirection, SetArcDirection
Категория
Линии и кривые


Функции Windows API:Arc

Функция Arc

Declare Function Arc Lib "gdi32" (ByVal hdc As Long, ByVal nLeftRect As Long, ByVal nTopRect As Long, ByVal nRightRect As Long, ByVal nBottomRect As Long, ByVal nXStartArc As Long, ByVal nYStartArc As Long, ByVal nXEndArc As Long, ByVal nYEndArc As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE:Не поддерживается

Arc рисует часть дуги на устройстве используя текущее перо устройства. Windows 95/98: Дуга всегда рисуется против часовой стрелки от точки начала до точки конца. Windows NT/2000: Направление дуги зависит от текущей установки устройства

Возвращаемое значение

В случае ошибки при при попытке рисовать дугу, функция возвращает 0 (Win NT/2000:: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение, отличное от нуля

Параметры
hdc
Дескриптор контекста устройства, на котором рисуется дуга.
nLeftRect
Координата x левой верхней точки прямоугольника, ограничивающего эллипс
nTopRect
Координата y левой верхней точки прямоугольника, ограничивающего эллипс
nRightRect
Координата x правой нижней точки прямоугольника, ограничивающего эллипс
nBottomRect
Координата y правой нижней точки прямоугольника, ограничивающего эллипс
nXStartArc
Координата x радиальной точки, которая определяет отправную точку дуги
nYStartArc
Координата y радиальной точки, которая определяет отправную точку дуги
nXEndArc
Координата x радиальной точки, который определяет точку окончания дуги
nYEndArc
Координата y радиальной точки, который определяет точку окончания дуги
Пример

' Рисуем дугу, которая формирует верхнюю половину эллипса. Эллипс
' находится в координатах (100, 100), имеет ширину 200, и имеет высоту 100. Дуга оттянута
' на окне Form1 с использованием черного твердого пера .
'Вставьте код в Form_Paint
Dim hpen As Long  ' дескриптор для черного твердого пера
Dim holdpen As Long  ' дескриптор для пера,используемого Form1
Dim retval As Long

hpen = GetStockObject(BLACK_PEN)  ' получаем дескриптор для черного сплошного пера
holdpen = SelectObject(Form1.hDC, hpen)  ' и устанавливаем его для Form1.

' Эллипс ограничен прямоугольником  (0,50) - (200,150).
retval = Arc(Form1.hdc, 0, 50, 200, 150, 200, 100, 0, 100)
' Восстанавливаем прежнее перо для Form1.
retval = SelectObject(Form1.hDC, holdpen)

Схожие функции
AngleArc, ArcTo, Ellipse, GetArcDirection, SetArcDirection
Категория:
Линии и кривые


Функции Windows API:ArcTo

Функция ArcTo

Declare Function ArcTo Lib "gdi32" (ByVal hdc As Long, ByVal nLeftRect As Long, ByVal nTopRect As Long, ByVal nRightRect As Long, ByVal nBottomRect As Long, ByVal nXRadial1 As Long, ByVal nYRadial1 As Long, ByVal nXRadial2 As Long, ByVal nYRadial2 As Long) As Long

Платформа
  • Windows 95/98: Не поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

ArcTo рисует дугу на устройстве,используя текущее перо контекста. После вывода дуги,текущая точка контекста устанавливается в последнюю точку дуги. Эллипс, на котором рисуются дуги,находится в пределах координат ограничительного прямоугольника. Начальная и конечная точки определяются двумя величинами.Ннаправление вывода дуги зависит от текущей установки устройства

Возвращаемое значение

В случае ошибки,возникающей при попытке вывода дуги, функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение,отличное от нуля

Параметры
hdc
Дескриптор контекста устройства для вывода дуги
nLeftRect
Координата x верхней левой точки прямоугольника, ограничивающего эллипс
nTopRect
Координата y верхней левой точки прямоугольника, ограничивающего эллипс
nRightRect
Координата x нижней правой точки прямоугольника, ограничивающего эллипс
nBottomRect
Координата y нижней правой точки прямоугольника, ограничивающего эллипс
nXRadial1
Координата x радиальной точки,определяющей начальную точку дуги
nYRadial1
Координата y радиальной точки,определяющей начальную точку дуги
nXRadial2
Координата x радиальной точки,определяющей конечную точку дуги
nYRadial2
Координата y радиальной точки,определяющей конечную точку дуги
Пример

' Рисуем дугу, которая формирует верхнюю половину эллипса. Эллипс
' отцентрирован в (100, 100), имеет ширину 200, и имеет высоту 100. Дуга оттянута
' на окне Form1, использующем черное сплошное перо
Dim hpen As Long  ' дескриптор черного сплошного пера
Dim holdpen As Long  ' дескриптор к старому перу,используемому Form1
Dim retval Avs Long  ' возвращаемое значение

' Получаем дескрипток к черному перу
' и устанавливаем его текущим пером Form1
hpen = GetStockObject(BLACK_PEN)  ' получаем дескриптор к перу формы
holdpen = SelectObject(Form1.hDC, hpen)
' Эллипс,определенным ограничивающим прямоугольником (0,50)-(200,150).
' The radial to (200, 100) is due right; the radial to (0, 100) is due left
retval = ArcTo(Form1.hDC, 0, 50, 200, 150, 200, 100, 0, 100)

' Восстанавливаем старое перо Form1
retval = SelectObject(Form1.hDC, holdpen)

Схожие функции
AngleArc, Arc, Ellipse, GetArcDirection, SetArcDirection
Категория
Линии и кривые


Функции Windows API:Beep

Функция Beep

Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

Beep воспроизводит звук.В зависимости от платформы воспроизводит звук по разному. Windows 95/98: Функция всегда воспроизводит системный (SystemDefault) звук. Windows NT/2000: Функция воспроизводит тоновый звук через внутренний динамик с различной частотой

Возвращаемое значение

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

Параметры
dwFreq
Windows NT/2000: Частота в герцах (Hz). Windows 95/98: Игнорируется
dwDuration
Windows NT/2000: Продолжительность звука в миллисекундах.Windows 95/98: Игнорируется
Пример

' Воспроизводим сигнал частотой 800 Hz в течении 2 секунд
' только для Windows NT/2000; пользователи Windows 95/98
'услышает звук по умолчанию

Dim retval As Long  ' возвращаемое значение

retval = Beep(800, 2000)

Схожие функции
MessageBeep
Категория Ошибки


Функции Windows API:BitBlt

Функция BitBlt

Declare Function BitBlt Lib "gdi32" (ByVal hdcDest As Long, ByVal nXDest As Long, ByVal nYDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal dwRop As Long) As Long

BitBlt используется для выполнения операции копирования отдельных битов из области источника изображения в область-получатель.Функция позволяет передавать прямоугольную область из контекста устройства в контекст другого устройства. Размеры переданного прямоугольника совершенно сохраняются

Возвращаемое значение
В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры

hdcDest
Дескриптор контекста устройства устройства, которое получает переданный блок изображения.
nXDest
Координата x точки верхнего левого угла блока изображения(получатель)
nYDest
Координата y точки верхнего левого угла блока изображения(получатель)
nWidth
Ширина в пикселах блока изображения
nHeight
Высота в пикселах блока изображения
hdcSrc
Дескриптор к контексту устройства устройства, которое содержит блок изображения для копирования
nXSrc
Координата x точки верхнего левого угла блока изображения(источник)
nYSrc
Координата y точки верхнего левого угла блока изображения(источник)
dwRop
Один из следующих флажков, идентифицирующих растровую операцию для передачи блока изображения. Каждая растровая операция использует RGB-значение цвета исходного исходного пиксела, чтобы определить новый цвет пиксела
Const BLACKNESS = &H42
Заполняет область-получатель черным цветом
Const CAPTUREBLT = &H40000000
Windows 98, 2000: Include any windows layered on top of the window being used in the resulting image
Const DSTINVERT = &H550009
Инвертирует область-получатель
Const MERGECOPY = &HC000CA
Изображение определяется результатом выполнения операции побитового AND над копируемым изображением или шаблоном
Const MERGEPAINT = &HBB0226
Изображение определяется результатом выполнения операции побитового OR над инвертируемым копируемым и областью-получателем
Const NOMIRRORBITMAP = &H80000000
Windows 98, 2000: Предотвращает точечный рисунок от зеркального отражения
Const NOTSRCCOPY = &H330008
Изображение определяется инвертируемым исходным изображением
Const NOTSRCERASE = &H1100A6
Комбинирование цвета и прямоугольников источника и получателя, использующих поразрядный оператор OR с последующим инвертированием результирующего цвета
Const PATCOPY = &HF00021
Шаблон копируется в область получатель
Const PATINVERT = &H5A0049
Комбинирование цвета указанного шаблона с цветами прямоугольника адресата, используя поразрядный оператор XOR
Const PATPAINT = &HFB0A09
Комбинирование цвета указанного образца с цветами перевернутого исходного прямоугольника, используя поразрядный оператор OR. Комбинируйте результат той операции с цветами прямоугольника адресата, используя поразрядный оператор OR
Const SRCAND = &H8800C6
Комбинирование цвета и прямоугольников источника иадресата, использующих поразрядный оператор AND
Const SRCCOPY = &HCC0020
Копирование исходного прямоугольника непосредственно в прямоугольник адресата без изменений
Const SRCERASE = &H440328
Комбинирование перевернутых цветов прямоугольника адресата с цветами источника , используя поразрядный оператор AND
Const SRCINVERT = &H660046
Комбинирование цвета и прямоугольников источника и адресата, использующих поразрядный оператор XOR
Const SRCPAINT = &HEE0086
Комбинирование цвета и прямоугольников источника и адресата, использующих поразрядный оператор OR
Const WHITENESS = &HFF0062
Заполняет область-получатель белым цветом
Пример

' Копируем изображение прямоугольника из формы Form1 в форму Form2
' используя SRCCOPY.  Прямоугольник имеет ширину 100 и высоту
' 50.  Верхний левый угол источника- (350, 250); копия расположится в координатах
'  (0,0) формы Form2
Dim retval As Long  ' возвращаемое значение

' Переместим изображение точно как описано выше
retval = BitBlt(Form2.hDC, 0, 0, 100, 50, Form1.hDC, 350, 250, SRCCOPY)

Схожие функции
StretchBlt
Категория
Графика


Функции Windows API:BringWindowToTop

Функция BringWindowToTop

Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long

BringWindowToTop устанавливает указанное окно поверх других . Эта функция имеет тот же самый эффект как использование SetWindowPos для размещения окна поверх других

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры
hwnd
Дескриптор окна
Пример

' Установим окно Form2 поверх окна Form1
Dim retval As Long  ' возвращаемое значение

' Очевидно, это будет работать, если другие окна - уже поверх Form2
retval = BringWindowToTop(Form2.hWnd)

Схожие функции
SetWindowPos
Категория:
Окна


Функции Windows API:CharLower

Фунция CharLower

Declare Function CharLower Lib "user32" Alias "CharLowerA" (ByVal lpsz As String) As String

CharLower конвертирует все символы из верхнего регистра в нижний

Возвращаемое значение
Функция возвращает строку со всеми буквами верхнего регистра,конвертируемые в нижний регистр

Параметры

lpsz
Строка для конвертации в нижний регистр
Пример

' конвертируем строку "Доброе утро, Россия!" в нижний регистр

Dim target As String   ' нужная строчка

target = CharLower("Доброе утро, Россия!")
Debug.Print target

Схожие функции
CharUpper
Категория
Строки


Функции Windows API:CharToOem

Фунция CharToOem

Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается

CharToOem конвертирует текст из win-кодировки в dos-кодировку

Возвращаемое значение
Функция всегда возвращает ненулевое значение

Параметры

lpszSrc
Строка для перекодировки
lpszDst
Перекодированая строка в буфере. Если функция CharToOem используется как функция ANSI, строка может быть переведена на месте, устанавливая параметр lpszDst в тот же адрес,что и параметр lpszSrc
Пример

' конвертируем строку "Русский_Проект!" в dos-кодировку.
Dim sourcestring As String   ' нужная строка
Dim deststring As String  ' получаемая строка
Dim code As Long

sourcestring = "Русский Проект"  'строка для перекодировки
deststring = Space$(Len(sourcestring))'получаем перекодированную строку
code = CharToOem(sourcestring, deststring)
Debug.Print deststring

Схожие функции
OemToChar
Категория
Строки


Функции Windows API:CharUpper

Функция CharUpper

Declare Function CharUpper Lib "user32" Alias "CharUpperA" (ByVal lpsz As String) As String

CharUpper конвертирует все символы из нижнего регистра в верхний

Возвращаемое значение

Функция возвращает строку со всеми буквами нижнего регистра,конвертируемые в верхний регистр

Параметры
lpsz
Строка для конвертации в верхний регистр
Пример

 'конвертируем строку "Доброе утро, страна!" в верхний регистр

Dim target As String     ' нужная строчка

target = CharUpper("Доброе утро, страна!")
Debug.Print target

Схожие функции
CharLower
Категория
Строки


Функции Windows API:ChooseColor

Функция ChooseColor

Declare Function ChooseColor Lib "comdlg32" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Требуется Windows CE 2.0 или выше

ChooseColor открывает стандартное окно Общего диалога для выбора цвета. Вся необходимая информация для создания диалогового окна,хранится в структурной базе данных в виде pChoosecolor

Возвращаемое значение

В случае возникновения ошибки или при нажатии пользователем кнопки Отмена,функция возвращает 0 (пользуйтесь CommDlgExtendedError для получения кода ошибки). В успешном случае функция возвращает значение, отличное от нуля

Параметры
pChoosecolor
Вся необходимая информация для создания диалогового окна.
Пример

' Показываем общее диалоговое окно
'для выбора цвета.  Задний фон формы Form1
' будет установлен в соответствии с выбранным цветом.

'код для General Declarations
Dim CustomColors() As Byte
'код для кнопки Command1
Dim cc As CHOOSECOLOR ' структура для передачи данных
Dim Custcolor(16) As Long  ' содержит список 16 цветов
Dim lReturn As Long ' возвращаемое значение
cc.lStructSize = Len(cc)
    cc.hwndOwner = frmMain.hWnd
    cc.hInstance = App.hInstance
    cc.lpCustColors = StrConv(CustomColors, vbUnicode)
    cc.flags = 0

    lReturn = CHOOSECOLOR(cc)
    If lReturn <> 0 Then
' Открываем диалоговое окно.
' Если пользователь выбрал цвет, устанавливаем цвет фона формы.
        frmMain.BackColor = Str$(cc.rgbResult)
        CustomColors = StrConv(cc.lpCustColors, vbFromUnicode)
    Else
        Exit Sub
    End If

Категория
Общее диалоговое окно


Функции Windows API:ClipCursor

Функция ClipCursor

Declare Function ClipCursor Lib "user32" (lpRect As RECT) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

ClipCursor ограничивает область действия курсора мыши в прямоугольной области экрана. Если пользователь попробует переместить курсор за пределы этой области ограничения или вызвать функцию SetCursorPos,то курсор немедленно возвратится в область.Этот эффект ограничения будет действовать в любой программе,на которую Вы переключаетесь и останется, даже если программа, которая ограничила курсор, закрывается! Единственный способ "выпустить" курсор состоит в том, чтобы "ограничить" область полным экраном (см. пример). Это не очень хорошая идея ограничивать курсор, так как пользователь желает перемещать курсор куда-нибудь за пределы вашей программы

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры
lpRect
Прямоугольник (в экранных координатах), определяющий прямоугольник ограничения
Пример

' Временно ограничим перемещения курсора областью формы Form1
Dim winrect As RECT  ' прямоугольник ограничения
Dim retval As Long  ' возвращаемое значение

retval = GetWindowRect(Form1.hWnd, winrect)  ' помещаем координаы окна в winrect
retval = ClipCursor(winrect)  ' ограничиваем перемещения курсора

' ** Разместите следующий код для "освобождения" курсора. **
Dim winrect As RECT, retval As Long
Dim deskhWnd As Long  ' дескриптор рабочего стола

deskhWnd = GetDesktopWindow()  ' получаемt дескриптор рабочего стола
retval = GetWindowRect(deskhWnd, winrect)  ' помещаем координаы окна в winrect
retval = ClipCursor(winrect)  ' "ограничиваем" курсор целым экраном

Схожие функции
GetClipCursor
Категория
Курсоры


Функции Windows API:CommDlgExtendedError

Функция CommDlgExtendedError

Declare Function CommDlgExtendedError Lib "comdlg32" () As Long

Платформа Win 95/98, Win NT

CommDlgExtendedError возвращает код ошибки от последней функции общего диалогового окна. Эта функция не возвращает коды ошибки для любой другой функции API; для этого существует GetLastError. Значение возвращения функции неопределено, если последний запрос функции общего диалога был успешен. В случае ошибки, значения возвращения - один из следующих флагов ошибки общего диалога:

CDERR_DIALOGFAILURE = &HFFFF
Функция не может открыть окно общего диалогового окна
CDERR_FINDRESFAILURE = &H6
Функция не сумела найти желательный ресурс
CDERR_GENERALCODES = &H0
Ошибка свойства общего диалогового окна
CDERR_INITIALIZATION = &H2
Функция потерпела неудачу в течение инициализации (вероятно недостато памяти)
CDERR_LOADRESFAILURE = &H7
Функция не сумела загрузить желательный ресурс
CDERR_LOADSTRFAILURE = &H5
Функция не сумела загрузить желательную строку
CDERR_LOCKRESFAILURE = &H8
Функция не сумела блокировать желательный ресурс
CDERR_MEMALLOCFAILURE = &H9
Функция не сумела распределить достаточную память
CDERR_MEMLOCKFAILURE = &HA
Функция не сумела блокировать память
CDERR_NOHINSTANCE = &H4
Функция не обеспечена описателем экземпляра (если требовалось)
CDERR_NOHOOK = &HB
Функция не обеспечена имеющим силу дескриптором функции обработчика прерываний (если требовалось)
CDERR_NOTEMPLATE = &H3
Функция не обеспечена шаблоном (если требовалось)
CDERR_REGISTERMSGFAIL = &HC
Функция не сумела успешно зарегистрировать сообщение окна
CDERR_STRUCTSIZE = &H1
Функция обеспечена неверным размером структуры
CFERR_CHOOSEFONTCODES = &H2000
Ошибка общего диалогового окна Выбор шрифта
CFERR_MAXLESSTHANMIN = &H2002
Функция обеспечена максимальным значением размера шрифта меньшим,чем возможный минимальный размер шрифта
CFERR_NOFONTS = &H2001
Функция не смогла найти никаких шрифтов
FNERR_BUFFERTOOSMALL = &H3003
Функция обеспечена слишком маленьким буфером имен файла
FNERR_FILENAMECODES = &H3000
Ошибка общего диалогового окна Открытие файла или Сохранение файла
FNERR_INVALIDFILENAME = &H3002
Функция обеспечена или получила неверное имя файла
FNERR_SUBCLASSFAILURE = &H3001
Функция имела недостаточную память, чтобы классифицировать список
FRERR_BUFFERLENGTHZERO = &H4001
Функция обеспечена недействительным буфером
FRERR_FINDREPLACECODES = &H4000
Ошибка общего диалогового окна Поиск или Замена
PDERR_CREATEICFAILURE = &H100A
Функция не сумела создать информационный контекст
PDERR_DEFAULTDIFFERENT = &H100C
Функция говорит, что параметры, обеспеченные описанием заданным по умолчанию принтером, и фактические параметры настройки заданного по умолчанию принтера различны
PDERR_DNDMMISMATCH = &H1009
Данные в этих двух структурах данных описывают различные принтеры (то есть,содержат) противоречивую информацию
PDERR_GETDEVMODEFAIL = &H1005
Драйвер принтера не сумел инициализировать DEVMODE структуру
PDERR_INITFAILURE = &H1006
Функция потерпела неудачу в течение инициализации
PDERR_LOADDRVFAILURE = &H1004
Функция не сумела загрузить желательный драйвер устройства
PDERR_NODEFAULTPRN = &H1008
Функция не смогла найти заданный по умолчанию принтер
PDERR_NODEVICES = &H1007
Функция не смогла найти никаких принтеров
PDERR_PARSEFAILURE = &H1002
Функция не сумела проанализировать связанные принтером строки в WIN.INI
PDERR_PRINTERCODES = &H1000
Ошибка общего диалогового окна Печать
PDERR_PRINTERNOTFOUND = &H100B
Функция не смогла найти информацию в WIN.INI относительно требуемого принтера
PDERR_RETDEFFAILURE = &H1003
Описатели к структурам данных, были отличные от нуля даже при том, что функцию спрашивали возвратить информацию относительно заданного по умолчанию принтера
PDERR_SETUPFAILURE = &H1001
Функция не сумела загрузить желательные ресурсы
Пример
' Открываем диалоговое окно Открытие файла и даем ему недостаточный размер буфера
' затем показываем код ошибки
Dim filebox As OPENFILENAME  ' структура для создания общего диалогового окна
Dim fname As String  ' имя файла
Dim retval As Long  ' возвращаемое значение
Dim errcode As long  ' код ошибки

' настраиваем вид окна
filebox.lStructSize = Len(filebox)  ' размер структуры
filebox.hwndOwner = Form1.hWnd  ' дескриптор формы,вызываемой функцией.
filebox.lpstrTitle = "Пример с API"  ' текст заголовка в диалоговом окне
' определяем тип файлов
filebox.lpstrFilter = "Файлы txt" & vbNullChar & "*.txt" & vbNullChar & "Все файлы" & vbNullChar & "*.*" & vbNullChar & vbNullChar
filebox.lpstrFile = ""  ' ОШИБКА: пустой буфер!
filebox.nMaxFile = 0  ' длина файла и буфер для полного имени
filebox.lpstrFileTitle = Space(255)  ' Инициализируем буфер, который получает имя файла файла
filebox.nMaxFileTitle = 255  ' длина буфера для имени файла
' показываем только существующие,скрытые и только для чтения файлы
filebox.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY

' открываем общее диалоговое окно
retval = GetOpenFileName(filebox)
If retval = 0 Then  ' произошла ошибка или нажата кнопка Отмена
  errcode = CommDlgExtendedError()  ' получаем код ошибки для GetOpenFileName
  If errcode = FNERR_BUFFERTOOSMALL Then
    Debug.Print "Буфер слишком маленький, чтобы содержать имя файла"
  If errcode = FNERR_INVALIDFILENAME Then
    Debug.Print "Недействительное имя файла"
End If
  End If
End If

Схожие функции: GetLastError
Категория
Общий диалог


Функции Windows API:CopyFile

Функция CopyFile

Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Платформа: Win 95/98, Win NT

CopyFile копирует файл из одного места в другой(операция подобная копированию файлов в Проводнике). В зависимости от значения bFailIfExists, функция либо перепишет файл,если он уже существует,либо возникнет ошибка. В успешном случае функция возвращает 1 , в случае ошибки возвращается 0

lpExistingFileName
Файл-источник; т.е. файл для копирования
lpNewFileName
Файл-назначение; т.е. новый файл, являющийся копией файла-источника
bFailIfExists
Если значение равно 0, функция перепишет файл lpNewFileName,если он существует. Если значение отлично от нуля, то произойдет ошибка

Пример:

' Скопируем файл C:\Samples\temp.txt в C:\Russia\buffer.txt.
' Не будем переписывать файл C:\Russia\buffer.txt если он существует.
Dim retval As Long  ' возвращаемое значение

' копируем файл
retval = CopyFile("C:\Samples\temp.txt", "C:\Russia\buffer.txt", 1)
If retval = 0 Then  ' если ошибка
  Debug.Print "Не могу скопировать файл -- C:\Russia\buffer.txt уже существует.
Else  ' если все нормально
  Debug.Print "Файл скопирован."
End If

Схожие функции: MoveFile
Категория: Файлы


Функции Windows API:CopyRect

Функция CopyRect

Declare Function CopyRect Lib "user32" (lpDestRect As RECT, lpSourceRect As RECT) As Long

Платформа: Win 95/98, Win NT

CopyRect устанавливает прямоугольник равный другому. Это сделано путем дублирования значений исходного прямоугольника к соответствующим значениям другого прямоугольника. Это быстрее, чем установка всех четырех значений вручную в вашем коде. Функция возвращает 0 в случае ошибки, в успешном случае возвращается 1

lpDestRect
Прямоугольник-цель
lpSourceRect
Прямоугольник-источник

Пример:

' Установим прямоугольники источника и цели
' равными прямоугольнику окна,  копируя источник к цели
Dim source As RECT, target As RECT  ' прямоугольники источника и цели
Dim retval As Long  ' возвращаемое значение

' Получаем прямоугольник окна Form1 для источника
retval = GetWindowRect(Form1.hWnd, source)
' Копируем источник в цель
retval = CopyRect(target, source)

Схожие функции: EqualRect
Категория: Прямоугольники


Функции Windows API:CreateDirectory

Функция CreateDirectory

Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

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

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры
lpPathName
Имя для новой папки
lpSecurityAttributes
Windows NT, 2000: Аттрибуты безопасности для новой папки.Windows 95, 98, CE: Этот параметр игнорируется
Пример

' Создаем новую папку C:\RussianProject и
' устанавливаем аттрибуты по умолчанию.
Dim Security As SECURITY_ATTRIBUTES  ' структура аттрибутов безопасности
Dim retval As Long  ' возвращаемое значение

' Создаем папку.
retval = CreateDirectory("C:\RussianProject", Security)
'Если CreateDirectory вернул 0, значит ошибка
    If retval = 0 Then MsgBox "Ошибка : Не могу создать папку !", vbCritical + vbOKOnly

Схожие функции
CreateDirectoryEx, RemoveDirectory
Категория
Файлы


Функции Windows API:CreateDirectoryEx

Функция CreateDirectoryEx

Declare Function CreateDirectoryEx Lib "kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory As String, ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.5 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

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

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры
lpTemplateDirectory
Имя папки,которая будет использоваться как шаблон для аттрибутов при создании новой папки.
lpNewDirectory
Имя для новой создаваемой папки
lpSecurityAttributes
Windows NT, 2000: Аттрибуты безопасности для новой папки Windows 95, 98, CE: Этот параметр игнорируется
Пример

' Создаем новую папку C:\RussianProject\Papka и
' устанавливаем аттрибуты безопасности по умолчанию.
'  Папка будет иметь аттрибуты папки
'  C:\Recycled ( "Корзина") ,
' которая имеет аттрибуты Скрытый и Системный.
Dim secattr As SECURITY_ATTRIBUTES  ' структура аттрибутов безопасности
Dim retval As Long  ' возвращаемое значение

' устанавливаем желаемы аттрибуты безопасности
secattr.nLength = Len(secattr)  ' размер структуры
secattr.lpSecurityDescriptor = 0  ' уровень безопасности по умолчанию
secattr.bInheritHandle = 1  ' стандартная установка

' Создаем папку, используя папку C:\Recycled как шаблон.
retval = CreateDiectoryEx("C:\Recycled", "C:\RussianProject\Papka", secattr)

Схожие функции
CreateDirectory, RemoveDirectory
Категория
Файлы


Функции Windows API:CreateEllipticRgn

Функция CreateEllipticRgn

Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа: Win 95/98, Win NT

CreateEllipticRgn создает область в виде эллипса.Эллипс, который формирует область,ограничивается прямоугольником, определенным координатами, передаваемые функцией. Ограничительный прямоугольник - самый маленький возможный прямоугольник, который может соответствовать эллипсу. Функция возвращает дескриптор созданной области в успешном случае или 0 в случае ошибки

X1
Координата x верхнего левого угла ограничительного прямоугольника
Y1
Координата y верхнего левого угла ограничительного прямоугольника
X2
Координата x нижнего правого угла ограничительного прямоугольника
Y2
Координата y нижнего правого угла ограничительного прямоугольника

Пример:

' Инвертируем пикселы в пределах  области эллипса на окне Form1.
' Область имеет ограничительный прямоугольник (20,30) - (150,110)
Dim hrgn As Long  ' дескриптор области
Dim retval As Long  ' возвращаемое значение

' Создаем  область-эллипс , чтобы инвертировать и получить дескриптор
hrgn = CreateEllipticRgn(20,30,150,110)  ' ограничительный прямоугольник (20,30)-(150,110)
' инвертируем эту область в окне Form1
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем область для освобождения ресурсов системы
retval = DeleteObject(hrgn)

Схожие функции: CreateEllipticRgnIndirect
Категория: Регионы


Функции Windows API:CreateEllipticRgnIndirect

Функция CreateEllipticRgnIndirect

Declare Function CreateEllipticRgnIndirect Lib "gdi32" (lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

CreateEllipticRgn создает область в виде эллипса. Эллипс определяется ограничительным прямоугольником. Ограничительный прямоугольник - самый маленький возможный прямоугольник, который может соответствовать эллипсу. Функция возвращает дескриптор созданной области в успешном случае или 0 в случае ошибки

lpRect
Ограничительный прямоугольник для эллипса

Пример:

' Инвертируем пикселы в пределах  области эллипса на окне Form1.
' Область имеет ограничительный прямоугольник (20,30) - (150,110)
Dim hrgn As Long   ' дескриптор области
Dim bounding As RECT ' ограничительный прямоугольник
Dim retval As Long    ' возвращаемое значение
' загрузим координаты ограничительного прямоугольника в структуру
retval = SetRect(bounding, 20, 30, 150, 110)
' создаем эллипс от этого ограничительного прямоугольника
hrgn = CreateEllipticRgnIndirect(bounding)
'  инвертируем эту область в окне Form1
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем область для освобождения ресурсов системы
retval = DeleteObject(hrgn)

Схожие функции: CreateEllipticRgn
Категория: Регионы


Функции Windows API:CreateHatchBrush

Функция CreateHatchBrush

Declare Function CreateHatchBrush Lib "gdi32" (ByVal nIndex As Long, ByVal crColor As Long) As Long

Платформа: Win 95/98, Win NT

CreateHatchBrush создает объект-заштрихованную кисть. При использовании для заполнения области или формы, эта кисть производит закраску определенныя образом в единственном(отдельном) цвете, используя 8x8 ячейку. После того, как программа заканчивает использование заштрихованной кисти, следует использовать DeleteObject, чтобы удалить кисть и свободные ресурсы системы. Функция возвращает дескриптор созданной заштрихованной кисти в успешном случае, или 0, в случае ошибки

nIndex
Один из следующих флажков, определяющих образец штриховки для создания кисти:
HS_BDIAGONAL = 3
Диагональные линии от левой нижней части до правой верхней
HS_CROSS = 4
Перекрестный образец горизонтальных и вертикальных линий
HS_DIAGCROSS = 5
Перекрестный образец перпендикулярных диагональных линий
HS_FDIAGONAL = 2
Диагональные линии от левой верхней к правой нижней части
HS_HORIZONTAL = 0
Горизонтальные линии
HS_VERTICAL = 1
Вертикальные линии
crColor
Значение цвета RGB,передаваемой кисти

Пример:

' Рисуем прямоугольник с углами (10,20) и (175,100)
' на окне Form1. Используем желтую кисть с диагональным перекрестным образцом, чтобы заполнить прямоугольник
Dim hbrush As Long  ' дескриптор заштрихованной желтой кисти
Dim holdbrush As Long  ' дескриптор  заданной по умолчанию кисти  на Form1
Dim retval As Long  ' возвращаемое значение

hbrush = CreateHatchBrush(HS_DIAGCROSS, RGB(255, 255, 0))  ' создадим заштрихованную желтую кисть
' сохраним заданную по умолчанию кисть на Form1, чтобы могли восстановить ее после завершении программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Рисуем прямоугольник,заполняя его заштрихованной желтой кистью
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' восстанавливаем кисть по умолчанию и удаляем созданную нами кисть
retval = SelectObject(Form1.hDC, holdbrush)  'старая кисть
retval = DeleteObject(hbrush)  ' удаляем желтую кисть

Схожие функции: CreateSolidBrush
Категория: Кисти


Функции Windows API:CreatePen

Функция CreatePen

Declare Function CreatePen Lib "gdi32" (ByVal fnPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Требуется Windows CE 2.0 или выше

CreatePen служит для создания объекта перо. Форма пера,созданного функцией ,всегда имеет форму квадрата с размерами сторон,равными nWidth. После завершения программы с использованием пера,вы должны удалить его функцией DeleteObject

Возвращаемое значение

В случае ошибки функция возвращает 0(Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает дескриптор к созданному перу

Параметры
fnPenStyle
Флаги для определения стиля создаваемого пера:
Const PS_SOLID = 0
Сплошное перо
Const PS_DASH = 1
Перо подчеркнуто штриховой линией. nWidth должен быть меньше или равняться одному
Const PS_DOT = 2
Перо пунктирно. nWidth должен быть меньше или равняться одному
Const PS_DASHDOT = 3
Перо имеет чередующиеся черточки и точки. nWidth должен быть меньше или равняться одному
Const PS_DASHDOTDOT = 4
Перо имеет чередующиеся черточки, сопровождаемые двумя точками. nWidth должен быть меньше или равняться одному
Const PS_NULL = 5
Перо невидимо
Const PS_INSIDEFRAME = 6
Перо сплошное. Всякий раз, когда функция рисует фигуру внутри ограничительного прямоугольника, размеры фигуры сокращены так, чтобы рисунок, включая ширину пера, вписывался полностью в пределах ограничительного прямоугольника
nWidth
Ширина пера. Если равна 0, перо - всегда точно один пиксел
crColor
Значение RGB цвета
Пример

' Рисуем эллипс на окне Form1,используя
' квадратное зеленое штриховое перо в один пиксел.
Dim hPen As Long  ' дескриптор для пера
Dim hOldPen As Long  ' дескриптор к предыдущему перу формы Form1
Dim retval As Long  ' возвращаемое значение

' создаем квадратное зеленое штриховое перо с шириной в ноль  (всегда один пиксел).
hPen = CreatePen(PS_DASH, 0, RGB(0, 255, 0))
' выбираем перо,используемое Form1.
hOldPen = SelectObject(Form1.hDC, hPen)

' рисуем эллипс с ограничительным прямоугольником (100,150)-(350,300).
retval = Ellipse(Form1.hDC, 100, 150, 350, 300)

' выбираем старое перо,используемое Form1
retval = SelectObject(Form1.hDC, hOldPen)
' удаляем созданное нами перо для освобождения ресурсов
retval = DeleteObject(hPen)

Схожие функции
CreatePenIndirect
Категория
Перо


Функции Windows API:CreatePenIndirect

Функция CreatePenIndirect

Declare Function CreatePenIndirect Lib "gdi32" (lpLogPen As LOGPEN) As Long

CreatePenIndirect создает объект перо. Созданное перо,описанное как , логическое перо,через структуру передается функции. После того, как ваша программа завершила работу, используя перо, оно должно быть удалено через функцию DeleteObject

Возвращаемое значение

В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает дескриптор созданного пера

Параметры
lpLogPen
Описание аттрибутов,передаваемых к создаваемому перу
Пример

' Рисуем эллипс на окне Form1, используя квадратное,
'заштрихованое линией, с одним пикселом
'по ширине  зеленое перо
Dim hPen As Long  ' дескриптор к создаваемому перу
Dim hOldPen As Long  ' дескриптор к предыдущему перу Form1
Dim lpinfo As LOGPEN  ' описание пера
Dim retval As Long  ' возвращаемое значение
'Создаем квадратное, подчеркнутое штриховой линией зеленое перо с шириной 0 (всегда один пиксел)
lpinfo.lopnStyle = PS_DASH  ' штрихи
lpinfo.lopnWidth.x = 0  'минимальная ширина
lpinfo.lopnWidth.y = 0  'игнорируем
lpinfo.lopnColor = RGB(0, 255, 0)  ' зеленый
hPen = CreatePenIndirect(lpinfo)
' Выбираем перо,используемое Form1.
hOldPen = SelectObject(Form1.hDC, hPen)

' Рисуем эллипс
retval = Ellipse(Form1.hDC, 100, 150, 350, 300)

' Выбираем старое перо,используемое Form1.
retval = SelectObject(Form1.hDC, hOldPen)
' Удаляем перо для освобождения ресурсов
retval = DeleteObject(hPen)

Схожие функции
CreatePen
Категория
Перо


Функции Windows API:CreatePolygonRgn

Функция CreatePolygonRgn

Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long

Платформа: Win 95/98, Win NT

CreatePolygonRgn создает многоугольник-регион,определяемый массивом точек.В успешном случае функция возвращает дескриптор к созданному региону или 0 в случае ошибки

lpPoint
Массив точек,определяющих вершины многоугольника
nCount
Число элементов в массиве lpPoint
nPolyFillMode
Один из следующих флагов, определяющих режим заполнения многоугольника:
ALTERNATE = 1
Выбор между заполнением и незаполнением непрерывных секций, чьи границы определены краями многоугольника, пересекающегося через внутреннюю область многоугольника
WINDING = 2
Любая секция внутри многоугольника заполнена, независимо от любых внутренних многоугольных границ и граней

Пример:

' Инвертируем пикселы в пределах треугольной области на окне Form1. Треугольная
' область имеет вершины (150,150), (250, 200), и (100, 200). Обратите внимание, как точки загружены
' в массив вершин.
Dim vertex(0 To 2) As POINTAPI  ' массив вершин треугольника
Dim hrgn As Long  ' дескриптор к треугольной области
Dim retval As Long  ' возвращаемое значение

' загружаем вершины треугольной области в массив.
vertex(0).x = 150: vertex(0).y = 150  ' 1 точка: (150,150)
vertex(1).x = 250: vertex(1).y = 200  ' 2 точка: (250,200)
vertex(2).x = 100: vertex(2).y = 200  ' 3 точка: (100,200)

' создаем многоугольную область,используя массив вершин.
hrgn = CreatePolygonRgn(vertex(0), 3, ALTERNATE)
 ' инвертируем пикселы в пределах треугольной области на Form1.
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем регион для высвобождения ресурсов.
retval = DeleteObject(hrgn)

Схожие функции: CreatePolyPolygonRgn
Категория: Регионы


Функции Windows API:CreatePolyPolygonRgn

Функция CreatePolyPolygonRgn

Declare Function CreatePolyPolygonRgn Lib "gdi32" (lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long

Платформа: Win 95/98, Win NT

CreatePolyPolygonRgn создает область,состоящую из множества многоугольников. Вершины всех многоугольников передаются к функции в массиве lpPoint. Другой массив определяет, сколько точек в пределах того массива принадлежат каждому многоугольнику. Отдельные многоугольники никак не присоединяются, формируя область множественных несвязанных многоугольных областей. Обратите внимание, что заполняющийся режим для мультимногоугольной области(региона) должен быть определен явно. Функция возвращает дескриптор недавно созданной и в успешном случае или 0 в случае ошибки

lpPoint
Массив, содержащий вершину каждого многоугольника, составляющего новую область. Определите каждую точку для каждого многоугольника только однажды. См. пример для демонстрации того, как загрузить множественные многоугольники в этот массив
lpPolyCounts
Массив, определяющий, сколько вершин в массиве lpPoint,принадлежит каждому многоугольнику
nCount
Число элементов в массиве lpPolyCounts
nPolyFillMode
Точно один из следующих флажков, определяющих заполняющийся режим, используемый для каждого многоугольника в пределах области:
ALTERNATE = 1
Выбор между заполнением и не заполнением непрерывных секций, чьи границы определены краем (ями) многоугольника, пересекающегося через внутреннюю область многоугольника
WINDING = 2
Любая секция внутри многоугольника заполнена

Пример:

' Инвертируем точки,находящиеся в пределах мультимногоугольной области на окне Form1.
' Область составлена из треугольника и ромба. Треугольник имеет вершину (25,25), (50,50),
' (25,50). Ромб имеет вершину (150,150), (200,200), (150,250), и (100,200)

Dim vertex(0 To 6) As POINTAPI 'содержит вершины каждого многоугольника
Dim numvertices(0 To 1) As Long  'сколько вершин принадлежат каждому многоугольнику
Dim hrgn As Long  'дескриптор к мультимногоугольной области
Dim retval As Long  ' возвращаемое значение

' Загрузим вершины треугольника в массив вершин
vertex(0).x = 25: vertex(0).y = 25
vertex(1).x = 50: vertex(1).y = 50
vertex(2).x = 25: vertex(2).y = 50
numvertices(0) = 3  ' три вершины для треугольника

' Загрузим вершины ромба в массив вершин
vertex(3).x = 150: vertex(3).y = 150
vertex(4).x = 200: vertex(4).y = 200
vertex(5).x = 150: vertex(5).y = 250
vertex(6).x = 100: vertex(6).y = 200
numvertices(1) = 4  ' четыре вершины для ромба

' Создаем мультимногоугольную область и получаем дескриптор
hrgn = CreatePolyPolygonRgn(vertex(0), numvertices(0), 2, ALTERNATE)
'Инвертируем пикселы в пределах этой области на Form1
retval = InvertRgn(Form1.hDC, hrgn)
' Удаляем регион для освобождения ресурсов
retval = DeleteObject(hrgn)

Схожие функции: CreatePolygonRgn
Категория: Регионы


Функции Windows API:CreateRectRgn

Функция CreateRectRgn

Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа: Win 95/98, Win NT

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

X1
Координата x левого верхнего угла прямоугольника
Y1
Координата y левого верхнего угла прямоугольника
X2
Координата x нижнего правого угла прямоугольника
Y2
Координата y нижнего правого угла прямоугольника

Пример:

' Инвертируем пикселы в пределах прямоугольной области на окне Form1.
'Область имеет углы (20,30) - (150,110).
Dim hrgn As Long  'дескриптор к прямоугольной области
Dim retval As Long  ' возвращаемое значение

' Создаем прямоугольную область и получаем дескриптор к нему
hrgn = CreateRectRgn(20, 30, 150, 110)  ' Имеет углы (20,30) - (150,110)
' Инвертируем пикселы на Form1 в пределах этой области
retval = InvertRgn(Form1.hDC, hrgn)
' Удалите область, чтобы освободить ресурсы
retval = DeleteObject(hrgn)

Схожие функции: CreateRectRgnIndirect, CreateRoundRectRgn
Категория: Регионы


Функции Windows API:CreateRectRgnIndirect

Функция CreateRectRgnIndirect

Declare Function CreateRectRgnIndirect Lib "gdi32" (lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

CreateRectRgnIndirect создает область прямоугольной формы и обеспечивает (дескриптор к нему. Обратите внимание, что основание и правая сторона прямоугольника не являются частью области. Функция возвращает дескриптор недавно созданной области если в успешном случае или 0 в случае ошибки

lpRect
Прямоугольник, который определяет прямоугольную область

Пример:

' Инвертируем пикселы в пределах прямоугольной области на окне Form1.
' Область имеет углы (20,30) - (150,110).
Dim therect As RECT 'прямоугольник,определяющий прямоугольную область
Dim hrgn As Long  ' дескриптор
Dim retval As Long  ' возвращаемое значение

' Создаем прямоугольник.
retval = SetRect(therect, 20, 30, 150, 110)
' Создаем прямоугольную область, основанную на этом прямоугольнике
hrgn = CreateRectRgnIndirect(therect)
' Инвертируем пикселы в пределах этой области на Form1
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем регион для высвобождения ресурсов
retval = DeleteObject(hrgn)

Схожие функции: CreateRectRgn, CreateRoundRectRgn
Категория: Регионы


Функции Windows API:CreateRoundRectRgn

Функция CreateRoundRectRgn

Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long

Платформа: Win 95/98, Win NT

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

X1
Координата x левого верхнего угла прямоугольника
Y1
Координата y левого верхнего угла прямоугольника
X2
Координата x нижнего правого угла прямоугольника
Y2
Координата y нижнего правого угла прямоугольника
X3
Ширина части каждого угла к кругу
Y3
Высота части каждого угла к кругу

Пример:

' Инвертируем пикселы в пределах округленной прямоугольной области на окне Form1.
' Эквивалент неокругленного прямоугольника имеет углы (20,30) - (150,110). Округленные углы имеют
' ширину 15 и высоту 10.
Dim hrgn As Long  ' дескриптор к созданной округленной прямоугольной области
Dim retval As Long  ' возвращаемое значение

' Создаем округленную прямоугольную область, и получаем дескриптор
hrgn = CreateRoundRectRgn(20, 30, 150, 110, 15, 10)
 ' Инвертируем пикселы в Form1 в пределах этой области(региона).
retval = InvertRgn(Form1.hDC, hrgn)
' уничтожаем регион для высвобождения ресурсов.
retval = DeleteObject(hrgn)

Схожие функции: CreateRectRgn, CreateRectRgnIndirect
Категория: Регионы


Функции Windows API:CreateSolidBrush

Функция CreateSolidBrush

Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long

Платформа: Win 95/98, Win NT

CreateSolidBrush создает объект Кисть,используемый для заливки областей фигур. После окончания использования этим объектом воспользуйтесь функцией DeleteObject для удаления объекта Кисть и освобождения ресурсов компьютера.Функция возвращает дескриптор к новому объекту Кисть.В случае ошибки функция возвращает 0

crColor
Значение RGB цвета для кисти

Пример:

' Рисуем прямоугольник с координатами (10,20) и (175,100)
' на форме Form1.  Используем сплошную желтую кисть для заполнения фигуры
Dim hbrush As Long  ' дескриптор для новой желтой кисти
Dim holdbrush As Long  ' дескриптор к кисти формы Form1,установленной по умолчанию
Dim retval As Long  ' возвращаемое значение

hbrush = CreateSolidBrush(RGB(255, 255, 0))  ' создаем сплошную желтую кисть
' Сохраняем прежнюю кисть формы Form1 для восстановлении ее после завершении программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Русуем прямоугольник залитый желтым цветом
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' Восстанавливаем старую кисть
retval = SelectObject(Form1.hDC, holdbrush)
retval = DeleteObject(hbrush)  ' Уничтожаем желтую кисть

Схожие функции: CreateHatchBrush
Категория: Кисти


Функции Windows API:DeleteFile

Функция DeleteFile

Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

Платформа: Win 95/98, Win NT

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

lpFileName
Имя файла для удаления

Пример:

' Удаляем файл C:\Samples\anyfile.txt
Dim retval As Long  ' возвращаемое значение

retval = DeleteFile("C:\Samples\anyfile.txt")
If retval = 1 Then Debug.Print "Файл успешно удален."
Категория: Файлы


Функции Windows API:DeleteObject

Функция DeleteObject

Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

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

hObject
Дескриптор объекта

Пример:

' Рисуем прямоугольник с координатами (10,20) и (175,100)
' на форме Form1.  Используем сплошную желтую кисть для заполнения фигуры.
Dim hbrush As Long  ' дескриптор для новой желтой кисти
Dim holdbrush As Long  ' дескриптор к кисти формы Form1,установленной по умолчанию
Dim retval As Long  ' возвращаемое значение

hbrush = CreateSolidBrush(RGB(255, 255, 0))  ' создаем сплошную желтую кисть
' Сохраняем прежнюю кисть формы Form1 для восстановлении ее после завершении программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Рисуем прямоугольник,залитый желтым цветом
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' Восстанавливаем старую кисть
retval = SelectObject(Form1.hDC, holdbrush)
retval = DeleteObject(hbrush)  ' Уничтожаем желтую кисть

Категория: Устройства


Функции Windows API:DestroyIcon

Функция DestroyIcon

Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

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

Возвращаемое значение
В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры
hIcon
Дескриптор значка
Пример

' Отобразим первый значок (индекс 0),хранимый в файле
' C:\Windows\notepad.exe на окне Form1.  Значок должен быть уничтожен
' при завершении работы программы
Dim hIcon As Long  ' Дескриптор к функции, полученной от исполняемого файла
Dim retval As Long  ' возвращаемое значение

' Извлекаем первый значок из файла
hIcon = ExtractIcon(App.hInstance, "C:\Windows\notepad.exe", 0)

If hIcon = 0 Then
  Debug.Print "Неудача при извлечении значка - прерываем выполнение"
  End
Else
   ' Рисуем значок в координатах (100, 75) на Form1
  retval = DrawIcon(Form1.hDC, 100, 75, hIcon)
   ' Хотя изображение значка все еще видимо, сам значок не используется.
  ' Поэтому мы уничтожаем его, чтобы освободить ресурсы
  retval = DestroyIcon(hIcon)
End If
Категория
Значки


Функции Windows API:DrawIcon

Функция DrawIcon

Declare Function DrawIcon Lib "user32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

DrawIcon показывает значок на устройстве. Местоположение значка определяется парой координат,передаваемой функцией и определяющей координаты верхнего левого угла значка

Возвращаемое значение
В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры

hDC
Дескриптор контекста устройства для показа значка
x
Координата x точки, чтобы позиционировать верхний левый угол значка
y
Координата y точки, чтобы позиционировать верхний левый угол значка
hIcon
Дескриптор значка
Пример

 'Рисуем текущий курсор на форме
DrawIcon Me.hdc, 0, 0, GetCursor

Схожие функции
DrawIconEx
Категория
Значки


Функции Windows API:Ellipse

Функция Ellipse

Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа: Win32s, Win 95/98, Win NT

Ellipse рисует эллипс на устройстве. Две координатных пары передаваемых функции не являются непосредственно частью эллипса , но определяют его прямоугольник ограничения. Прямоугольник ограничения - самый маленький возможный прямоугольник, содержащий эллипс. Эллипс рисуется текущим цветом устройства. Функция возвращает 0 в случае ошибки, или 1 в успешном случае

hdc
Контекст устройства
X1
Координата x верхнего левого угла прямоугольника ограничения
Y1
Координата y верхнего левого угла прямоугольника ограничения
X2
Координата x нижнего правого угла прямоугольника ограничения
Y2
Координата y нижнего правого угла прямоугольника ограничения

Пример:

' Рисуем красный эллипс с прямоугольником ограничения (25,30)-(100,75)
' на PictureBox1
Dim retval As Long  ' возвращаемое значение

PictureBox1.ForeColor = RGB(255, 0, 0)  ' устанавливаем красный цвет
retval = Ellipse(PictureBox1.hdc, 25, 30, 100, 75)

Схожие функции: AngleArc, Arc, ArcTo, Chord, Pie
Категория: Фигуры


Функции Windows API:EnableWindow

Функция EnableWindow

Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

Платформа: Win 95/98, Win NT

EnableWindow допускает или отключает окно. Если окно заблокировано, оно не может получить фокус и игнорирует любой предпринятый ввод. Некоторые окна, типа кнопок и других средств управления, будут недоступными, когда заблокированы. Функция возвращает 0, если окно доступно, или ненулевое значение, если окно заблокировано

hwnd
Дескриптор окна
fEnable
Если 0, окно будет заблокировано. Если ненулевое, окно будет доступно

Пример:

' Изменим состояние окна Command1. Если окно
' заблокировано-делаем доступным; если недоступно-отключим.
Dim wasenabled As Long  ' состояние окна Command1(доступно или нет)
Dim retval As Long  ' возвращаемое значение

' узнаем состояние окна Command1(доступно или нет)
wasenabled = IsWindowEnabled(Command1.hWnd)
If wasenabled = 0 Then  ' если не доступно, делаем доступным
  retval = EnableWindow(Command1.hWnd, 1)
Else  ' если доступно-блокируем
  retval = EnableWindow(Command1.hWnd, 0)
End If

Схожие функции: IsWindowEnabled
Категория: Окна


Функции Windows API:EnumWindows

Функция EnumWindows

Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean

EnumWindows перечисляет все окна верхнего уровня. Игнорирует дочерние окна. (Обратите внимание,что перечисляются все окна,в том числе невидимые для пользователя)

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). При успешной операции функция возвращает число,отличное от нуля

Параметры
lpEnumFunc
Указатель на функцию обратного вызова EnumWindowsProc
lParam
Дополнительное значение,определяемое приложением

Пример:

' Отображаем заголовки всех окон.
' Если окно не имеет заголовка,оно отображаться не будет.

' *** Поместите этот код в модуль.  Это функция с обратным вызовом. ***
' Эта функция показывает заголовок окна,используя его описатель.
Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
  Dim sSave As String 'текст в буфере
  Dim retval As Long  ' возвращаемое значение
retval = GetWindowTextLength(hwnd) ' определяем длину заголовка окна
sSave = Space(retval)
 GetWindowText hwnd, sSave, retval + 1
Form1.Print Str$(hwnd) + " " + sSave
'продолжаем перечисление окон
    EnumWindowsProc = True
 End Function

' *** Поместите код в любое место,где будете перечислять окна ***
    Me.AutoRedraw = True
    'вызываем функцию Enumwindows
    EnumWindows AddressOf EnumWindowsProc, ByVal 0&

' Обратите внимание, что lParam
' установлен в 0, потому что мы не должны передавать любую дополнительную информацию к функции.

Схожие функции
EnumChildWindows, EnumThreadWindows
Категория
Окна


Функции Windows API:EqualRect

Функция EqualRect

Declare Function EqualRect Lib "user32" (lpRect1 As RECT, lpRect2 As RECT) As Long

Платформа: Win 95/98, Win NT

EqualRect определяет, являются ли два прямоугольника равными. Прямоугольники считаются равными, если и только, если левые верхние и нижние правые углы (точки, которые определяют прямоугольники) одного прямоугольника, равны таковым другого. Функция возвращает 1, если эти два прямоугольника равны и 0, если они неравны

lpRect1
Первый из двух прямоугольников для сравнения
lpRect2
Второй из двух прямоугольников для сравнения

Пример:

' Демонстрация проверки двух прямоугольников
Dim r As RECT, s As RECT
Dim areequal As Long  ' Являются ли прямоугольники равными или нет
Dim retval As Long  ' возвращаемое значение

retval = SetRect(r, 15, 20, 100, 110)  ' r = (15,20)-(100,110)
retval = SetRect(s, 15, 20, 100, 110)  ' s = (15,20)-(100,110)
areequal = EqualRect(r, s)  ' сравниваем два прямоугольника
If areequal = 1 Then Debug.Print "Одинаковы" Else Debug.Print "Не одинаковы"

Схожие функции: CopyRect
Категория: Прямоугольники


Функции Windows API:EqualRgn

Функция EqualRgn

Declare Function EqualRgn Lib "gdi32" (ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long) As Long

Платформа: Win 95/98, Win NT

EqualRgn определяет, содержат ли две области(региона) точно такую же область. Хотя дескрипторы региона будут конечно различны, они могут обращаться) к регионам идентичного размера, формы, и позиции. Функция возвращает ненулевое значение, если эти две области относятся к идентичным областям, или 0, если они (относятся к различным областям)

hSrcRgn1
Первый из двух регионов для сравнения
hSrcRgn2
Второй из двух регионов для сравнения

Пример:

' Иллюстрируем равные и неравные регионы. Сравниваем
' три различных области, два из них одинаковы,а третья
' не равна им.
Dim hRgn1 As Long, hRgn2 As Long, hRgn3 As Long  ' три области
Dim areequal As Long  ' индикатор равно-неравно
Dim retval As Long  ' возвращаемое значение

' три региона-эллипсы.
hRgn1 = CreateEllipticRgn(20, 30, 120, 80)
hRgn2 = CreateEllipticRgn(20, 30, 120, 80)
hRgn3 = CreateEllipticRgn(50, 50, 200, 150)

' сравниваем первые два региона (должны быть одинаковыми).
areequal = EqualRgn(hRgn1, hRgn2)  ' индикатор должен иметь ненулевое значение
If areequal = 0 Then Debug.Print "Не равны" Else Debug.Print "Равны"
' сравниваем первый и третий эллипсы
areequal = EqualRgn(hRgn1, hRgn3)  ' индикатор должен быть нулевым
If areequal = 0 Then Debug.Print "Не равны" Else Debug.Print "Равны"

' удаляем все регионы для высвобождения ресурсов.
retval = DeleteObject(hRgn1)
retval = DeleteObject(hRgn2)
retval = DeleteObject(hRgn3)

Категория: Регионы


Функции Windows API:ExitWindowsDialog

Процедура ExitWindowsDialog

Declare Sub ExitWindowsDialog Lib "shell32" Alias "#60" (ByVal hwndOwner As Long)

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается

Процедура ExitWindowsDialog официально не задокументирована. ExitWindowsDialog запрашивает пользователя с диалоговым окном "Завершение работы Windows". Это то же самое диалоговое окно, которое появляется при выборе пользователем "Завершение работы" в меню кнопки Пуск. К сожалению, не имеется никакого способа узнать,что пользователь выбрал в диалоговом окне

Возвращаемое значение

Процедура не возвращает никаких значений

Параметры
hwndOwner
Дескриптор окна, которое открывает диалоговое окно "Завершение работы Windows"
Пример

'Добавьте код в нужное место
ExitWindowsDialog Form1.hWnd 'Все!

Схожие функции
RestartDialog
Категория
Оболочка


Функции Windows API:ExitWindowsEx

Функция ExitWindowsEx

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

Платформа Win 95/98, Win NT

ExitWindowsEx выключает или перезагружает компьютер.Функция возвращает 0 в случае ошибки и 1 в успешном случае

uFlags
Один или несколько флагов,определяющих способ выключения или перезагрузки компьютера:
EWX_FORCE = 4
Закрывает все программы без приглашения сохранить файлы
EWX_LOGOFF = 0
Отключает от сети.Аналог - войти в систему под другим именем. (Завершение сеанса [name])
EWX_POWEROFF = 8
Завершает работу системы и если есть возможность выключает компьютер
EWX_REBOOT = 2
Перезагружает компьютер
EWX_SHUTDOWN = 1
Завершает работу и выключает питание, записывает все файловые буферы на диск, останавливает все работающие системные процессы
dwReserved
Зарезервированный параметр для будущих версий Windows. Всегда установлен в 0
Пример
' Перезагружаем компьютер, закрывая все открытые программы.
Dim retval As Long  ' возвращаемое значение

retval = ExitWindowsEx(EWX_REBOOT Or EWX_FORCE, 0)
If retval = 0 Then Debug.Print "Не удается перезагрузить компьютер"
Категория
Разное


Функции Windows API:ExtFloodFill

Функция ExtFloodFill

Declare Function ExtFloodFill Lib "gdi32" (ByVal hdc As Long, ByVal nXStart As Long, ByVal nYStart As Long, ByVal crColor As Long, ByVal fuFillType As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

ExtFloodFill позволяет залить сплошную область устройства,начинающуюся в точке с координатами(x,y) цветом,определенном параметром crColor и используя выбранную кисть

В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры
hdc
Дескриптор контекста устройства,на котором будет происходить заливка.
nXStart
Координата x точки начала заливки
nYStart
Координата y точки начала заливки
crColor
Значение RGB ,определяющее цвет заливки. Это свойство также зависит от флага fuFillType
fuFillType
Флаги,определяющие тип заливки:
Const FLOODFILLBORDER = 0
Заливка области цветом crColor.Точка(x,y) должна находиться в пределах закрашиваемой области. Заливка охватит поверхность любого цвета в пределах области, которые не имеют цвета crColor
Const FLOODFILLSURFACE = 1
Заливка от начальной точки во всех направлениях до достижении со цветом crColor. Граница заливки составлена из любого цвета, который не идентичен crColor
Пример

' Рисуем сплошной зеленый эллипс на форме Form1 и заливаем
' область  диагонально заштрихованной синей кистью.
Dim hPen As Long, hBrush As Long  ' дескрипторы пера и кисти
Dim hOldPen As Long, hOldBrush As Long  ' дескрипторы к ранее выбранным объектам
Dim retval As Long  ' возвращаемое значение

' создаем сплошное зеленое перо шириной в один пиксел
hPen = CreatePen(PS_SOLID, 0, RGB(0, 255, 0))
' Выбераем его для использования в Form1, отмечая предыдущее перо.
hOldPen = SelectObject(Form1.hDC, hPen)
' Создаем синюю  диагонально заштрихованную кисть.
hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 0, 255))
' Выбераем ее для использования в Form1, отмечая предыдущую кисть.
hOldBrush = SelectObject(Form1.hDC, hBrush)

' Рисуем эллипс с ограничивающим прямоугольником (100,150)-(350, 350)
retval = Ellipse(Form1.hDC, 100, 150, 350, 350)
' Заливаем  эллипс (используем зеленую границу)
' начиная с точки (125,125) внутри эллипса.
retval = ExtFloodFill(Form1.hDC, 125, 125, RGB(0, 255, 0), FLOODFILLBORDER)

' Восстанавливаем старые перо и кисть.
retval = SelectObject(Form1.hDC, hOldPen)
retval = SelectObject(Form1.hDC, hOldBrush)
' Удаляем созданные кисть и перо для освобождения ресурсов.
retval = DeleteObject(hPen)
retval = DeleteObject(hBrush)

Категория
Графика


Функции Windows API:ExtractIcon

Функция ExtractIcon

Declare Function ExtractIcon Lib "shell32" Alias "ExtractIconA" (ByVal hInst as Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

ExtractIcon извлекает один значок из файлов *.exe,*.dll и *.ico. Также,функция может определить количество значков,хранимых в файле

Возвращаемое значение

В случае ошибки(не найден требуемый файл) функция возвращает 1. Если найден требуемый значок в файле,функция возвращает 0. В успешном случае функция возвращает число значков,хранимых в файле(если указан соответствующий параметр) или дескриптор к извлекаемому значку

Параметры
hInst
Дескриптор к приложению, вызывающюю функцию
lpszExeFileName
Имя файла с расширением .exe, .dll, или .ico для извлечения значков
nIconIndex
Если равен -1, функция возвращает число значков,хранимых в файле. Если это положительное число,функция извлекает значок,используя значение индекса,начинающего с нуля (т.е. значение 0 идентифицирует первый значок). Windows 95, 98, NT 4.0 или выше, 2000: Если это - отрицательное целое число и не равно -1, функция первым извлекает значок, чей идентификатор ресурса равняется абсолютному значению этого параметра. (Для извлечения значка,чей идентификатор ресурса равен 1 используйте функцию ExtractIconEx)
Пример

' Отобразим первый значок (значение индекса 0),хранимый в Блокноте
' C:\Windows\notepad.exe на окне Form1.  Значок должен 'быть уничтожен  при завершении работы программы
Dim hIcon As Long  ' Дескриптор к функции, полученный от исполняемого файла
Dim retval As Long  ' возвращаемое значение

' Извлекаем первый значок, хранимый в вышеупомянутом исполняемом файле
hIcon = ExtractIcon(App.hInstance, "C:\Windows\notepad.exe", 0)
' Только попытаемся отобразить значок, если мы успешно извлекли его
If hIcon = 0 Then
  Debug.Print "Неудача при извлечении значка - прерываем выполнение программы"
  End
Else
  ' Отобразим значок в координатах (100, 75) на окне Form1
  retval = DrawIcon(Form1.hDC, 100, 75, hIcon)
  ' Хотя изображение значка все еще видимо, сам значок не используется.
  ' Поэтому мы уничтожаем его, чтобы освободить ресурсы
  retval = DestroyIcon(hIcon)
End If

Схожие функции
ExtractIconEx
Категория
Значки


Функции Windows API:ExtractIconEx

Функция ExtractIconEx

Declare Function ExtractIconEx Lib "shell32" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 4.0 или вышe
  • Windows 2000: Поддерживается
  • Windows CE: Требуется Windows CE 1.0 или выше

ExtractIconEx извлекает значки из файлов *.exe,*.dll и *.ico.Функция может извлекать значки разных размеров,чьи дескрипторы находятся в двух массивах. Также,функция может определить количество больших и маленьких значков,хранимых в файле

Возвращаемое значение

Если nIconIndex равен -1, phiconLarge равен 0,и phiconSmall равен 0, то функция возвращает количество значков,хранимых в выбранном файле.В остальных случаях ,функция возвращает число значков,успешно извлеченных из файла

Параметры
lpszFile
Имя файла с расширением .exe, .dll, или .ico для извлечения значков
nIconIndex
Отсчитываемый от нуля индекс первого значка,извлекаемый из файла. Если это -1 и оба параметра phiconLarge и phiconSmall равны 0,функция возвращает число значков в файле. Windows 95, 98, NT 4.0 или выше, 2000:Если это - отрицательное целое число и по крайней мере или phiconLarge или phiconSmall (или оба) не нуль, функция первым извлекает значок, чей идентификатор ресурса равняется абсолютному значению этого параметра
phiconLarge
Массив, который получает описатели больших значков, извлеченных из файла. Чтобы не извлекать больше одного значка, установите этот параметр в 0
phiconSmall
Массив, который получает описатели маленьких значков, извлеченных из файла. Чтобы не извлекать больше одного значка, установите этот параметр в 0
nIcons
Число значков, извлеченных из файла. Значки извлекаются последовательно, начиная со значка, идентифицированного nIconIndex
Пример

' Получаем число значков,хранимых в файле
' C:\Windows\System\shell32.dll.

Dim lpszFile       As String 'имя файла
Dim lIcons         As Long 'число значков
lpszFile = "c:\windows\system\shell32.dll"

' Вычисляем число значков в файле shell32.dll
lIcons = ExtractIconEx(lpszFile, -1, 0, 0, 0)

  Debug.Print "Всего " & lIcons & "значков"

Примечание Вы можете посмотреть более подробный пример extractico.zip,находящийся в папке Samples
Схожие функции
ExtractIcon
Категория
Значки


Функции Windows API:FillRect

Функция FillRect

Declare Function FillRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long

Платформа: Win 95/98, Win NT

FillRect заполняет прямоугольную область на устройстве, используя указанную кисть. Граница прямоугольной области не рисуется, и основание и правые грани данного прямоугольника не заполняются (они не являются частью внутренней области прямоугольника). Обратите внимание, что эта функция использует кисть, передаваемой функции, так что нет необходимости использовать SelectObject для выбора устройством кисти. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

hdc
Контекст устройства для заполнения прямоугольной области.
lpRect
Координаты прямоугольной области для заполнения.
hBrush
Дескриптор кисти для заполнения прямоугольной области.

Пример:

' Используем синюю диагонально - перекрестную
'заштрихованную кисть, чтобы заполнить прямоугольную
' область на окне Form1. Прямоугольная область имеет
'координаты (25,35) - (200,170).

Dim hbrush As Long  ' Получаем дескриптор синей заштрихованной кисти
Dim winrect As RECT  ' Прямоугольная область для заполнения
Dim retval As Long  ' возвращаемое значение

' устанавливаем координаты прямоугольника r
retval = SetRect(winrect, 25, 35, 200, 170)  ' теперь winrect = (25,35)-(200,170)
' создаем синюю диагонально - перекрестную заштрихованную кисть
hbrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 0, 255))
' Заполним желаемую прямоугольную область
retval = FillRect(Form1.hDC, winrect, hbrush)
' Удалим кисть, которую мы создавали, чтобы освободить ресурсы
retval = DeleteObject(hbrush)

Схожие функции: FillRgn, FrameRect
Категория: Прямоугольники


Функции Windows API:FillRgn

Функция FillRgn

Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long

Платформа: Win 95/98, Win NT

FillRgn заполняет область, определенную регионом на устройстве. Вместо использования текущей кистью устройства, регион заполнен, используя кисть, передаваемой функции. Граница региона не рисуется;заполнена только его область. Функция возвращает 0 в случае ошибки, или ненулевое значение в успешном случае.

hdc
Контекст устройства для заполнения области
hRgn
Дескриптор региона на устройстве
hBrush
Дескриптор кисти, чтобы использовать для заполнения региона
Пример:

' Используем светло-серую сплошную кисть, чтобы заполнить эллипс на окне
' Form1. Ограничительный прямоугольник эллипса - (30,20) - (150,110).
Dim hrgn As Long  ' дескриптор региона
Dim hbrush As Long  ' дескриптор кисти, чтобы заполнить регион
Dim retval As Long  ' возвращаемое значение

' Сначала, получим дескриптор сплошной светло-серой кисти.
hbrush = GetStockObject(LTGRAY_BRUSH)
' Затем, создадим эллипс и получим его дескриптор.
hrgn = CreateEllipticRgn(30, 20, 150, 110)
' Заполним  регион, используя светло-серую кисть
retval = FillRgn(Form1.hDC, hrgn, hbrush)
' Удалим регион, чтобы освободить ресурсы. Кисть удалять не обязательно.
retval = DeleteObject(hrgn)

Схожие функции: FillRect, FrameRgn
Категория: Регионы


Функции Windows API:FindWindow

Функция FindWindow

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

FindWindow ищет все окна,которые соответствуют имени класса окна и-или названию(заголовку) окна. Механизм поиска функции не чувствителен к регистру. Если Вы не желаете определять имя класса или название(заголовок) окна, Вы должны использовать пустой указатель,как признак его незначимости(vbNullString)

Возвращаемое значение

Если ошибка произошла, или соответствующее окно не было найдено, функция возвращает 0 (используйте GetLastError для получения кода ошибки). При успешной операции, функция возвращает дескриптор найденного окна

Параметры
lpClassName
Имя класса окна. Используйте vbNullString,чтобы игнорировать класс окна
lpWindowName
Имя окна(заголовок в верхней части окна). Используйте vbNullString,чтобы игнорировать заголовок окна
Пример

' Ищем окно с именем Калькулятор и заставляем мигнуть заголовок.
'Не обязательно знать имя класса окна,которое мы ищем,
'но можем использовать это имя при желании.
Dim hwnd As Long  ' дескриптор окна
Dim retval As Long  ' возвращаемое значение

' пытаемся найти окно Калькулятор.
hwnd = FindWindow(vbNullString, "Калькулятор")
If hwnd = 0 Then  ' если не найдем
  Debug.Print "Калькулятор в настоящее время не выполняется."
Else
  ' Заставляем мигнуть заголовок один раз.
  retval = FlashWindow(hwnd, 1)
  Sleep 500  'Пауза в течении полсекунды
  retval = FlashWindow(hwnd, 0)
End If

Схожие функции
FindWindowEx
Категория
Окна


Функции Windows API:FlashWindow

Функция FlashWindow

Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long

Платформа: Win 95/98, Win NT

FlashWindow заставляет мигать заголовок окна. Функция используется для привлечения внимания пользователя.При мигании происходит изменение цвета активного окна на неактивное и наоборот. Желательно,чтобы окно мигало несколько раз вместо одного раза.Когда вы используете эту функцию,не забывайте вызвать ее еще раз,чтобы вернуться к первоначальному состоянию,устанавливая bInvert в 0. Функция возвращает 0 если окно было неактивным перед миганием и 1,если было активным

hwnd
Дескриптор окна для мигания
bInvert
Определяет способ мигания. Если отлично от нуля, переключает область заголовка от активного к бездействующему просмотру (или наоборот). Если ноль, восстанавливает окно к его нормальному просмотру

Пример:
Расположите на форме CommandButton и вставьте следующий код:

Private Sub Command1_Click()
' Окно мигает 5 раз для привлечения внимания
Dim c As Integer, retval As Long
For c = 1 To 10  ' 5 раз цвет активного окна и 5 раз-неактивного
  retval = FlashWindow(Form1.hwnd, 1)  ' переключаем вид окна
  Sleep 500  ' пауза через каждые 500 миллисекуд (1/2 секунды)
Next c
retval = FlashWindow(Form1.hwnd, 0)  ' окно должно выглядить активным
End Sub

Категория: Окна


Функции Windows API:FrameRect

Функция FrameRect

Declare Function FrameRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long

Платформа: Win 95/98, Win NT

FrameRect рисует рамку с шириной один пиксел вокруг прямоугольника на устройстве, используя данную кисть.рисует рамку с шириной один пиксел вокруг прямоугольника на устройстве, используя данную кисть. Эта рамка может быть эквивалентна краю заполненного прямоугольника (пользуйтесь FillRect) . Обратите внимание, что эта функция использует кисть, передаваемой функции, так что нет необходимости использовать SelectObjectдля выбора кисти устройства. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0

hdc
Контекст устройства для рисования прямоугольной рамки
lpRect
Прямоугольник, который определяет прямоугольную рамку
hBrush
Дескриптор кисти, чтобы использовать для рисования прямоугольной рамки

Пример:

' Используем синюю диагонально - перекрестную
' заштрихованную кисть,чтобы нарисовать прямоугольную
' рамку на окне Form1. Прямоугольная рамка имеет
' координаты (20,25) - (200,175).

Dim hbrush As Long  ' Получаем дескриптор синей заштрихованной кисти
Dim winrect As RECT  ' Прямоугольная область для рамки
Dim retval As Long  ' возвращаемое значение

' Установим координаты прямоугольника winrect
retval = SetRect(winrect, 20, 25, 200, 175)  ' теперь winrect = (20,25)-(200,175)
' Создаем синюю диагонально - перекрестную заштрихованную кисть
hbrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 0, 255))
' Заполним желаемую прямоугольную область
retval = FrameRect(Form1.hDC, winrect, hbrush)  ' Создаем прямоугольник, используя кисть
' Удалим кисть, которую мы создавали, чтобы освободить ресурсы
retval = DeleteObject(hbrush)

Схожие функции: FillRect, FrameRgn
Категория: Прямоугольники


Функции Windows API:FrameRgn

Функция FrameRgn

Declare Function FrameRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long

Платформа: Win 95/98, Win NT

FrameRgn рисует рамку (границу) вокруг данной области на устройстве, используя указанную кисть.Текущая кисть устройства не используется. Ширина и высота рамки также определяются функцией. Функция возвращает 0 в случае ошибки, или ненулевое значение в успешном случае

hdc
Контекст устройства
hRgn
Дескриптор региона для рисования рамки
hBrush
Дескриптор кисти, используемой для рисования рамки
nWidth
Ширина в пикселах вертикальных штрихов кисти
nHeight
Высота в пикселах горизонтальных штрихов кисти

Пример:

' Рисуем рамку вокруг эллипса на форме Form1.  Рамка имеет
' ширину в 5 и высоту в 3 пиксела.  Область ограничена прямоугольником (20,30)-(220,180).
' Используется зеленая диагонально-заштрихованная кисть
Dim hRgn As Long  ' дескриптор региона для рамки
Dim hBrush As Long  ' дескриптор для кисти
Dim retval As Long  ' возвращаемое значение

' Создаем эллипс и кисть.
hRgn = CreateEllipticRgn(20, 30, 220, 180)
hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 255, 0))

' Рамка для региона,используя созданную кисть.
retval = FrameRgn(Form1.hDC, hRgn, hBrush, 5, 3)

' Удаляем регион и кисть для освобождения ресурсов.
retval = DeleteObject(hRgn)
retval = DeleteObject(hBrush)

Схожие функции: FillRgn, FrameRect
Категория: Регионы


Функции Windows API:GetACP

Функция GetACP

Declare Function GetACP Lib "kernel32" () As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается

GetOACP возвращает имя кодовую страницу Windows(ANSI),установленную на компьютере

Возвращаемое значение

Функция возвращает ANSI идентификатор кодовой страницы для системы или идентификатор,заданный по умолчанию,если не определена текущая кодовая страница.

ANSI идентификаторы кодовой страницы.

Идентификатор | Значение
874 | Thai
932 | Japan
936 | Chinese (PRC, Singapore)
949 | Korean
950 | Chinese (Taiwan; Hong Kong SAR, PRC)
1200 | Unicode (BMP of ISO 10646)
1250 | Windows 3.1 Eastern European
1251 | Windows 3.1 Cyrillic
1252 | Windows 3.1 Latin 1 (US, Western Europe)
1253 | Windows 3.1 Greek
1254 | Windows 3.1 Turkish
1255 | Hebrew
1256 | Arabic
1257 | Baltic

Пример:

' Определяем кодовую страницу ANSI.
MsgBox "ANSI = " & GetACP

Схожие функции
GetOEMCP
Категория:
Доступ к параметрам системы


Функции Windows API:GetActiveWindow

Функция GetActiveWindow

Declare Function GetActiveWindow Lib "user32" () As Long

Платформа: Win 95/98, Win NT

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

Пример:

' Используем FlashWindow для мигания заголовка формы
Dim hactive As Long  ' дескриптор активного окна
Dim retval As Long  ' возвращаемое значение

hactive = GetActiveWindow()  ' получаем дескриптор активного окна программы
' заставляем мигать заголовок формы
retval = FlashWindow(hactive, 1): Sleep 250
retval = FlashWindow(hactive, 1): Sleep 250
retval = FlashWindow(hactive, 0)

Схожие функции: GetForegroundWindow, GetWindow, SetActiveWindow
Категория Окна


Функции Windows API:GetArcDirection

Функция GetArcDirection

Declare Function GetArcDirection Lib "gdi32" (ByVal hdc As Long) As Long

Платформа: Win 95/98, Win NT

GetArcDirection определяет направление, в котором дуги рисуются на устройстве. Дуги могут рисоваться по часовой стрелке или против часовой стрелки от отправной точки до конечной точки. Хотя эта функция поддерживается в Win 95/98, эти платформы игнорируют установку и всегда рисуют дуги против часовой стрелки! Функция возвращает 0 в случае ошибки, или точно один из следующих флажков, определяющих направление для вывода дуг:

AD_CLOCKWISE = 2
Дуги рисуются по часовой стрелке от отправной точки до конечной точки
AD_COUNTERCLOCKWISE = 1
Дуги рисуются против часовой стрелки от отправной точки до конечной точки
hdc
Контекст устройства для вывода дуги

Пример:

' Показываем направление,в котором рисуется дуга на форме.
Dim arcdir As Long  ' направление дуги

arcdir = GetArcDirection(Form1.hDC)  ' получаем направление дуги для Form1
If arcdir = AD_CLOCKWISE Then
  Debug.Print "Form1 рисует дугу по часовой стрелке."
ElseIf arcdir = AD_COUNTERCLOCKWISE Then
  Debug.Print "Form1 рисует дугу против часовой стрелки."
End If

Схожие функции: AngleArc, Arc, ArcTo, SetArcDirection
Категория Линии и кривые


Функции Windows API:GetClassName

Функция GetClassName

Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

GetClassName возвращает имя класса,которому принадлежит окно. Имя класса,содержащее в строке,передается как lpClassName

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае, функция возвращает количество символов,копируемых в строку lpClassName

Параметры
hWnd
дескриптор окна,чье имя класса мы определяем
lpClassName
Строка для получения имени класса
nMaxCount
Размер в байтах строки lpClassName
Пример:

' Показываем имя класса окна формы Form1.
Dim classname As String  ' переменная для имени класса
Dim slength As Long  ' длина строки

' Создаем место для строки.
classname = Space(255)  ' вполне достаточно
' Получаем имя класса.
slength = GetClassName(Form1.hWnd, classname, 255)
' Извлекаем информацию из строки.
classname = Left(classname, slength)  ' удаляем пробелы
Debug.Print "Класс формы Form1: "; classname

Категория:
Классы


Функции Windows API:GetClipCursor

Функция GetClipCursor

Declare Function GetClipCursor Lib "user32" (lprc As RECT) As Long

Платформа: Win 95/98, Win NT

GetClipCursor находит текущий прямоугольник ограждения курсора мыши. Курсор мыши ограничен использованием ClipCursor. Курсор ограничен в этом прямоугольнике -- даже SetCursorPos не может освободить это. Если нет явного прямоугольника ограждения, это - действительно размер экрана. Координаты прямоугольника помещены в lprc. Функция возвращает 0 в случае ошибки, или 1 в успешном случае

lprc Координаты прямоугольника ограничения.

Пример:

' Отобразим координаты прямоугольника ограничения.
Dim winrect As RECT  ' координаты прямоугольника
Dim retval As Long  ' возвращаемое значение

retval = GetClipCursor(winrect)  ' читаем координаты и помещаем их в winrect
Debug.Print winrect.Left; winrect.Top  ' координаты(x,y) верхнего левого угла
Debug.Print winrect.Right; winrect.Bottom  ' координаты(x,y) нижнего правого угла

Схожие функции: ClipCursor
Категория Курсоры


Функции Windows API:GetComputerName

Функция GetComputerName

Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Платформа Win 95/98, Win NT

GetComputerName возвращает имя компьютера пользователя.Имя помещено в строковую переменную , как lpBuffer. Функция возвращает 0, если произошла ошибка, и 1 в случае успеха Параметры

lpBuffer
Строка, достаточно большая для хранения имени компьютера и закончивающая нулевым(пустым) символом
nSize
Длина строки lpBuffer в символах
Пример
' Показываем имя компьютера
Dim compname As String, retval As Long

compname = Space(255)  ' выделяем достаточно большое место для имени
retval = GetComputerName(compname, 255)  ' получаем имя компьютера
' удаляем нулевой символ
compname = Trim(compname)
Debug.Print compname  ' показываем имя компьютера
Категория:
Системная информация


Функции Windows API:GetCursor

Функция GetCursor

Declare Function GetCursor Lib "user32" () As Long

Платформа: Win 95/98, Win NT

GetCursor находит дескриптор текущего курсора мыши. Это - курсор, который используется, чтобы представлять указатель мыши на экране. Функция возвращает дескриптор курсора в успешном случае или 0, если происходит ошибка

 'Рисуем текущий курсор на форме
DrawIcon Me.hdc, 0, 0, GetCursor

Схожие функции: SetCursor
Категория Курсоры


Функции Windows API:GetCursorPos

Функция GetCursorPos

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

Платформа Win 95/98, Win NT

GetCursorPos возвращает текущие координаты курсора мыши. Координаты x и y (относятся ко всему экрану) передаются в переменную lpPoint. Функция возвращает 0 в случае ошибки и 1 при успешном вызове

lpPoint
Получаемые координаты x и y курсора
Пример
' определяем координаты курсора
Dim coord As POINTAPI  ' координаты курсора
Dim retval As Long ' возвращаемое значение

retval = GetCursorPos(coord)
Debug.Print "Координаты курсора:"; coord.x; coord.y
Схожие функции SetCursorPos
Категория Курсоры


Функции Windows API:GetDC

Функция GetDC

Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long

Платформа Win 95/98, Win NT

GetDC возвращает контекст устройства (DC) окна или другого объекта,имеющим дескриптор.Захватив контекст устройства,вы обязаны вернуть его системе через функцию ReleaseDC. Если вы попытаетесь получить контекст чего-то,не являющимся устройством,функция возвратит 0.Не пользуйтесь функцией DeleteDC для удаления контекста устройства при завершении работы

hWnd
Дескриптор контекста устройста
Пример
' Находим контекст устройства Рабочего стола
Dim deskhwnd As Long  ' дескриптор Рабочего стола
Dim deskhdc As Long  ' контекст устройства
Dim retval As Long  ' возвращаемое значение

' Получаем дескриптор рабочего стола
 ' Получаем контекст устройства
deskhwnd = GetDesktopWindow()
deskhdc = GetDC(deskhwnd)

' здесь вы размещаете свой код

' Освобождаем ресурсы,взятые
' у контекста устройства.
retval = ReleaseDC(deskhwnd, deskhdc)
Схожие функции CreateDC, ReleaseDC
Категория Устройства


Функции Windows API:GetDesktopWindow

Функция GetDesktopWindow

Declare Function GetDesktopWindow Lib "user32" () As Long

Платформа Win 95/98, Win NT

GetDesktopWindow возвращает дескриптор Рабочего Стола.Рабочий Стол-это основное окно в Windows,которое отображается во весь экран.В случае ошибки,функция возвращает 0 вместо дескриптора

Пример

' дескриптор Рабочего стола требует найти контекст устройства
Dim deskhwnd As Long  ' дескриптор
Dim deskhdc As Long  ' контекст устройства
Dim retval As Long  ' возвращаемое значение

deskhwnd = GetDesktopWindow()  ' получаем дескриптор рабочего стола
deskhdc = GetDC(deskhwnd)  ' получаем контекст устройства

' здесь вы размещаете свой код

retval = ReleaseDC(deskhwnd, deskhdc)  ' освобождаем контекст устройства
Категория
Окна


Функции Windows API:GetDiskFreeSpace

Функция GetDiskFreeSpace

Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long

Платформа
  • Windows 95: Поддерживается с ограничениями; используйте GetDiskFreeSpaceEx
  • Windows 98: Поддерживается с ограничениями; используйте GetDiskFreeSpaceEx
  • Windows NT: Требуется Windows NT 3.1 или выше ; используйте GetDiskFreeSpaceEx
  • Windows 2000: Поддерживается ; используйте GetDiskFreeSpaceEx
  • Windows CE: Не поддерживается

GetDiskFreeSpace возвращает информацию относительно количества места на диске. Эта информация включает число секторов в каждом кластере, число байтов в каждом секторе, число свободных кластеров, и общего количества кластеров. Из-за ограничений 32-разрядного типа данных целого числа, эта функция работает должным образом только с дисками с объемом меньше, чем 2 МБАЙТ. Другая функция GetDiskFreeSpaceEx не имеет этих ограничений

При возникновении ошибки,функция возвращает 0 (используйте GetLastError для определения кода ошибки). При успешном случае,функция возвращает значение,отличное от нуля Параметры
lpRootPathName
Корневой каталог диска,например "c:\" или "a:\"
lpSectorsPerCluster
число секторов в кластере.
lpBytesPerSector
число байт в секторе.
lpNumberOfFreeClusters
число свободных кластеров Windows 2000: Это может быть более низкое чем фактическое значение.
lpTotalNumberOfClusters
общее число кластеров. Windows 2000: Это может быть более низкое чем фактическое значение.
Пример

' Считаем и отображаем количество свободного места и общего объема диска C:
Dim secPerClus As Long  ' число секторов в кластере
Dim bytePerSec As Long  ' число байт в секторе
Dim freeClus As Long  ' число свободных кластеров
Dim totalClus As Long  ' общее число кластеров
Dim retval As Long  ' возвращаемое значение

retval = GetDiskFreeSpace("c:\", secPerClus, bytePerSec, freeClus, totalClus)

 ' Отображаем информацию
Debug.Print "Свободно:"; freeClus * secPerClus * bytePerSec; "байт"
Debug.Print "Общий объем:"; totalClus * secPerClus * bytePerSec; "байт"

Схожие функции
GetDiskFreeSpaceEx
Категория
Файлы


Функции Windows API:GetDoubleClickTime

Функция GetDoubleClickTime

Declare Function GetDoubleClickTime Lib "user32" () As Long

Платформа: Win 95/98, Win NT

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

Пример:

' Показываем промежуток времени
' между двумя щелчками мыши в событии DoubleClick

Dim doubletime As Long

doubletime = GetDoubleClickTime()  ' получаем значение промежутка времени в миллисекундах
Debug.Print doubletime; "миллисекунд"

Схожие функции: SetDoubleClickTime
Категория Мышь


Функции Windows API:GetDriveType

Функция GetDriveType

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

Платформа: Win 95/98, Win NT

GetDriveType определяет типы дисков на компьютере.Это могут быть жесткие диски,флоппи-диски, CD-ROM и др. Функция возвращает тип диска.Если 0-значит ошибка,если 1-значит диск не существует,другие возвращаемые значения означают следующее:

DRIVE_CDROM = 5
CD-ROM.
DRIVE_FIXED = 3
Жесткий диск.
DRIVE_RAMDISK = 6
RAM-диск.
DRIVE_REMOTE = 4
Сетевой диск.
DRIVE_REMOVABLE = 2
Сменный диск(напр.дискетта или любой сменный диск).
nDrive
Корневой каталог диска,как "c:\" или "a:\"
Пример
' Определяем тип диска D:
Dim drivetype As Long

drivetype = GetDriveType("d:\")
If drivetype = 1 Then Debug.Print "Диск D:\ не существует."
If drivetype = DRIVE_REMOVABLE Then Print "Диск D:\ сменный диск."
If drivetype = DRIVE_FIXED Then Print "Диск D:\ жесткий диск."
If drivetype = DRIVE_CDROM Then Print "Диск D:\ CD-ROM."
' и т.д.
Категория
Файлы


Функции Windows API:GetFileAttributes

Функция GetFileAttributes

Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

Платформа: Win 95/98, Win NT

GetFileAttributes возвращает атрибуты файла или папки.При ошибке возвращает 0,если файл или папка не найдены,то возвращается -1.В других случаях,возвращаемое значение принимает следующие флаги:

FILE_ATTRIBUTE_ARCHIVE = &H20
Архивный файл
FILE_ATTRIBUTE_COMPRESSED = &H800
Сжатый файл
FILE_ATTRIBUTE_DIRECTORY = &H10
Имя папки
FILE_ATTRIBUTE_HIDDEN = &H2
Скрытый файл или папка.Обычно его не видно пользователю
FILE_ATTRIBUTE_NORMAL = &H80
Файл не имеет атрибутов(нельзя комбинировать с другими флагами)
FILE_ATTRIBUTE_READONLY = &H1
Файл только для чтения
FILE_ATTRIBUTE_SYSTEM = &H4
Системный файл.Является частью операционной системы
lpFileName
Полное имя файла или папки
Пример
' показываем атрибуты файла c:\autoexec.bat
Dim attribs As Long

attribs = GetFileAttributes("C:\autoexec.bat")  ' узнаем атрибуты файла
If (attribs And FILE_ATTRIBUTES_ARCHIVE) <> 0 Then Debug.Print "Архивный"
If (attribs And FILE_ATTRIBUTES_HIDDEN) <> 0 Then Debug.Print "Скрытый"
If (attribs And FILE_ATTRIBUTES_READONLY) <> 0 Then Debug.Print "Только для чтения"
' и так далее....
Схожие функции GetFileInformationByHandle, SetFileAttributes
Категория Файлы


Функции Windows API:GetFileSize

Функция GetFileSize

Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long

Платформа: Win 95/98, Win NT

GetFileSize определяет размер файла.При ошибке возвращается -1

hFile
дескриптор файла.Файл следует сначала открыть с помощью CreateFile(),используя флаг OPEN_EXISTING(чтобы проверить существование файла).
lpFileSizeHigh
Размер файла.

Пример:

' Определяем размер файла "C:\config.sys".

Dim filePointer As Long, fileSize As Long

' получаем дескриптор файла с помощью CreateFile
filePointer = CreateFile("c:\config.sys", GENERIC_READ Or GENERIC_WRITE, 0&, 0&, OPEN_EXISTING, _
                                FILE_ATTRIBUTE_NORMAL, 0&)
fileSize = GetFileSize(filePointer, 0&)

    Debug.Print "Размер файла:" fileSize
    'закрываем файл
    CloseHandle (filePointer)

Схожие функции: GetFileInformationByHandle
Категория Файлы


Функции Windows API:GetForegroundWindow

Функция GetForegroundWindow

Declare Function GetForegroundWindow Lib "user32" () As Long

Платформа: Win 95/98, Win NT

GetForegroundWindow находит, какое окно является в настоящее время приоритетным окном. Приоритетное окно - окно, обычно наверху Z-order, с которым пользователь в настоящее время работает - то есть, окно с фокусом. Функция возвращает 0 в случае ошибки или дескриптор приоритетного окна в успешном случае

Пример:

' Отобразим заголовок приоритетного окна.
Dim hforewnd As Long  ' дескриптор приоритетного окна
Dim slength As Long  ' длина заголовка приоритетного окна
Dim wintext As String  ' буфер для хранения заголовка приоритетного окна
Dim retval As Long  ' возвращаемое значение

hforewnd = GetForegroundWindow()  ' определяем приоритетное окно
slength = GetWindowTextLength(hforewnd) + 1  ' длина заголовка этого окна
wintext = Space(slength)  ' создаем место в буфере для хранения заголовка
retval = GetWindowText(hforewnd, wintext, slength)  ' получаем текст заголовка
wintext = Left(wintext, slength - 1)  ' удаляем нулевой символ в конце строки
Debug.Print "Окно "; wintext; " является приоритетным окном."

Схожие функции: SetForegroundWindow
Категория Окна


Функции Windows API:GetFullPathName

Функция GetFullPathName

Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long

Платформа: Win 95/98, Win NT

GetFullPathName возвращает полный путь к файлу. Функция возвращает 0 в случае ошибки,или длину строки в успешном случае

lpFileName
Имя файла
nBufferLength
Размер в символахlpBuffer
lpBuffer
Строка
lpFilePart
???

Пример:

' определяем полное имя файла autoexec.bat
Dim buffer As String
Dim numchar As Long  ' длина буфера после вызова функции

ChDir "c:\"  ' выбираем папку
buffer = Space(255)  ' создаем место для приема строки
numchar = GetFullPathName("autoexec.bat", 255, buffer, "") font color="green"> ' помещаем строку в буфер
buffer = Left(buffer, numchar)  ' извлекаем имя файла
Debug.Print buffer  ' показываем результат
Схожие функции
GetShortPathName
Категория: Файлы


Функции Windows API:GetKeyboardState

Функция GetKeyboardState

Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

GetKeyboardState отыскивает состояние каждой клавиши на клавиатуре и размещает информацию в массив. Каждый элемент массива с 256 элементами идентифицирует информацию относительно виртуальной клавиши, чей код виртуальной клавиши соответствует индексу элемента.На вашей клавиатуре нет 256 клавиш?Это сделано с прицелом на будущее. Если установлен бит &H1 , та клавиша выключена. Если установлен бит &H80, клавиша в настоящее время включена

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

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры
pbKeyState
Массив байтов с 256 элементами, который получает информацию состояния для всех виртуальных клавиш. Каждая клавиша идентифицирована элементом, соответствующим коду виртуальной клавиши. Windows NT, 2000: В дополнение к виртуальным клавишам, массив также получает информацию, способную различать левый и правый клавиши Ctrl, Alt, и SHIFT, которые помещены в массив в следующих индексах:
VK_LSHIFT = &HA0
Левый Shift
VK_RSHIFT = &HA1
Правыйt Shift
VK_LCONTROL = &HA2
Левый Ctrl
VK_RCONTROL = &HA3
Правый Ctrl
VK_LMENU = &HA4
Левый Alt
VK_RMENU = &HA5
Правый Alt
Пример

' Установим статус для каждой клавиши на клавиатуре
' на "не включено"
Dim keystates(0 To 255) As Byte  ' содержит статус всех клавиш в массиве
Dim c As Integer  ' счетчик
Dim retval As Long  ' возвращаемое значение

' Сначала, получим текущее состояние клавиатуры.
retval = GetKeyboardState(keystates(0))

' Теперь, установим бит для всех клавиш в 0.
For c = 0 To 255
  ' Удостоверимся,что бит &H1 не установлен.
  keystates(c) = keystates(c) And (Not &H1)
Next c

' Наконец, установим это к текущему состоянию клавиатуры.
retval = SetKeyboardState(keystates(0))

Схожие функции
GetKeyState, SetKeyboardState
Категория
Клавиатура


Функции Windows API:GetKeyState

Функция GetKeyState

Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

GetKeyState определяет текущее состояние клавиши. Функция находит, нажата ли клавиша в настоящее время или нет, и определяет, переключается ли клавиша в настоящее время

Возвращаемое значение

Если установлен параметр &H1, клавиша переключается. Если установлен параметр &H80, то клавиша в данный момент нажата

Параметры
nVirtKey
Код виртуальной клавиши. Windows NT, 2000: Это может быть один из следующих флажков, которые различают левый и правый Ctrl, Alt, и SHIFT:
Const VK_LSHIFT = &HA0
Левый Shift
Const VK_RSHIFT = &HA1
Правый Shift
Const VK_LCONTROL = &HA2
Левый Ctrl
Const VK_RCONTROL = &HA3
Правый Ctrl
Const VK_LMENU = &HA4
Левый Alt
Const VK_RMENU = &HA5
Правый Alt

Пример:

' Отобразим текущее состояние клавиши ENTER.
Dim keystate As Long  ' состояние клавиши

' Читаем текущее состояние клавиши ENTER.
keystate = GetKeyState(VK_RETURN)

' Отобразим состояние переключателя клавиши ENTER.
If (keystate And &H1) = &H1 Then
  Debug.Print "Клавиша ENTER в настоящее время переключается."
Else
  Debug.Print "Клавиша ENTER в настоящее время не переключается."
End If
' Нажимается ли Клавиша ENTER или нет.
If (keystate And &H80) = &H80 Then
  Debug.Print "Клавиша ENTER в настоящее время нажата."
Else
  Debug.Print "Клавиша ENTER сейчас не нажата."
End If

Схожие функции
GetAsyncKeyState, GetKeyboardState
Категория
Клавиатура


Функции Windows API:GetLastError

Функция GetLastError

Declare Function GetLastError Lib "kernel32" () As Long

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

Пример
' демонстрация обнаружения ошибки
 неверного определения дескриптора
Dim retval As Long  ' возвращаемое значение функции
Dim errorcode As Long  ' код ошибки

' делаем неправильное обращение к функциии ,используя
'неверный дескриптор
retval = CloseHandle(-1)  ' нет дескриптора -1!
If retval = 0 Then  '  возвращаемое значение будет равным 0 при возникновении ошибки
  errorcode = GetLastError()  ' находим код ошибки
  If errorcode = 6 Then Debug.Print "ОШИБКА: Неверный дескриптор"   ' ошибка 6 = Неверный дескриптор
End If
Схожие функции CommDlgExtendedError
Категория
Ошибки


Функции Windows API:GetLocalTime

Функция GetLocalTime

Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)

Платформа: Win 95/98, Win NT

GetLocalTime возвращает системное время и дату. Различные особенности времени и даты (месяц, день, час, минута, секунда и т.д.), до миллисекунды, сортируются в переменной lpSystemTime! Windows полагает, что "местное время" будет текущим временем системы

lpSystemTime
Переменная для получения от компьютера времени и даты

Пример:

' Показываем текущее время в формате месяц-день-год
Dim localtime As SYSTEMTIME

GetLocalTime localtime  ' получаем время и дата у компьютера
' Показываем дату
Debug.Print localtime.wMonth; "-"; localtime.wDay; "-"; localtime.wYear

Схожие функции: GetSystemTime
Категория Время


Функции Windows API:GetLogicalDriveStrings

Функция GetLogicalDriveStrings

Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Платформа: Win 95/98, Win NT

GetLogicalDriveStrings определяет имеющие силу логические диски на компьютере и размещает их названия корневых каталогов в строку lpBuffer. Каждое имя корневого каталога в буфере отделено нулевым символом, и полными строковыми концами в двух нулевых символах. Например, если существуют только A: и C: , строка будет " a: \ (пустой указатель) c: \ (пустой указатель) (пустой указатель) ", где (пустой указатель) представляет нулевой символ. Функция возвращает 0, если произошла ошибка, или длина строки, помещенной в lpBuffer, если функция выполнена успешно

nBufferLength
Длина строки в буфере lpBuffer
lpBufferСтрока,которая получает имена всех логических дисков

Пример:

' Перечисляем имена всех корневых каталогов. Так как каждый вход в строке берет
' Четыре символа (три для имени и один для пустого указателя), мы можем  рассчитать длину
'  строки. Это освобождает нас от проблем относительно пустых указателей.
Dim drivenames As String  ' получаем имена дисков
Dim thisdrive As String  ' буфер для имени диска
Dim c As Long  ' счетчик
Dim slength As Long  ' длина возвращаемой строки

' Создаем место в буфере для имен дисков.
drivenames = Space(255)  ' должно хватить
' Получаем имена всех дисков.
slength = GetLogicalDriveStrings(255, drivenames)
' считаем по 4 символа для извлечения имен каждого диска.
For c = 1 To slength Step 4  '
  thisdrive = Mid(drivenames, c, 3)  ' извлекаем 3-х символьную строку X:\ (где X-буква диска)
  Debug.Print thisdrive  ' показываем имена дисков
Next c

Схожие функции: GetLogicalDrives
Категория Файлы


Функции Windows API:GetMenu

Функция GetMenu

Declare Function GetMenu Lib "user32" (ByVal hWnd As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

GetMenu идентифицирует,какое меню назначено на данное окно. Это меню появляется как строка меню окна

Возвращаемое значение

Функция возвращает дескриптор верхнего меню окна. Если окно не имеет меню,то функция возвращает 0. Если окно, указанное в списке параметра - дочернее окно, возвращаемое значение функции бессмысленно

Параметры
hWnd
Дескриптор окна для получения меню
Пример

Перед выполнением этого примера, создайте с помощью Menu Editor маленькую систему меню на Form1

'Определим дескриптор меню формы
Dim hMenu As Long
' получаем дескриптор меню формы
hMenu = GetMenu(Form1.hWnd)
Debug.Print hmenu

Схожие функции
GetSystemMenu
Категория
Меню


Функции Windows API:GetMenuItemCount

Функция GetMenuItemCount

Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

GetMenuItemCount считает число пунктов в меню,включая разделители. Имейте в виду, что индекс числа пунктов начинается с нуля

Возвращаемое значение

В успешном случае функция возвращает число элементов(пунктов) в меню. В случае ошибки функция возвращает -1 (используйте GetLastError для получения кода ошибки)

Параметры
hMenu
Дескриптор к меню для подсчета числа пунктов
Пример

'Удалим надпись Закрыть из системного меню
Dim hSysMenu As Long, nCnt As Long
' Получаем дескриптор системного меню формы Form1
 ' (Восстановить, Переместить, Свернуть и т.п.)
hSysMenu =GetSystemMenu(Me.hwnd, 0)

If hSysMenu Then
' Получаем индекс системного меню
nCnt = GetMenuItemCount(hSysMenu)
Debug.Print "В меню " & nCnt & " пунктов"
 End If

Категория
Меню


Функции Windows API:GetOEMCP

Функция GetOEMCP

Declare Function GetOEMCP Lib "kernel32" () As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается

GetOEMCP возвращает имя кодовую страницу DOS(OEM),установленную на компьютере

Возвращаемое значение

Функция возвращает OEM идентификатор кодовой страницы для системы или идентификатор,заданный по умолчанию,если не определена текущая кодовая страница.

OEM идентификаторы кодовой страницы

Идентификатор | Значение
437 | MS-DOS United States
708 | Arabic (ASMO 708)
709 | Arabic (ASMO 449+, BCON V4)
710 | Arabic (Transparent Arabic)
720 | Arabic (Transparent ASMO)
737 | Greek (formerly 437G)
775 | Baltic
850 | MS-DOS Multilingual (Latin I)
852 | MS-DOS Slavic (Latin II)
855 | IBM Cyrillic (primarily Russian)
857 | IBM Turkish
860 | MS-DOS Portuguese
861 | MS-DOS Icelandic
862 | Hebrew
863 | MS-DOS Canadian-French
864 | Arabic
865 | MS-DOS Nordic
866 | MS-DOS Russian (former USSR)
869 | IBM Modern Greek
874 | Thai
932 | Japan
936 | Chinese (PRC, Singapore)
949 | Korean
950 | Chinese (Taiwan; Hong Kong SAR, PRC)
1361 | Korean (Johab)

Пример:

' Определяем кодовую страницу OEM.
MsgBox "OEMCP = " & GetOEMCP

Схожие функции
GetACP
Категория:
Доступ к параметрам системы


Функции Windows API:GetOpenFileName

Функция GetOpenFileName

Declare Function GetOpenFileName Lib "comdlg32" Alias "GetOpenFileNameA" (pOPENFILENAME As OPENFILENAME) As Long

Платформа: Win 95/98, Win NT

GetOpenFileName открывает стандартное общее диалоговое окнo открытия файла.Вся нужная вам информация для передачи функции содержится в pOPENFILENAME.Заметьте,что функция не открывает файлы,а только открывает диалоговое окно и возвращает имя файла(файлов).Функция возвращает 0 в случае ошибки или если была нажата кнопка Отмена,в успешном случае возвращается 1

pOPENFILENAME
Содержит параметры для открытия диалогового окна.Также получает возвращаемое имя файла или файлов и другую информацию

Пример:

' Открываем общее диалоговое окно и ищем файлы *.txt
Dim filebox As OPENFILENAME  ' структура для управления диалоговым окном
Dim fname As String  ' возвращаемое имя файла
Dim retval As Long  ' возвращаемое значение

' Устанавливаем вид диалогового окна
filebox.lStructSize = Len(filebox)  ' размер структуры
filebox.hwndOwner = Form1.hWnd  ' дескриптор формы
filebox.lpstrTitle = "Сим-Сим,откройся"  ' текст для заголовка диалогового окна
' Здесь устанавливаем типы файлов
filebox.lpstrFilter = "Тексты" & vbNullChar & "*.txt" & vbNullChar & "Все файлы" & vbNullChar & "*.*" & vbNullChar & vbNullChar
filebox.lpstrFile = Space(255)  ' создаем буфер для приема пути и имени файла
filebox.nMaxFile = 255  ' длина буфера
filebox.lpstrFileTitle = Space(255)  ' создаем буфер для приема имени файла
filebox.nMaxFileTitle = 255  ' длина для этого буфера
' отображаем существующие скрытые файлы
filebox.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST

' Запускаем общее диалоговое окно
retval = GetOpenFileName(filebox)
If retval <> 0 Then  ' если все нормально
  ' удаляем нулевой символ из имени файла
  fname = Left(filebox.lpstrFile, InStr(filebox.lpstrFile, vbNullChar) - 1)
  Debug.Print "Вы выбрали файл: "; fname
End If

Схожие функции: GetSaveFileName
Категория Общее диалоговое окно


Функции Windows API:GetParent

Функция GetParent

Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

GetParent возвращает дескриптор родительского окна. Например, родительским окном для кнопки обычно является окно формы.В успешном случае функция возвращает дескриптор родительского окна,в случае ошибки -возвращается 0

hwnd
Дескриптор окна.

Пример:

' Определяем окно какого фрейма является родительским для кнопки- Frame1 или Frame2

Dim parenthwnd As Long  ' родительское окно

parenthwnd = GetParent(Command1.hWnd)  ' получаем дескриптор родительского окна
If parenthwnd = Frame1.hWnd Then Debug.Print "Кнопка внутри фрейма Frame 1."
If parenthwnd = Frame2.hWnd Then Debug.Print "Кнопка внутри фрейма Frame 2."

Схожие функции: SetParent
Категория Окна


Функции Windows API:GetPixel

Функция GetPixel

Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal nXPos As Long, ByVal nYPos As Long) As Long

GetPixel возвращает значение RGB пиксела в заданный координатах в контексте устройства

Возвращаемое значение

В случае ошибки функция возвращает &HFFFF. В успешном случае функция возвращает значение RGB пиксела в заданной точке

Параметры
hdc
Дескриптор контекста устройства
nXPos
Координата x точки для определения цвета
nYPos
Координата y точки для определения цвета
Пример

' Определяем значение цвета точки
' с координатами (75,100).
Dim rgbVal As Long  ' значение RGB точки

' Определяем цвет на форме в точке (75,100)
rgbVal = GetPixel(Form1.hDC, 75, 100)

Debug.Print "Значение RGB точки" & rgbVal

Схожие функции
SetPixel, SetPixelV
Категория
Графика


Функции Windows API:GetPrivateProfileString

Функция GetPrivateProfileString

Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Платформа: Win 95/98, Win NT

GetPrivateProfileString читает строковые значения из INI-файлов. Параметры,передаваемые функции, определяют значение для чтения. Функция всегда возвращает длину в символах строки, помещенной в переменную lpReturnedString. Если выполнение функции было успешно, чтение строки от INI файла будет помещено в lpReturnedString. Если нет, это вместо этого получит строку, данную как lpDefault. Обратите внимание, что поддержка INI -файлов обеспечивается в Windows для совместимости; для хранения информации используйте системный реестр Параметры

lpApplicationName
Раздел-имя,заключенное в квадратные скобки [] и группирующее ключи и значения
lpKeyName
Значение ключа.Ключ должен быть уникальным только внутри своего раздела
lpDefault
Возвращаемое значение, если правильное(допустимое) значение не может читаться
lpReturnedString
Строка фиксированной длины, получаемая при чтении любой строки файла или lpDefault
nSize
Длина в символах переменной lpReturnedString
lpFileName
Имя INI-файла для чтения
Пример
'скопируйте файл oeminfo.ini
'в папку C:\Samples
'читаем значение "Manufacturer" в секции [General]
'  INI-файла oeminfo.ini
' Значение  Manufacturer  "Русский_Проект".
Dim uname As String  ' значение ключа,получаемое из файла
Dim slength As Long  ' длина получаемой строки

uname = Space(255)  ' обеспечиваем достаточно места для функции, чтобы поместить значение в буфер
' читаем INI-файл
slength = GetPrivateProfileString("general", "Manufacturer", "anonymous", uname, 255, "C:\Samples\oeminfo.ini")
uname = Left(uname, slength)  ' извлекаем нужную строчку из буфера
Debug.Print "Производитель: "; uname
Схожие функции GetPrivateProfileInt, GetProfileString, WritePrivateProfileString
Категория: Файлы INI


Функции Windows API:GetRgnBox

Функция GetRgnBox

Declare Function GetRgnBox Lib "gdi32" (ByVal hRgn As Long, lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

GetRgnBox определяет прямоугольник, ограничивающий данный регион. Прямоугольник ограничения - самый маленький возможный прямоугольник, который полностью окружает регион. Прямоугольник ограничения помещен в структуру lpRect . Функция возвращает 0 в случае ошибки, или точно один из следующих флажков, определяющих форму региона:

COMPLEXREGION = 3
Область не пуста, но не прямоугольна
NULLREGION = 1
Область пуста, то есть- пустой указатель
SIMPLEREGION = 2
Область прямоугольна
hRgn
Дескриптор региона, чтобы получить прямоугольник ограничения
lpRect
Получает координаты прямоугольника ограничения региона

Пример:

' Заполним треугольную область на Form1 темным серым цветом, и заполним ограничивающий
' прямоугольник (позади него)  светло-серым.
Dim triangle(0 To 2) As POINTAPI  ' вершина треугольной области
Dim hRgn As Long  ' дескриптор треугольной области
Dim hLightBrush As Long, hDarkBrush As Long  ' дескрипторы к двум кистям
Dim bounding As RECT  ' ограничительный прямоугольник региона
Dim retval As Long  ' возвращаемое значение
'Устанавим BackColor формы в красный цвет
'Создаем треугольную область.
Form1.BackColor=vbRed
triangle(0).x = 150: triangle(0).y = 100  ' точка #1: (150,100)
triangle(1).x = 200: triangle(1).y = 150  ' точка #2: (200,150)
triangle(2).x = 175: triangle(2).y = 200  ' точка #3: (175,200)
hRgn = CreatePolygonRgn(triangle(0), 3, ALTERNATE)  ' Создаем регион
' Получим дескрипторы к светлому и темному серым твердым кистям.
hLightBrush = GetStockObject(LTGRAY_BRUSH)
hDarkBrush = GetStockObject(DKGRAY_BRUSH)

' Вычисляем ограничительный прямоугольник треугольной области.
retval = GetRgnBox(hRgn, bounding)  ' теперь вычерчиваем ограничительный прямоугольник,
' заполняя ограничительный прямоугольник светло-серым,а регион темно-серым цветом.
retval = FillRect(Form1.hDC, bounding, hLightBrush)
retval = FillRgn(Form1.hDC, hRgn, hDarkBrush)

' Удаляем регион для освобождения ресурсов.
retval = DeleteObject(hRgn)

Категория
Регионы


Функции Windows API:GetSaveFileName

Функция GetSaveFileName

Declare Function GetSaveFileName Lib "comdlg32" Alias "GetSaveFileNameA" (pOPENFILENAME As OPENFILENAME) As Long

Платформа: Win 95/98, Win NT

GetSaveFileName открывает стандартное общее диалоговое окнo сохранения файла. Вся нужная вам информация для передачи функции содержится в pOPENFILENAME. Имя файла(файлов),возвращаемой функцией также передается в pOPENFILENAME. Функция не сохраняет файл(файлы),а только запускает диалоговое окно и возвращет выбранные файлы. Функция возвращает 0 в случае ошибки или если была нажата кнопка Отмена,в успешном случае возвращается 1

pOPENFILENAME
Содержит параметры для открытия диалогового окна.Также получает возвращаемое имя файла или файлов и другую информацию

Пример:

' Открываем общее диалоговое окно
Dim filebox As OPENFILENAME  ' структура для управления диалоговым окном
Dim fname As String  ' путь и имя файла
Dim retval As Long  ' возвращаемое значение

filebox.lStructSize = Len(filebox)  ' размер структуры
filebox.hwndOwner = Form1.hWnd  ' дескриптор формы
filebox.lpstrTitle = "Сохранение файла"  ' текст для заголовка диалогового окна
' Здесь устанавливаем типы файлов
filebox.lpstrFilter = "Тексты" & vbNullChar & "*.txt" & vbNullChar & "Все файлы" & vbNullChar & "*.*" & vbNullChar & vbNullChar
filebox.lpstrFile = Space(255)   ' создаем буфер для приема пути и имени файла
filebox.nMaxFile = 255  ' длина для этого буфера
filebox.lpstrFileTitle = Space(255)  ' создаем буфер для приема имени выбранного файла
filebox.nMaxFileTitle = 255 ' длина для этого буфера
filebox.lpstrDefExt = "txt"  ' расширение файла по умолчанию
' отображаем существующие пути,
' предупреждаем,если файл существует,
' прячем флажок только для чтения
filebox.flags = OFN_PATHMUSTEXIST Or OFN_OVERWRITEPROMPT Or OFN_HIDEREADONLY
' Запускаем общее диалоговое окно
retval = GetSaveFileName(filebox)
If retval <> 0 Then  ' пользователь выбрал файл
  ' Извлекаем имя файла из буфера и передаем его fname
  fname = Left(filebox.lpstrFile, InStr(filebox.lpstrFile, vbNullChar) - 1)
End If

Схожие функции: GetOpenFileName
Категория Общее диалоговое окно


Функции Windows API:GetShortPathName

Функция GetShortPathName

Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

Платформа: Win 95/98, Win NT

GetShortPathName преобразует длинное имя файла в короткое(8.3) имя. Например,имя файла ReallyLongFile.txt будет преобразовано в REALLY~1.TXT. Короткое имя файла передается в переменную строку lpShortPath. Функция возвращает длину строки, или 0 в случае ошибки

lpszLongPath
Полный путь и имя файла для преобразования
lpszShortPath
Строка,содержащая короткое имя файла
cchBuffer
Размер в символах lpszShortPath

Пример:

' Преобразуем имя файла  C:\My Documents\ReadMeFirst.txt
Dim shortname As String  ' строка для короткого имени
Dim slength As Long  ' длина короткого имени файла

shortname = Space(255)  ' создаем место в буфере для короткого имени файла
slength = GetShortPathName("C:\My Documents\ReadMeFirst.txt", shortname, 255)
shortname = Left(shortname, slength)  ' извлекаем строку из буфера
Debug.Print "Короткое имя: "; shortname

Схожие функции: GetFullPathName
Категория Файлы


Функции Windows API:GetStockObject

Функция GetStockObject

Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As Long

Платформа:

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Поддерживается

GetStockObject обращается к перу, кисти, шрифту или палитру Windows. Эта функция обеспечивает быстрый доступ к этим объектам, вместо необходимости использовать более сложные функции. Функция возвращает дескриптор к перу, кисти, шрифту или палитре, к которым функция обращается. Хотя обычно не требуется удалять дескриптор, используя DeleteObject, тем не менее это не имеет никаких неблагоприятных эффектов

Параметры
nIndex
Точно один из следующих флажков, определяющих объект для создания дескриптора:
ANSI_FIXED_FONT = 11
Системный нормальный моноширный шрифт
ANSI_VAR_FONT = 12
Системный нормальный пропорциональный шрифт
BLACK_BRUSH = 4
Сплошная черная кисть
BLACK_PEN = 7
Сплошное черное перо
DEFAULT_GUI_FONT = 17
только для Win 95/98: Заданный по умолчанию шрифт для пользователя
DEFAULT_PALETTE = 15
Заданная по умолчанию системная палитра
DEVICE_DEFAULT_FONT = 14
только для Win NT: Аппаратно-зависимый шрифт
DKGRAY_BRUSH = 3
Сплошная темно-серая кисть
GRAY_BRUSH = 2
Сплошная серая кисть
HOLLOW_BRUSH = 5
Аналогично NULL_BRUSH
LTGRAY_BRUSH = 1
Сплошная светло-серая кисть
NULL_BRUSH = 5
Пустая кисть; то есть, кисть, которая ничего не рисует на устройстве
NULL_PEN = 8
Пустое перо; то есть,перо, которое ничего не рисует на устройстве
OEM_FIXED_FONT = 10
Заданный по умолчанию OEM-шрифт фиксированной ширины
SYSTEM_FIXED_FONT = 16
Системный шрифт фиксированной ширины для ранних версий Windows
SYSTEM_FONT = 13
Системный шрифт (используемый для большинства объектов в Windows)
WHITE_BRUSH = 0
Сплошная белая кисть
WHITE_PEN = 6
Сплошное белое перо

Пример:

' Рисуем прямоугольник с черной окантовкой
' и заполненный белым цветом
' на Form1,используя перо и кисть
Dim hbrush As Long, holdbrush As Long  ' дескрипторы к кистям
Dim hpen As Long, holdpen As Long  ' дескрипторы к перьям
Dim retval As Long  ' возвращаемое значение

' Загружаем перо и кисть,необходимые для примера
hpen = GetStockObject(BLACK_PEN)  ' черное сплошное перо
hbrush = GetStockObject(WHITE_BRUSH)  ' белая сплошная кисть
' Выбираем два объекта Form1 и сохраняем их
holdpen = SelectObject(Form1.hDC, hpen)  ' перо
holdbrush = SelectObject(Form1.hDC, hbrush)  ' кисть
' Рисуем прямоугольник с помощью пера и кисти
' с координатами (20,25)-(200,175)
retval = Rectangle(Form1.hDC, 20, 25, 200, 175)
' Восстанавливаем прежние перо и кисть для Form1
retval = SelectObject(Form1.hDC, holdpen)
retval = SelectObject(Form1.hDC, holdbrush)

Категория Устройства


Функции Windows API:GetSysColor

Функция GetSysColor

Declare Function GetSysColor Lib "user32.dll" (ByVal nIndex As Long) As Long

GetSysColor возвращает RGB-значение одного из системных цветов. Windows использует системные цвета при отображении таких элементов,как заголовок окна,меню,Рабочий стол и тому подобное

Возвращаемое значение

В успешном случае функция возвращает RGB-значение системного цвета. В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки)

Параметры
nIndex
Один из следующих флажков,определяющих системный цвет:
COLOR_3DDKSHADOW= 21
Темный теневой цвет для трехмерных объектов
COLOR_3DFACE= COLOR_BTNFACE= 15
Передний цвет для трехмерных объектов
COLOR_3DHILIGHT=COLOR_3DHIGHLIGHT=COLOR_BTNHILIGHT=COLOR_BTNHIGHLIGHT= 20
Подсветка (напротив тени) для трехмерных объектов
COLOR_3DLIGHT= 22
Цвет (напротив тени) для трехмерных объектов
COLOR_3DSHADOW=COLOR_BTNSHADOW= 16
Цвет тени для трехмерных объектов
COLOR_ACTIVEBORDER= 10
Цвет бордюра активного окна
COLOR_ACTIVECAPTION= 2
Цвет области заголовка активного окна Windows 98, 2000: Цвет левой стороны градиента области заголовка активного окна, если используется эффект градиента
COLOR_APPWORKSPACE= 12
Цвет фона многодокументной среды окна (MDI)
COLOR_BACKGROUND= COLOR_DESKTOP=1
Цвет рабочего стола
COLOR_BTNTEXT= 18
Цвет текста в кнопках
COLOR_CAPTIONTEXT= 9
Цвет текста заголовка окна, окон размера, и полей стрелки полосы прокрутки
COLOR_GRADIENTACTIVECAPTION= 27
Windows 98, 2000:Цвет правой стороны градиента области заголовка активного окна, если используется эффект градиента
COLOR_GRADIENTINACTIVECAPTION= 28
Windows 98, 2000: Цвет правой стороны градиента области заголовка неактивного окна, если используется эффект градиента
COLOR_GRAYTEXT= 17
Цвет текста,который недоступен(затемненный)
COLOR_HIGHLIGHT= 13
Цвет,используемый для выбранных элементов
COLOR_HIGHLIGHTTEXT= 14
Цвет, используемый для текста подсвеченных(выбранных) элементов
COLOR_HOTLIGHT= 26
Windows 98, 2000: Цвет выбранного элемента, который запускается с одиночным щелчком
COLOR_INACTIVEBORDER= 11
Цвет границы неактивного окна
COLOR_INACTIVECAPTION= 3
Цвет заголовка неактивного окна Windows 98, 2000: Цвет правой стороны градиента области заголовка неактивного окна, если используется эффект градиента
COLOR_INACTIVECAPTIONTEXT= 19
Цвет текста заголовка неактивного окна
COLOR_INFOBK= 24
Цвет фона для подсказки
COLOR_INFOTEXT= 23
Цвет текста для подсказки
COLOR_MENU= 4
Цвет фона для меню
COLOR_MENUTEXT= 7
Цвет текста для меню
COLOR_SCROLLBAR= 0
Цвет серой области полосы прокрутки
COLOR_WINDOW= 5
Цвет фона окна
COLOR_WINDOWFRAME= 6
Цвет рамки окна
COLOR_WINDOWTEXT= 8
Цвет текста в окне

Пример:

' Изменим цвета градиента в областях
' заголовка окон наоборот. Другими словами, лево цвет
' градиента меняем с правым цветом градиента для активных
' и неактивных окон. После замены, уведомление посылается
' всем окнам,что обеспечит немедленное изменение во всех
' окнах. Конечно, этот пример не будет работать должным
' образом в Windows 95 или Windows NT 3.1 до 4.0
' Чтобы использовать этот пример, Вы должны сначала
' разместить кнопку Command1 на форме
' *** Код для кнопки Command1 ***
Private Sub Command1_Click()
 ' Цвет левого градиента области заголовка активного окна
Dim activeLeftColor As Long
' Цвет правого градиента области заголовка активного окна
Dim activeRightColor As Long
' Цвет левого градиента области заголовка неактивного окна
Dim inactiveLeftColor As Long
' Цвет правого градиента области заголовка неактивного окна
Dim inactiveRightColor As Long
' Идентификаторы системных цветов для изменений
Dim colorNames(0 To 3) As Long
' RGB значения системных цветов для изменений
Dim colorRGBs(0 To 3) As Long
Dim retval As Long  ' возвращаемое значение
' Получаем RGB значения цветов,используемых
' в заголовках окон
activeLeftColor = GetSysColor(COLOR_ACTIVECAPTION)
activeRightColor = GetSysColor(COLOR_GRADIENTACTIVECAPTION)
inactiveLeftColor = GetSysColor(COLOR_INACTIVECAPTION)
inactiveRightColor = GetSysColor(COLOR_GRADIENTINACTIVECAPTION)
' Загружаем массивы с новыми значениями. ' Обратите внимание, как мы переключаем
' значения, используемые левой и правой сторонами этих двух градиентов
colorNames(0) = COLOR_ACTIVECAPTION
colorRGBs(0) = activeRightColor
colorNames(1) = COLOR_GRADIENTACTIVECAPTION
colorRGBs(1) = activeLeftColor
colorNames(2) = COLOR_INACTIVECAPTION
colorRGBs(2) = inactiveRightColor
colorNames(3) = COLOR_GRADIENTINACTIVECAPTION
colorRGBs(3) = inactiveLeftColor
' Заменяем системные установки цвета
retval = SetSysColors(4, colorNames(0), colorRGBs(0))
End Sub

Смотри также
SetSysColors
Категория
Системная информация


Функции Windows API:GetSystemDirectory

Функция GetSystemDirectory

Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Платформа Win 95/98, Win NT

GetSystemDirectory возвращает путь системного каталога Windows. В системном каталоге хранятся очень важные файлы,в том числе API *.dll. Этот путь,как правило "C:\Windows\System",но не забывайте,что каталог самой Windows может называться,например Win98. Путь к системному каталогу содержится в строковой переменной lpBuffer. Функция в успешном случае возвращает длину возвращаемой строки или 0 в случае ошибки

Параметры
lpBuffer
Строка,содержащая путь к системному каталогу
nSize
Длина lpBuffer в символах
Пример
' показываем путь к системному каталогу
Dim sysdir As String  ' путь к системному каталогу
Dim slength As Long  ' длина возвращаемой строки

sysdir = Space(255)  ' отводим место для получения строки в буфере
slength = GetSystemDirectory(sysdir, 255)
sysdir = Left(sysdir, slength)  ' получаем имя из буфера
Debug.Print "Путь системного каталога: "; sysdir
Схожие функции GetWindowsDirectory
Категория Системная информация


Функции Windows API:GetSystemMenu

Функция GetSystemMenu

Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long

GetSystemMenu получает дескриптор к системному меню окна. Это то, что появляется, когда щелкаешь на пиктограмме программы в области заголовка или щелкаешь в самой области заголовка правой кнопкой мыши. Как только Вы получаете дескриптор к системному меню окна, Вы можете использовать другие функции меню, чтобы добавлять или удалять пункты из него. Однако, обратите внимание, что все пункты на системном меню посылают сообщение WM_SYSCOMMAND к родительскому окну вместо обычного WM_COMMAND. В свою очередь, GetSystemMenu можно также использовать для восстановления системного меню к его заданному по умолчанию виду, удаляя любые сделанные модификации

Возвращаемое значение

Если bRevert равен 0, GetSystemMenu возвращает дескриптор системного меню. Если bRevert имеет ненулевое значение, функция возвращает 0

Параметры
hWnd
Дескриптор окна
bRevert
Если нуль, функция получает дескриптор к системному меню окна. Если отлично от нуля, функция вместо этого возвращает системное меню назад к его заданному по умолчанию виду
Пример

'Удаляем надпись Закрыть из системного меню
Dim hSysMenu As Long, nCnt As Long
' Получаем дескриптор системного меню формы Form1
 ' (Восстановить, Переместить, Свернуть и т.п.)
hSysMenu =GetSystemMenu(Me.hwnd, 0)

If hSysMenu Then
' Получим индекс системного меню
nCnt = GetMenuItemCount(hSysMenu)
 If nCnt Then
  ' индекс начинается с 0 (0, 1, 2, 3...)
     RemoveMenu hSysMenu, nCnt - 1, MF_BYPOSITION Or MF_REMOVE
       RemoveMenu, nCnt - 2, MF_BYPOSITION Or MF_REMOVE ' удаляем разделитель
   End If
 End If

Схожие функции:
GetMenu
Категория
Меню


Функции Windows API:GetSystemMetrics

Функция GetSystemMetrics

Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Платформа: Win 95/98, Win NT

GetSystemMetrics возвращает информацию относительно различных параметров в Windows. Большинство их имеет дело с размерами различных объектов(экрана, значков, курсоров, и т.д). Эта функция обеспечивает информацию относительно системы.Возвращаемое значение функции зависит от значения, указанного для nIndex. Имейте в виду, что все размеры (ширина и высота) измеряются в пикселах. Также обратите внимание, что некоторые параметры имеют слегка различные значения между Win NT и Win 95/98

nIndex
Точно один из следующих флажков, определяющих определенную часть информации:
SM_ARRANGE = 56
только для Win 95/98: Возвращает метод отображения свернутых окон. Возвращаемое значение - комбинация двух из следующих флажков, одно определяет исходную позицию для свернутых значков и другое определяет направление, в котором новые значки будут добавлены:
ARW_BOTTOMLEFT = 0
Начало позиции, помещающее значки в левой нижней части экрана
ARW_BOTTOMRIGHT = 1
Начало позиции, помещающее значки в правой нижней части экрана
ARW_DOWN = 4
Добавляет новые значки ниже существующих
ARW_HIDE = 8
Не размещает значки на экране (то есть, скрывает их)
ARW_LEFT = 0
Добавляет новые значки слева от существующих
ARW_RIGHT = 4
Добавляет новые значки справа от существующих
ARW_STARTRIGHT = 1
Аналогично ARW_BOTTOMRIGHT
ARW_STARTTOP = 2
Аналогично ARW_TOPLEFT.
ARW_TOPLEFT = 2
Начало позиции, помещающее значки в верхнем левом углу экрана
ARW_TOPRIGHT = 3
Начало позиции, помещающее значки в верхнем правом углу экрана
ARW_UP = 0
Добавляет новые значки выше существующих
SM_CLEANBOOT = 67
только для Win 95/98: Возвращает значение, определяющее, как компьютер был загружен. 0 - normal bootup, 1- fail-safe (a.k.a. SafeBoot) bootup, и 2 значит a fail-safe bootup with the network installed
SM_CMETRICS = 44
только для Win 95/98: Возвращает количество параметров системы
SM_CMOUSEBUTTONS = 43
Возвращает число кнопок на установленной мыши, или 0, если мышь не установлена
SM_CXBORDER = 5
Win NT: Возвращает ширину границы окна. Win 95/98: Возвратите ширину отдельной границы окна
SM_CXCURSOR = 13
Win NT: Возвращает ширину курсора. Win 95/98: Возвращает ширину стандартного точечного рисунка курсора
SM_CXDLGFRAME = 7
только для Win NT: Возвращает ширину рамки окна, имеющей стиль диалогового окна
SM_CXDOUBLECLK = 36
Ширина прямоугольника, в пределах которого оба щелчка мыши должны быть опознаны,как двойной щелчок
SM_CXDRAG = 68
Возвращает минимальную ширину,при которой курсор должен двигаться, чтобы начать операцию перетаскивания
SM_CXEDGE = 45
только для Win 95/98: Возвращает ширину 3D границы окна
SM_CXFRAME = 32
только для Win NT: Возвращает ширину границы окна изменяемого размера
SM_CXFULLSCREEN = 16
Возвращает ширину клиентской области полноэкранного окна
SM_CXHSCROLL = 21
только для Win 95/98: Возвращает ширину точечного рисунка стрелки на горизонтальной полосе прокрутки
SM_CXHTHUMB = 10
Возвращает ширину горизонтального бегунка полосы прокрутки
SM_CXICON = 11
Возвращает заданную по умолчанию ширину значка
SM_CXICONSPACING = 38
Win NT: Возвращает ширину ячейки для позиционирования значков. Win 95/98: Возвращает ширину ячейки сетки для элементов в виде крупных значков
SM_CXMAXIMIZED = 61
только для Win 95/98: Возвращает заданную по умолчанию ширину развернутого окна
SM_CXMAXTRACK = 59
только для Win 95/98: Возвращает заданную по умолчанию максимальную ширину,если пользователю разрешено изменять размеры окна
SM_CXMENUCHECK = 71
только для Win 95/98: Возвращает ширину заданного по умолчанию точечного рисунка метки меню
SM_CXMENUSIZE = 54
только для Win 95/98: Возвращает ширину кнопки строки меню
SM_CXMIN = 28
Возвращает минимальную ширину окна
SM_CXMINIMIZED = 57
только для Win 95/98: Возвращает ширину нормально свернутого окна
SM_CXMINSPACING = 47
только для Win 95/98: Возвращает ширину прямоугольника ячейки сетки используя позицию свернутого окна
SM_CXMINTRACK = 34
только для Win 95/98: Возвращает заданную по умолчанию минимальную ширину
SM_CXSCREEN = 0
Возвращает ширину экрана
SM_CXSIZE = 30
Win NT: Возвращает ширину точечного рисунка в заголовке. Win 95/98: Возвращает ширину кнопки заголовка
SM_CXSIZEFRAME = 32
только для Win 95/98: Возвращает ширину толстой рамки окна
SM_CXSMICON = 49
только для Win 95/98: Возвращает рекомендуемую ширину для маленьких значков
SM_CXSMSIZE = 52
только для Win 95/98: Возвращает ширину маленькой надписи кнопки
SM_CXVSCROLL = 2
только для Win 95/98: Возвращает ширину вертикальной полосы прокрутки.
SM_CYBORDER = 6
Win NT: Возвращает высоту границы окна. Win 95/98: Возвращает высоту отдельной границы окна
SM_CYCAPTION = 4
Возвращает высоту нормальной области надписи
SM_CYCURSOR = 14
Win NT: Возвращает высоту курсора. Win 95/98: Возвращает высоту стандартного точечного рисунка курсора
SM_CYDLGFRAME = 8
только для Win NT: Возвращает высоту рамки окна, имеющей стиль диалога
SM_CYDOUBLECLK = 37
Возвращает высоту прямоугольника, в пределах которого оба щелчка мыши должны быть опознаны как двойной щелчок
SM_CYDRAG = 69
Возвращает минимальную высоту,на которую курсор должен сдвинуться, чтобы начать операцию перетаскивания
SM_CYEDGE = 46
только для Win 95/98: Возвращает высоту трехмерной границы окна
SM_CYFRAME = 33
только для Win NT: Возвращает высоту границы окна изменяемого размера
SM_CYFULLSCREEN = 17
Возвращает высоту клиентской области полноэкранного окна
SM_CYHSCROLL = 3
только для Win 95/98: Возвращает высоту горизонтальной полосы прокрутки
SM_CYICON = 12
Возвращает заданную по умолчанию высоту значка
SM_CYICONSPACING = 39
Win NT: Возвращает высоту ячейки для позиционирования значков.Win 95/98: Возвращает высоту ячейки сетки для элементов в представлении в виде крупных значков
SM_CYKANJIWINDOW = 18
Возвращает высоту окна Kanji (для версий набора символов с двойным байтом Windows)
SM_CYMAXIMIZED = 62
только для Win 95/98: Возвращает заданную по умолчанию высоту развернутого окна
SM_CYMAXTRACK = 60
только для Win 95/98: Возвращает заданную по умолчанию максимальную высоту,если пользователю позволено изменять размеры окна
SM_CYMENU = 15
Возвращает высоту отдельной строки меню
SM_CYMENUCHECK = 72
только для Win 95/98: Возвращает высоту заданного по умолчанию точечного рисунка метки меню
SM_CYMENUSIZE = 55
только для Win 95/98: Возвращает высоту кнопки строки меню
SM_CYMIN = 29
Возвращает минимальную высоту окна
SM_CYMINIMIZED = 58
только для Win 95/98: Возвращает высоту нормально свернутого окна
SM_CYMINSPACING = 48
только для Win 95/98: Возвращает высоту прямоугольника ячейки сетки используемой для позиционирования свернутых окон
SM_CYMINTRACK = 35
только для Win 95/98: Возвращает заданную по умолчанию минимальную высоту, если пользователю позволено изменять размеры окна
SM_CYSCREEN = 1
Возвращает высоту экрана
SM_CYSIZE = 31
Win NT: Возвращает высоту точечного рисунка области заголовка. Win 95/98: Возвращает высоту надписи кнопки
SM_CYSIZEFRAME = 33
только для Win 95/98: Возвращает высоту толстой рамки окна
SM_CYSMCAPTION = 51
только для Win 95/98: Возвращает высоту маленькой области заголовка
SM_CYSMICON = 50
только для Win 95/98: Возвращает рекомендуемую высоту для маленьких значков
SM_CYSMSIZE = 53
только для Win 95/98: Возвращает высоту кнопки маленькой надписи
SM_CYVSCROLL = 20
только для Win 95/98: Возвращает высоту точечного рисунка стрелки на вертикальной полосе прокрутки
SM_CYVTHUMB = 9
Возвращает высоту вертикального бегунка полосы прокрутки
SM_DBCSENABLED = 42
Возвращает ненулевое значение, если версия набора символов с двойным байтом USER.EXE установлена, 0 если нет
SM_DEBUG = 22
Возвращает ненулевое значение, если версия отладки USER.EXE установлена, 0 если нет
SM_MENUDROPALIGNMENT = 40
Возвращает ненулевое значение, если всплывающие меню появляются справа, 0 если слева
SM_MIDEASTENABLED = 74
Возвращает ненулевое значение, если система использует еврейские и арабские языки, 0 если нет
SM_MOUSEPRESENT = 19
Возвращает ненулевое значение, если мышь установлена и присутствует, 0 если нет
SM_NETWORK = 63
Установка &H1 бит возвращаемого значения, если сеть установлена. Все другие биты возвращаемого значения зарезервированы и неопределенны
SM_PENWINDOWS = 41
Return a non-zero value if the Microsoft Windows for Pen computing extensions are installed, 0 if not
SM_SECURE = 44
Возвращает ненулевое значение, если защита присутствует и активна, 0 если нет
SM_SHOWSOUNDS = 70
Возвращает ненулевое значение, если приложение показывает визуальную команду вызова программы для всех звуков, 0 если нет
SM_SLOWMACHINE = 73
Возвращает ненулевое значение, если система имеет медленный процессор, 0 если нет
SM_SWAPBUTTON = 23
Возвращает ненулевое значение, если левые и правые кнопки мыши поменялись, 0 если нет

Пример:

' Отобразим разрешающую способность (размер) экрана и некоторую информацию относительно
' конфигурации окон.
Dim xres As Long, yres As Long  ' получим расширения экрана x и y
Dim hasmouse As Long, numbuttons As Long  ' Узнаем,присутствует ли мышка и число ее кнопок

' Отобразим разрешение экрана - то есть, ширину и высоту экрана.
xres = GetSystemMetrics(SM_CXSCREEN)
yres = GetSystemMetrics(SM_CYSCREEN)
Debug.Print "Экран имеет "; xres; "пикселов в ширину и "; yres; "пикселов в высоту."

' Отобразим число кнопок на мыши, если мышь присутствует.
hasmouse = GetSystemMetrics(SM_MOUSEPRESENT)
numbuttons = GetSystemMetrics(SM_CMOUSEBUTTONS)
If hasmouse = 0 Then
  Debug.Print "Мышь не установлена."
Else
  Debug.Print "Мышь с "; numbuttons; "кнопками."
End If

Схожие функции: SystemParametersInfo
Категория Доступ к параметрам системы


Функции Windows API:GetSystemTime

Процедура GetSystemTime

Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)

GetSystemTime возвращает текущее системные дату и время и передает эти значения структуре SYSTEMTIME. Время всегда показывается по Гринвичу,а не местное время

Параметры
lpSystemTime
Получает текущее системные дату и время
Пример

' Показываем текущее время от нулевого меридиана
Dim utctime As SYSTEMTIME

GetSystemTime utctime
Debug.Print "Время по Гринвичу"; utctime.wHour; ":"; utctime.wMinute; ":"; utctime.wSecond

Схожие функции
GetLocalTime, GetSystemTimeAsFileTime, SetSystemTime
Категория
Время


Функции Windows API:GetTempPath

Функция GetTempPath

Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Платформа: Win 95/98, Win NT

GetTempPath определяет временную папку Windows по умолчанию. Временная папка-это место,где создаются временные файлы,используемые различными программами в некоторых целях.Как правило,временной папкой служит C:\Windows\Temp . Путь к папке передается в переменную строку lpBuffer. Функция возвращает длину строки,возвращенной функцией в успешном случае и 0 в случае ошибки

nBufferLength
Длина в символах lpBuffer
lpBuffer
Строка,содержащая путь к временной папке

Пример:

' Определяем путь временной папки
Dim temppath As String  ' имя пути временной папки
Dim slength As Long  ' длина строки для пути

' Определяем путь для временных файлов
temppath = Space(255)  ' создаем буфер для пути
slength = GetTempPath(255, temppath)  ' узнаем путь
temppath = Left(temppath, slength)  ' извлекаем данные из переменной

Debug.Print "Имя временной папки: "; temppath

Схожие функции: GetTempFileName
Категория Системная информация


Функции Windows API:GetTickCount

Функция GetTickCount

Declare Function GetTickCount Lib "kernel32" () As Long

GetTickCount возвращает время,истекшее с последней загрузки Windows в миллисекундах

Пример

' Определяем,сколько времени прошло с последней загрузки Window
Dim retval as Long  'возвращаемое значение
'Полученное значение преобразуем в минуты
    retval = GetTickCount
    MsgBox Str$(retval / 60000) + " минут."

Категория
Время


Функции Windows API:GetTopWindow

Функция GetTopWindow

Declare Function GetTopWindow Lib "user32" (ByVal hwnd As Long) As Long

Платформа:

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается

GetTopWindow возвращает дескриптор текущего активного дочернего окна.Активное дочернее окно-окно,имеющее фокус и находящееся,обычно,поверх остальных дочерних окон в Z-порядке. Эта функция работает,даже если родительское окно не активно. Функция идентична функции GetWindow с использованием параметра GW_CHILD

Возвращаемое значение
В случае ошибки или если окно не имеет дочерних окон, функция возвращает Null (используйте GetLastError для получения кода ошибки).В успешном случае функция возвращает дескриптор текущего активного дочернего окна

Параметры
hwnd
Дескриптор родительского окна.Функция должна возвратить его активное дочернее окно

Пример:

' Блокируем кнопку,
' являющейся активным дочерним окном формы
' Для примера создайте на форме две кнопки
Dim active As Long  ' дескриптор родительского окна(т.е формы)
Dim retval As Long  ' возвращаемое значение

active = GetTopWindow(Form1.hWnd)  ' получим дескриптор дочернего окна,т.е кнопки
If active <> 0 Then
  ' Отключаем кнопку
  retval = EnableWindow(active, 0)
End If

Схожие функции: GetNextWindow,GetWindow
Категория Окна


Функции Windows API:GetUserName

Функция GetUserName

Declare Function GetUserName Lib "advapi32" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Платформа Win 95/98, Win NT

GetUserName возвращает имя пользователя. Имя пользователя содержится в строке lpBuffer. Фукция также передает размер возвращаемой строки в переменную nSize. Функция возвращает 0 в случае ошибки, и значение,отличное от нуля в успешном случае

Параметры
lpBuffer
Строка,содержащая имя пользователя
nSize
Длина строки,передаваемой функции
Пример
Dim username As String  ' имя пользователя
Dim slength As Long  ' длина строки
Dim retval As Long  ' возвращаемое значение

 ' отводим место для получения строки в буфере
username = Space(255)
slength = 255
' получаем имя пользователя
 ' slength сейчас является длиной возвращаемой строки
retval = GetUserName(username, slength)
' извлекаем информацию из буфера,отбрасывая Null
username = Left(username, slength - 1)

Debug.Print "Имя пользователя "; username
Категория Системная информация


Функции Windows API:GetVersion

Функция GetVersion

Declare Function GetVersion Lib "kernel32" () As Long

GetVersion возвращает текущий номер версии операционной системы.Функция является устаревшей.Новые приложения должны использовать GetVersionEx или VerifyVersionInfo.Функция не имеет параметров

Пример:

' Определяем текущий номер версии операционной системы.

Public Function GetWinVersion() As String
    Dim Ver As Long, WinVer As Long
    Ver = GetVersion()
    WinVer = Ver And &HFFFF&
    'получаем номер версии
    GetWinVersion = Format((WinVer Mod 256) + ((WinVer \ 256) / 100), "Fixed")
End Function
Private Sub Form_Load()
       MsgBox "Windows version: " + GetWinVersion
End Sub

Схожие функции
GetVersionEx, VerifyVersionInfo
Категория Системная информация


Функции Windows API:GetVersionEx

Функция GetVersionEx

Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long

Платформа: Win 95/98, Win NT

GetVersionEx определяет тип операционной системы,номерах основной и дополнительной версий,номере сборки и Service Pack.Информация о версии передается в переменную lpVersionInformation.Функция возвращает 0 в случае ошибки,и 1 в успешном случае

lpVersionInformation
Информация о версии операционной системы Windows

Пример:

' Определяем номера основной,  дополнительной версий Windows и номер сборки

Dim os As OSVERSIONINFO  ' информация о версии
Dim retval As Long  'возвращаемое значение

os.dwOSVersionInfoSize = Len(os)  ' устанавливаем размер структуры
retval = GetVersionEx(os)  ' читаем информацию о версии Windows
Debug.Print "Версия Windows:"; os.dwMajorVersion; "."; os.dwMinorVersion; os.dwBuildNumber

Схожие функции
GetVersion, VerifyVersionInfo
Категория Системная информация


Функции Windows API:GetVolumeInformation

Функция GetVolumeInformation

Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Платформа:

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

GetVolumeInformation определяет серийный номер,метку диска и его файловую систему.Если Вы пытаетесь получить информацию относительно дисковода для гибких дискет, который не имеет гибкого диска или CD-ROM,в котором нет компакт-диска, система отображает окно с сообщением,что нужно вставить гибкий диск или компакт-диск. Чтобы предотвратить систему от отображения этого окна сообщений, вызовите функцию SetErrorMode с SEM_FAILCRITICALERRORS.В случае ошибки,функция возвращает 0(используйте GetLastError для получения кода ошибки),в успешном случае функция возвращает значение отличное от 0

Параметры
lpRootPathName
Корневой каталог диска,например "c:\" или "a:\"
lpVolumeNameBuffer
Буфер, который получает имя указанного диска
nVolumeNameSize
Длину буфера в символах. Этот параметр игнорируется, если буфер пуст
lpVolumeSerialNumber
Указатель на переменную, которая получает серийный номер диска. Этот параметр может быть НУЛЕВОЙ(NULL), если серийный номер не требуется.Windows 95/98: Если диск является сетевым- серийный номер не будет возвращен
lpMaximumComponentLength
Переменная, которая получает максимальную длину в символах компонента имени файла, поддержанного указанной файловой системой. Компонент имени файла - та часть имени файла между наклонными чертами влево. Значение, сохраненное в переменной, указанной lpMaximumComponentLength используется, чтобы указать, что длинные имена поддерживаются указанной файловой системой. Например, для файловой системы FAT, поддерживающей длинные имена, функция сохраняет значение 255, скорее чем предыдущие 8.3 . Длинные имена могут также поддерживаются
lpFileSystemFlags
Переменная, которая получает флажки, связанные с указанной файловой системой. Возможны любые комбинации следующих флажков; однако, FS_FILE_COMPRESSION и FS_VOL_IS_COMPRESSED взаимоисключающий: FS_CASE_IS_PRESERVED The file system preserves the case of file names when it places a name on disk. FS_CASE_SENSITIVE The file system supports case-sensitive file names. FS_UNICODE_STORED_ON_DISK The file system supports Unicode in file names as they appear on disk. FS_PERSISTENT_ACLS The file system preserves and enforces ACLs. For example, NTFS preserves and enforces ACLs, and FAT does not. FS_FILE_COMPRESSION The file system supports file-based compression. FS_VOL_IS_COMPRESSED The specified volume is a compressed volume; for example, a DoubleSpace volume. FILE_NAMED_STREAMS The file system supports named streams. FILE_SUPPORTS_ENCRYPTION The file system supports the Encrypted File System (EFS). FILE_SUPPORTS_OBJECT_IDS The file system supports object identifiers. FILE_SUPPORTS_REPARSE_POINTS The file system supports reparse points. FILE_SUPPORTS_SPARSE_FILES The file system supports sparse files. FILE_VOLUME_QUOTAS The file system supports disk quotas.
lpFileSystemNameBuffer
Указатель на буфер, который получает название файловой системы (типа FAT или NTFS).
nFileSystemNameSize
Определяет длину в символах буфера названий файловых систем. Этот параметр игнорируется, если буфер названий файловых систем не указан

Пример:

  Dim Serial As Long, VName As String, FSName As String
VName = String$(255, Chr$(0))
FSName = String$(255, Chr$(0))
'получаем информацию о диске
GetVolumeInformation "C:\", VName, 255, Serial, 0, 0, FSName, 255
    'Strip the extra chr$(0)'s
    VName = Left$(VName, InStr(1, VName, Chr$(0)) - 1)
    FSName = Left$(FSName, InStr(1, FSName, Chr$(0)) - 1)
Debug.Print "Имя диска "; VName
Debug.Print "Файловая система "; FSName
Debug.Print "Серийный номер диска "; Trim(Str$(Serial))

Категория Системная информация


Функции Windows API:GetWindow

Функция GetWindow

Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

GetWindow возвращает дескриптор окна, связанного с данным окном. Имеются ввиду отношения между дочерне - родительскими окнами или отношения между дочерними окнами самого родительского окна. Точное отношение определено переменной wCmd. В случае ошибки или если не имеется никакого окна, имеющего указанное отношение, функция возвращает 0

Параметры
hwnd
Дескриптор первого окна.
wCmd
Точно один из следующих флажков, определяющих отношения между возвращенным окном и данным окном:
GW_HWNDFIRST = 0
Самое первое окно в Z-order, имеющем того же самого родителя, как и данное окно
GW_HWNDLAST = 1
Самое последнее окно в Z-order, имеющем того же самого родителя, как и данное окно
GW_HWNDNEXT = 2
Окно ниже данного окна в Z-order
GW_HWNDPREV = 3
Окно выше данного окна в Z-order
GW_OWNER = 4
Окно, которое имеет данное окно (чтобы не быть перепутанным с родительским окном)
GW_CHILD = 5
Самый верхний из дочерних окон данного окна. Это имеет тот же самый эффект как использование функции GetTopWindow

Пример:

' Заставим мигнуть окно приложения, которое является ниже Form1 в Z-order
Dim nextwin As Long  ' получим дескриптор следующего окна в Z-order
Dim retval As Long  ' дескриптор для мигающего окна

nextwin = GetWindow(Form1.hWnd, GW_HWNDNEXT)  'получаем дескриптор следующего окна
If nextwin <> 0 Then   ' не используйте флажки, если никакого такого окна не существует
  ' Следующие три строки помечают окно однажды
  retval = FlashWindow(nextwin, 1): Sleep 250
  retval = FlashWindow(nextwin, 1): Sleep 250
  retval = FlashWindow(nextwin, 0)
End If

Схожие функции: GetActiveWindow, GetTopWindow
Категория Окна


Функции Windows API:GetWindowRect

Функция GetWindowRect

Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

GetWindowRect читает размер и позицию окна. Эта информация помещена в переменную lpRect. Прямоугольник получает координаты левых верхних и нижних правых углов окна. Функция возвращает 0 в случае ошибки, или 1 в успешном случае

hwnd
Дескриптор окна для чтения позиции и размера окна
lpRect
Переменная, которая получает координаты левых верхних и нижних правых углов окна

Пример:

'  Отобразим ширину и высоту окна Form1
'  ширина и высота могут быть рассчитаны от координат, возвращенных в прямоугольнике.
Dim winrect As RECT  ' получаем прямоугольник окна
Dim retval As Long  ' возвращаемое значение

retval = GetWindowRect(Form1.hWnd, winrect)  ' устанавливаем winrect равным прямоугольнику окна Form1
Debug.Print "Ширина ="; winrect.Right - winrect.Left
Debug.Print "Высота ="; winrect.Bottom - winrect.Top

Схожие функции: MoveWindow, SetWindowPos
Категория Окна


Функции Windows API:GetWindowsDirectory

Функция GetWindowsDirectory

Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Платформа Win 95/98, Win NT

GetWindowsDirectory возвращает путь к папке Windows. Обычно,это "C:\Windows",но может быть,например "D:\win98". Путь передается в строковую переменную lpBuffer. Функция в успешном случае возвращает длину возвращаемой строки или 0 в случае ошибки

lpBuffer
Строка,содержащая путь к папке Windows
nSize
Длина lpBuffer в символах
Пример
' Показывем путь папки Windows
Dim windir As String  ' получаем путь папки Windows
Dim slength As Long  ' получаем длину возвращаемой строки

windir = Space(255)   ' отводим место для получения строки в буфере
slength = GetWindowsDirectory(windir, 255)  ' узнаем путь папки
windir = Left(windir, slength)   ' получаем имя из буфера
Debug.Print "Папки Windows: "; windir
Схожие функции
GetSystemDirectory
Категория
Системная информация


Функции Windows API:GetWindowText

Функция GetWindowText

Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Платформа: Win 95/98, Win NT

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

hwnd
Дескриптор окна
lpString
Переменная строка,содержащая текст заголовка окна
cch
Длина в символах lpString

Пример:

' Читаем текст заголовка формы Form1
Dim titlebar As String  ' текст заголовка
Dim slength As Long  ' длина возвращаемой строки

titlebar = String$(256, " ")  ' создаем место для текста и нулевого символа
slength = GetWindowText(Form1.hWnd, titlebar, 255)  ' получаем текст заголовка
titlebar = Left$(titlebar, InStr(titlebar, vbNullChar) - 1)  ' извлекаем информацию из буфера
Debug.Print "Заголовок окна: "; titlebar

Схожие функции: GetWindowTextLength, SetWindowText
Категория Окна


Функции Windows API:GetWindowTextLength

Функция GetWindowTextLength

Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

GetWindowTextLength возвращает длину в символах текста в заголовке окна,если таковой имеется.Если окно является элементом управления,функция возвращает длину его текста. В случае ошибки функция возвращает 0

hwnd
Дескриптор окна,в котором находится заголовок

Пример:

' Вычисляем длину заголовка формы Form1
Dim textlen As Long  ' длина заголовка

' вычисляем количество символов в заголовке
textlen = GetWindowTextLength(Form1.hWnd)

Debug.Print "Длина заголовка: "; textlen

Схожие функции: GetWindowText
Категория Окна


Функции Windows API:InflateRect

Функция InflateRect

Declare Function InflateRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

InflateRect увеличивает или уменьшает размер прямоугольника. Значения для изменений добавлены к обеим его сторонам, так что в действительности ширина и\или высота увеличений прямоугольника двойное. Например, если Вы передаете 20 как x, левые и правые стороны будут оба расширены на 20, так что ширина будет увеличена на 40. Положительные значения увеличивают размер, в то время как отрицательные значения уменьшают это. Функция возвращает 0 в случае ошибка или 1 в успешном случае

lpRect
Прямоугольник, чтобы изменить размер
x
Значение для расширения левой и правой сторон. Положительные значения увеличивают ширину; отрицательные значения уменьшают
y
Значение для изменений верхней и нижней границ. Положительные значения увеличивают высоту; отрицательные значения уменьшают

Пример:

' Увеличим  ширину окна Form1  на 100, и сократим ее
' высоту на 50 используя ее прямоугольник.
Dim winrect As RECT  ' получим прямоугольник окна
Dim retval As Long  ' возвращаемое значение

retval = GetWindowRect(Form1.hWnd, winrect)  'получаем прямоугольник  Form1
retval = InflateRect(winrect, 50, -25)  ' Эти значения, добавленные к каждой стороне для изменения размеров
' Теперь измените окно на экране, чтобы соответствовать его новому прямоугольнику
retval = SetWindowPos(Form1.hWnd, 0, winrect.Left, winrect.Top, winrect.Right, winrect.Bottom, 0)

Схожие функции: OffsetRect
Категория: Прямоугольники


Функции Windows API:IntersectRect

Функция IntersectRect

Declare Function IntersectRect Lib "user32" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long

Платформа: Win 95/98, Win NT

IntersectRect создает прямоугольник, основанный на пересекающейся части двух других прямоугольников. Прямоугольная область(регион), где два исходных прямоугольника,перекрывая,создают перекрестный прямоугольник. Если один или оба из исходных прямоугольников пуст или не имеется никакого пересечения, функция возвращает 0, и прямоугольник lpDestRect установлен в (0,0) - (0,0). Если исходные прямоугольники накладываются, пересечение помещено в lpDestRect, и функция возвращает 1

lpDestRect
Прямоугольник, который будет установлен как пересечение из двух исходных прямоугольников
lpSrc1Rect
Первый исходный прямоугольник
lpSrc2Rect
Второй исходный прямоугольник

Пример:

' Определим, накладываются ли окна Form1 и Form2 на
' экране. Если нет,то перекрестный прямоугольник будет пуст.
Dim intrect As RECT  'Получим перекрестный прямоугольник
Dim window1 As RECT, window2 As RECT  ' Получим прямоугольники Form1 и Form2
Dim result As Long  'будет установлен в 0, если нет никакого пересечения или в 1, если имеется пересечение
Dim retval As Long  ' возвращаемое значение для других функций

retval = GetWindowRect(Form1.hWnd, window1)  ' Получим прямоугольник Form1
retval = GetWindowRect(Form2.hWnd, window2)  'Получим прямоугольник Form2
result = IntersectRect(intrect, window1, window2)  ' Определяем перекрестный прямоугольник
If result = 0  Then
  Debug.Print "Окна Form1 и Form2 не накладываются на экране."
Else
  Debug.Print "Окна Form1 и Form2 накладываются на экране."
End If

Схожие функции: SubtractRect, UnionRect
Категория: Прямоугольники


Функции Windows API:InvertRect

Функция InvertRect

Declare Function InvertRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

InvertRect инвертирует изображение внутри прямоугольной области на устройстве. Перевернутые цвета рассчитаны,исходя из двоичного NOT значения RGB цвета каждого пиксела внутри прямоугольника. Функция возвращает ненулевое значение в успешном случае, или 0 в случае ошибки.

hdc
Контекст устройства на устройстве, чтобы инвертировать цвета в данном прямоугольнике
lpRect
Прямоугольник для инвертирования

Пример:

' Инвертируем цвета в прямоугольнике (20,30) - (150,100) на окне Form1.
Dim winrect As RECT  ' прямоугольник
Dim retval As Long  ' возвращаемое значение

retval = SetRect(winrect, 20, 30, 150, 100)   ' устанавливаем winrect в (20,30)-(150,100)
retval = InvertRect(Form1.hDC, winrect)   ' инвертируем пикселы в пределах прямоугольника

Схожие функции: InvertRgn
Категория: Прямоугольники


Функции Windows API:InvertRgn

Функция InvertRgn

Declare Function InvertRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long) As Long

Платформа: Win 95/98, Win NT

InvertRgn инвертирует цвета всех пикселов внутри области устройства. Инверсия пикселов рассчитывается с помощью двоичной операции NOT на значении RGB цвета каждого пиксела. Функция возвращает 0 в случае ошибки, или ненулевое значение в успешном случае

hdc
Контекст устройства на устройстве, чтобы инвертировать пикселы в пределах области
hRgn
Дескриптор к области на устройстве для инвертирования

Пример:

' Инвертируем пикселы в пределах  области эллипса на окне Form1.
' Область имеет ограничительный прямоугольник (20,30) - (150,110).
Dim hrgn As Long  ' дескриптор области
Dim retval As Long  ' возвращаемое значение

' Создаем  область-эллипс , чтобы инвертировать и получить дескриптор.
hrgn = CreateEllipticRgn(20,30,150,110) ' ограничительный прямоугольник (20,30)-(150,110)
' инвертируем эту область в окне Form1.
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем область для освобождения ресурсов системы.
retval = DeleteObject(hrgn)

Схожие функции: InvertRect
Категория: Регионы


Функции Windows API:IsCharLower

Функция IsCharLower

Declare Function IsCharLower Lib "user32" Alias "IsCharLowerA" (ByVal cChar As Byte) As Long

IsCharLower определяет является ли символ нижним регистром. Это определение основано на семантике языка выбранного пользователем во время установки или через Панель Управления

Возвращаемое значение

Если символ является нижним регистром, функция возвращает значение,отличное от нуля,если символ не является нижним регистром,функция возвращает 0 (используйте GetLastError для получения кода ошибки)

Параметры
cChar
Определяет символ, который нужно тестировать
Пример

' Определяем,является ли первая буква строки "русский_проект."
'нижним регистром

Dim mystring As String  ' строка для тестирования
mystring = "русский_проект"

' определяем регистр первого символа строки
If IsCharLower(Asc(mystring)) = 0 Then
    MsgBox "Верхний регистр"
   Else
    MsgBox "Нижний регистр"
End If

Схожие функции
IsCharUpper
Категория
Строки


Функции Windows API:IsCharUpper

Функция IsCharUpper

Declare Function IsCharUpper Lib "user32" Alias "IsCharUpperA" (ByVal cChar As Byte) As Long

IsCharLower определяет является ли символ верхним регистром. Это определение основано на семантике языка выбранного пользователем во время установки или через Панель Управления

Возвращаемое значение

Если символ является верхним регистром, функция возвращает значение,отличное от нуля,если символ не является нижним регистром,функция возвращает 0 (используйте GetLastError для получения кода ошибки)

Параметры
cChar
Определяет символ, который нужно тестировать
Пример

' Определяем,является ли первая буква строки "Русский_проект."
'верхним регистром

Dim mystring As String  ' строка для тестирования
mystring = "Русский_проект"

' определяем регистр первого символа строки
If IsCharUpper(Asc(mystring)) = 0 Then
    MsgBox "Нижний регистр"
   Else
    MsgBox "Верхний регистр"
End If

Схожие функции
IsCharLower
Категория
Строки


Функции Windows API:IsChild

Функция IsChild

Declare Function IsChild Lib "user32" (ByVal hWndParent As Long, ByVal hWnd As Long) As Long

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

Параметры
hWndParent
Дескриптор кандидата на окно родителя
hWnd
Дескриптор кандидата на дочернее окно
Пример

' Демонстрация родительско - дочерних отношений
' Кнопка Command1 на окне Form1, является дочерним к
' Form1. Однако, окно Form2 - не является дочерним к Form1.
Dim retval As Long  ' возвращаемое значение

' Проверим,является ли Command1дочерним окном к  Form1.
retval = IsChild(Form1.hWnd, Command1.hWnd)
If retval = 0 Then
  Debug.Print "Form1 не является родительским для Command1."
Else
  Debug.Print "Form1 является родительским для Command1."
End If

' Проверим,является ли Form2 дочерним окном для Form1.
retval = IsChild(Form1.hWnd, Form2.hWnd)
If retval = 0 Then
  Debug.Print "Form1 не является родительским для Form2."
Else
  Debug.Print "Form1 является родительским для Form2."
End if

Схожие функции
IsWindow, SetParent
Категория
Окна


Функции Windows API:IsIconic

Функция IsIconic

Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

IsIconic находит, свернуто ли данное окно или нет. Функция возвращает 0, если окно не свернуто; или возвращает ненулевое значение, если окно свернуто

hwnd
Дескриптор окна, чтобы определить- свернуто или нет

Пример:

' Определяем, развернуто ли окно Form1, свернуто, или восстановлено.
Dim minflag As Long, maxflag As Long  ' узнаем состояние(свернутое или развернутое)

minflag = IsIconic(Form1.hWnd)  ' Form1 свернуто?
maxflag = IsZoomed(Form1.hWnd)  ' Form1 развернуто?
If minflag <> 0 Then
  Debug.Print "Form1 свернуто."
Elseif maxflag <> 0 Then
  Debug.Print "Form1 развернуто"
Else
  Debug.Print "Form1 восстановлено."
End If

Схожие функции: IsZoomed, ShowWindow
Категория: Окна


Функции Windows API:IsRectEmpty

Функция IsRectEmpty

Declare Function IsRectEmpty Lib "user32" (lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

IsRectEmpty выясняет,пуст ли прямоугольник . Прямоугольник считается пустым, если его правый край не находится справа от его левого края, и-или его край основания не ниже его высшего края. Например, прямоугольник (50,50) - (25,100) пуст, потому что правый край - слева от левого края. Функция возвращает 1, если прямоугольник пуст и 0, если - нет

lpRect
Прямоугольник для проверки

Пример:

' Определим, накладываются ли окна Form1 и Form2
' Если нет,то перекрестный прямоугольник будет пуст.
Dim intrect As RECT  ' получим перекрестный прямоугольник
Dim window1 As RECT, window2 As RECT  ' получим прямоугольники Form1 и Form2
Dim isempty As Long  ' будет установлен в 0, если пересечение не пусто и 1, если нет
Dim retval As Long  ' возвращаемое значение для других функций

retval = GetWindowRect(Form1.hWnd, window1)  ' Получаем прямоугольник Form1
retval = GetWindowRect(Form2.hWnd, window2)  ' Получаем прямоугольник Form2
retval = IntersectRect(intrect, window1, window2)  ' определим перекрестный прямоугольник
isempty = IsRectEmpty(intrect)  ' определите, является ли он пустым -он будет таким, если не имеется никакого пересечения
If isempty = 0  Then 'В этом случае, перекрестный прямоугольник будет также пуст
  Debug.Print "Окна Form1 и Form2  накладываются на экране."
Else
  Debug.Print "Окна Form1 и Form2 не накладываются на экране."
End If

Схожие функции: SetRectEmpty
Категория: Прямоугольники


Функции Windows API:IsWindow

Функция IsWindow

Declare Function IsWindow Lib "user32" (ByVal hWnd As Long) As Long

IsWindow определяет, относится ли данный дескриптор к окну или нет

Возвращаемое значение

Если дескриптор не относится к окну, функция возвращает 0. Если дескриптор относится к окну, функция возвращает ненулевое значение

Параметры
hWnd
Дескриптор, чтобы проверить,относится он к окну или нет
Пример

' Определим,относятся ли дескрипторы к окну или нет.
Dim hWindow As Long  ' дескриптор к окну(Form1)
Dim hPen As Long  ' дескриптор пера
Dim result As Long  ' результат тестирования

' Инициализируем два дескриптора.
hWindow = Form1.hWnd  ' hWindow теперь соответствует дескриптору окна Form1
hPen = GetStockObject(BLACK_PEN)  ' hPen относится к перу
' Проверяем, что hWindow относится к окну.
result = IsWindow(hWindow)
If result = 0 Then
  Debug.Print "hWindow не относится к окну."
Else
  Debug.Print "hWindow относится к окну."
End If
' Относится ли hPen к окну.
result = IsWindow(hPen)
If result = 0 Then
  Debug.Print "hPen не относится к окну."
Else
  Debug.Print "hPen относится к окну."
End If

Схожие функции
IsChild
Категория
Окна


Функции Windows API:IsWindowEnabled

Функция IsWindowEnabled

Declare Function IsWindowEnabled Lib "user32" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

IsWindowEnabled определяет, доступно ли окно в настоящее время или заблокировано. Если окно заблокировано, оно не может получать фокус и игнорирует любой предпринятый ввод. Многие окна, типа кнопок и других средств управления, будут казаться недоступными, когда заблокированы. Функция возвращает 0, если окно заблокировано, или ненулевое значение, если окно доступно

hwnd
Дескриптор окна, чтобы определить, доступно ли оно или заблокировано

Пример:

' Изменим состояние окна Command1. Если окно
' заблокировано,делаем  доступным; если доступно,блокируем его.
Dim wasenabled As Long  ' Получаем состояние Command1

' Получаем состояние Command1(доступно или нет)
wasenabled = IsWindowEnabled(Command1.hWnd)
If wasenabled = 0 Then  ' Если не не доступно
  MsgBox "Кнопка не доступна"
Else  ' и наоборот
  MsgBox "Кнопка доступна"
End If

Схожие функции: EnableWindow
Категория: Окна


Функции Windows API:IsZoomed

Функция IsZoomed

Declare Function IsZoomed Lib "user32" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

IsZoomed находит, развернуто ли данное окно или нет. Функция возвращает 0, если окно не развернуто (это могло бы быть или восстановлено или свернуто); или возвращает ненулевое значение, если окно развернуто

hwnd
Дескриптор окна, чтобы узнать- развернуто или нет

Пример:

' Определяем, развернуто ли окно Form1, свернуто, или восстановлено.
Dim minflag As Long, maxflag As Long  ' узнаем состояние(свернутое или развернутое)

minflag = IsIconic(Form1.hWnd)  ' Form1 свернуто?
maxflag = IsZoomed(Form1.hWnd)  ' Form1 развернуто?
If minflag <> 0 Then
  Debug.Print "Form1 свернуто."
Elseif maxflag <> 0 Then
  Debug.Print "Form1 развернуто"
Else
  Debug.Print "Form1 восстановлено"
End If

Схожие функции: IsIconic, ShowWindow
Категория: Окна


Функции Windows API:keybd_event

Процедура keybd_event

Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Платформа
  • Windows 95: Поддерживает.
  • Windows 98: Поддерживает,но устарела;пользуйтесь SendInput.
  • Windows NT: Требуется Windows NT 3.1 или выше,но устарела для Windows NT 4.0 с Service Pack 3 (SP3) или выше;пользуйтесь SendInput.
  • Windows 2000: Поддерживает,но устарела;пользуйтесь SendInput.
  • Windows CE: Требуется Windows CE 1.0 или выше,но устарела для Windows CE 2.0 или выше; пользуйтесь SendInput.

keybd_event имитирует нажатия клавиш на клавиатуре

keybd_event не является функцией и не возвращает никаких значений.

Параметры
bVk
Виртуальный код клавиши для имитации нажатия и отпускания клавиши.
bScan
Зарезервировано -- установлено в 0
dwFlags
Комбинация следующих флагов определяет различные способы имитации:
KEYEVENTF_EXTENDEDKEY
Префикс скэн-кода с префиксным байтом, имеющим значение &HE0
KEYEVENTF_KEYUP
Клавиша, указанная в bVk будет отпущена. Если этот флажок не определен, клавиша будет нажата
dwExtraInfo
Дополнительное 32-разрядное значение, связанное с событием клавиатуры
Константы

Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2

Пример

' Имитируем нажатия клавиш CTRL+ESC для нажатия кнопки Пуск

keybd_event VK_CONTROL, 0, 0, 0  ' нажимаем CTRL
keybd_event VK_ESCAPE, 0, 0, 0  ' нажимаем ESC
keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0  ' отпускаем CTRL
keybd_event VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0  ' отпускаем ESC

Схожие функции mouse_event, SendInput
Категория Клавиатура


Функции Windows API:LineTo

Функция LineTo

Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

LineTo рисует линию из текущей точки в другую точку на устройстве. Линия рисуется цветом,определяемым свойством ForeColor формы или PictureBox. После вывода линии,конечная точка становится новой текущей точкой для новой линии.В случае ошибки возвращается 0,в успешном случае возвращается 1

hdc
Контекст устройства для вывода линии
x
Координата x конечной точки линии
y
Координата y конечной точки линии

Пример:

' Рисуем красную линию из точки (0,40) в точку (100,50) на окне формы Form1.
Dim pt As POINTAPI  ' нужно для другой функции
Dim retval As Long  ' возвращаемое значение

Form1.ForeColor = RGB(255, 0, 0)  ' Устанавливаем свойство foreground формы Form1 в красный цвет.
retval = MoveToEx(Form1.hdc, 0, 40, pt)  ' устанавливаем первую точку в (0,40)
retval = LineTo(Form1.hdc, 100, 50)  ' рисуем линию из первой точки в (100,50)

Схожие функции: Polyline, PolylineTo, PolyPolyline
Категория: Линии и кривые


Функции Windows API:LoadCursor

Функция LoadCursor

Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Any) As Long

Платформа: Win 95/98, Win NT

LoadCursor загружает курсор из ресурсов курсора к настоящему времени работающей программы или из ресурсов курсора Windows. Курсор может ссылаться на свое имя в ресурсах или своим ID-номером числового ресурса. В успешном случае функция возвращает дескриптор загруженного курсора. В случае ошибки возвращается 0

hInstance
Для того, чтобы загрузить курсор из ресурсов курсора программы, установите его в программе заранее(MousePointer). Для того, чтобы загрузить из ресурсов курсора Windows-установите в 0
lpCursorName
Или строка, содержащая имя ресурса курсора или числовой номер ID, опознающий ресурс. Для курсоров Windows могут быть использованы следующие флаги, чтобы выбрать желаемый ресурс курсора:
IDC_APPSTARTING = 32650
Курсор фонового режима(стрелка с песочными часами)
IDC_ARROW = 32512
Стандартная стрелка
IDC_CROSS = 32515
Стрелка-крест(графическое выделение)
IDC_IBEAM = 32513
Стрелка выделения текста
IDC_ICON = 32641
только в Win NT: Пустой курсор
IDC_NO = 32648
Операция невозможна
IDC_SIZE = 32640
только в Win NT: Изменение размеров
IDC_SIZEALL = 32646
Изменение размеров
IDC_SIZENESW = 32643
Диагональное изменение размеров
IDC_SIZENS = 32645
Вертикальное изменение размеров
IDC_SIZENWSE = 32642
Диагональное изменение размеров
IDC_SIZEWE = 32644
Горизонтальное изменение размеров
IDC_UPARROW = 32516
Специальное выделение(стрелка вверх)
IDC_WAIT = 32514
Система недоступна (песочные часы)

Пример:

' Отобразим стандартный курсор фонового режима Windows
'(обычно стрелка с песочными часами) на три секунды.
' Затем восстановим прежние значения.
Dim hcursor As Long  ' дескриптор к новому курсору
Dim holdcursor As Long  ' полученный дескриптор к прежнему курсору
Dim retval As Long  ' возвращаемое значение

hcursor = LoadCursor(0, IDC_APPSTARTING)   ' загружаем курсор фонового режима
holdcursor = SetCursor(hcursor)  ' устанавливаем новый курсор
Sleep 3000   ' три секунды для показа
retval = SetCursor(holdcursor)    ' восстанавливаем прежний курсор

Схожие функции: LoadCursorFromFile
Категория: Курсоры


Функции Windows API:LoadCursorFromFile

Функция LoadCursorFromFile

Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long

Платформа: Win 95/98, Win NT

LoadCursorFromFile загружает курсор из файлов (*.cur) или (*.ani). В успешном случае функция возвращает дескриптор нового загруженного курсора,в противном случае функция возвратит 0

lpFileName
Имя файла(*.cur или *.ani)

Пример:

' Загрузим курсор "C:\Samples\globe.ani" и установим его
'текущим курсором на три секунды.  Затем восстановим
'прежний курсор.
Dim hcursor As Long  ' получаемый дескриптор загружаемого курсора
Dim holdcursor As Long  ' дескриптор к текущему курсору
Dim retval As Long  '  возвращаемое значение

hcursor = LoadCursorFromFile("C:\Samples\globe.ani")  ' загружаем курсор из файла
If hcursor = 0 Then End  ' выходим из программы, если не сможем загрузить курсор
holdcursor = SetCursor(hcursor)  ' устанавливаем загружаемый курсор в качестве текущего
Sleep 3000  ' три секунды для показа
retval = SetCursor(holdcursor)  ' восстанавливаем старый курсор

Схожие функции: LoadCursor
Категория: Курсоры


Функции Windows API:mciSendString

Функция mciSendString

Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000:Поддерживается

mciSendString посылает строку команды устройству ИНТЕРФЕЙСА УПРАВЛЕНИЯ СРЕДОЙ ПЕРЕДАЧИ ДАННЫХ(MCI). Устройство, которому команда послана, определено в строке команды.Строки команды, используемые с этой функцией могут исполнять почти любую задачу, необходимую для использования устройства мультимедиа, установленного на компьютере. MciSendString обеспечивает относительно простой способ исполнять операции с мультимедиа.

Смотри Команды MCI для списка некоторых строк команды, используемых функцией mciSendString

Возвращаемое значение

В успешном случае функция возвращает 0. В случае ошибки, функция возвращает код ошибки MCI отличный от нуля. Чтобы получить текстовое описание ошибки, используйте функцию mciGetErrorString.

lpstrCommand
Указатель на строку, которая определяет строку команды MCI.
lpstrReturnString
Для строк команды,возвращаюх информацию, эта строка получает вывод данных командой. Эта строка должна первоначально быть по крайней мере в длиной 128 символов, долго чтобы получить строку. Любая информация, помещенная в эту строку будет с нулевым символом в конце. Если строка команды не возвращает информацию, этот параметр игнорируется. Если никакой информации возвращения не требуется, этот параметр может быть NULL
uReturnLength
Размер в символах, буфера возвращений, указанного lpstrReturnString
hwndCallback
Если "уведомляющийся" флажок строки команды определен, это - дескриптор окна, чтобы получить сообщение MM_MCINOTIFY , когда команда завершается, независимо от того, выполнена ли она или потерпело неудачу

Пример:

' Открываем или закрываем CD-ROM .
Dim retval As Long  ' возвращаемое значение
Dim returnstring As Long

retval = mciSendString("set CDAudio door open", _
returnstring, 127, 0)
'если закрыть,то используем
retval = mciSendString("set CDAudio door closed", _
returnstring, 127, 0)
Категория: Мультимедиа


Функции Windows API:MessageBeep

Функция MessageBeep

Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As Long

Платформа: Win 95/98, Win NT

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

wType
Если установлен в -1 (или &HFFFFFFFF), воспроизводит звук с помощью внутреннего динамика компьютера. В других случаях,воспроизводится звук в соответствии с флагом:
MB_ICONASTERISK = &H40
Звук Звездочка
MB_ICONEXCLAMATION = &H30
Звук Восклицание
MB_ICONHAND = &H10
Play the SystemHand sound
MB_ICONQUESTION = &H20
Звук Вопрос
MB_OK = &H0
Стандартный звук

Пример:

' Воспроизводим системный звук Вопрос.
Dim retval As Long  ' возвращаемое значение

retval = MessageBeep(MB_ICONQUESTION)

Схожие функции: Beep
Категория: Ошибки


Функции Windows API:MoveFile

Функция MoveFile

Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long

Платформа: Win 95/98, Win NT

MoveFile перемещает или переименовывает файл или папку. Если переименовывается или перемещается папка,то переименовываются или перемещаются все подпапки(изменяются пути к подпапкам). В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0

lpExistingFileName
Файл или папка для перемещения или переименовывания
lpNewFileName
Новое имя для файла или папки,получаемое при перемещении или переименовывания

Пример:

' Перемещаем файл C:\Samples\temp.txt в C:\RussianProject\buffer.txt.
' При этом файл в папке,из которой идет перемещение,перестает существовать.
Dim retval As Long  ' возвращаемое значение

retval = MoveFile("C:\Samples\temp.txt", "C:\RussianProject\buffer.txt")

Схожие функции: CopyFile
Категория: Файлы


Функции Windows API:MoveToEx

Функция MoveToEx

Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI) As Long

Платформа: Win 95/98, Win NT

MoveToEx устанавливает координаты текущей точки на устройстве.Текущая точка является начальной точкой в функциях,заканчивающихся на "To" (например, LineTo). Функция также помещает бывшую текущую точку в переменную lpPoint. В случае ошибки функция возвращает 0 , в успешном случае возвращается 1

hdc
Контекст устройства для установления текущей точки
x
Координата x точки
y
Координата y точки
lpPoint
Переменная для бывшей начальной точки

Пример:

' Рисуем красную линию из точки (0,40) в точку (100,50) на окне формы Form1.
Dim pt As POINTAPI  ' для получения координат начальной точки
Dim retval As Long   ' возвращаемое значение

Form1.ForeColor = RGB(255, 0, 0)   ' Устанавливаем свойство foreground формы Form1 в красный цвет.
retval = MoveToEx(Form1.hdc, 0, 40, pt)   ' устанавливаем первую точку в (0,40)
' Внимание!Теперь pt содержит старую текущую точку.
retval = LineTo(Form1.hdc, 100, 50)   ' рисуем линию из первой точки в (100,50)

Категория: Линии и кривые


Функции Windows API:MoveWindow

Функция MoveWindow

Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Платформа: Win 95/98, Win NT

MoveWindow перемещает окно в новое место. В дополнение к перемещению, эта функция также изменяет размер окна. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0

hwnd
Дескриптор окна
x
Координата x вернхнего левого угла окна
y
Координата y вернхнего левого угла окна
nWidth
Ширина в пикселах для нового окна
nHeight
Высота в пикселах для нового окна
bRepaint
Если 1, модифицирует экран, чтобы отобразить окно в его новой позиции. Если 0, не модифицирует экран, чтобы отразить перемещение (окно, будет кажется, неперемещено, но будет фактически в его новом местоположении!)

Пример:

' перемещаем окно формы Form1.  Устанавливаем его верхний левый угол в точку (200, 150).
' Устанавливаем новые размеры ширины(175) и высоты(300)
Dim retval As Long  ' возвращаемое значение

' перемещаем окно и перерисовываем его в новом месте
retval = MoveWindow(Form1.hWnd, 200, 150, 175, 300, 1)

Схожие функции: GetWindowRect, SetWindowPos
Категория: Окна


Функции Windows API:OemToChar

Фунция OemToChar

Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается

OemToChar конвертирует текст из dos-кодировки в win-кодировку

Возвращаемое значение
Функция всегда возвращает ненулевое значение

Параметры

lpszSrc
Строка для перекодировки
lpszDst
Перекодированая строка в буфере. Если функция CharToOem используется как функция ANSI, строка может быть переведена на месте, устанавливая параметр lpszDst в тот же адрес,что и параметр lpszSrc
Пример

' конвертируем строку "Русский_Проект!" в win-кодировку.
'Воспользуйтесь каким-нибудь перекодировщиком,
'чтобы получить эту строку в dos-кодировке
Dim sourcestring As String   ' нужная строка
Dim deststring As String  ' получаемая строка
Dim code As Long

sourcestring = "Русский_Проект"  'строка для перекодировки
deststring = Space$(Len(sourcestring))'получаем перекодированную строку
code = OemToChar(sourcestring, deststring)
Debug.Print deststring

Схожие функции
CharToOem
Категория
Строки


Функции Windows API:OffsetRect

Функция OffsetRect

Declare Function OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

OffsetRect меняет позицию прямоугольника без изменения его размера. Если значение для перемещения отрицательно, прямоугольник перемещается влево или вверх(в зависимости от направления); положительные значения перемещают его вправо или вниз. Функция возвращает 0 в случае ошибки или 1 в успешном случае

lpRect
Прямоугольник для перемещения
x
Значение для перемещения прямоугольника горизонтально. Отрицательные значения двигают его налево, положительные- направо
y
Значение для перемещения прямоугольника вертикально. Отрицательные значения двигают его вверх, положительные- вниз

Пример:

' Сдвигаем окно Form1 на 50 пикселов вправо и 20 пикселов вверх,используя его прямоугольник.
Dim winrect As RECT  ' прямоугольник окна
Dim retval As Long  ' возвращаемое значение

retval = GetWindowRect(Form1.hWnd, winrect)  'получаем прямоугольник окна Form1
retval = OffsetRect(winrect, 50, -20)  ' сдвигаем прямоугольник вправо и вверх
' Теперь заменим окно на экране, чтобы соответствовать его новому прямоугольнику
retval = SetWindowPos(Form1.hWnd, 0, winrect.Left, winrect.Top, winrect.Right, winrect.Bottom, 0)

Схожие функции: InflateRect
Категория: Прямоугольники


Функции Windows API:PaintDesktop

Функция PaintDesktop

Declare Function PaintDesktop Lib "user32" (ByVal hdc As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 4.0 или выше
  • Windows 2000: Поддерживается

PaintDesktop заполняет область(регион) в указанном контексте устройства картинкой Рабочего стола или обоями

Возвращаемое значение
В случае ошибки функция возвращает 0 (Window NT/2000:используйте GetLastError для получения кода ошибки),в успешном случае функция возвращает значение,отличное от нуля

Параметры
hdc
Дескриптор контекста устройства

Пример:

' Отображаем рисунок Рабочего стола на форме Form1.
PaintDesktop Me.hdc

Категория: Графика


Функции Windows API:PlaySound

Функция PlaySound

Declare Function PlaySound Lib "winmm" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Альтернативная Declare при использовании памяти или ресурса:
Declare Function PlaySound_Res Lib "winmm" Alias "PlaySoundA" (ByVal lpszName As Long, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Платформа: Win 95/98, Win NT

PlaySound играет звук через динамики. Это может быть wav-файл,системный звук, или звуковой ресурс, сохраненный в приложении. Обратите внимание, что, когда функция должна запустить звуковой ресурс или звук,загруженный в память, пользователи Visual Basic должны использовать альтернативное объявление функции, чтобы передать числовой идентификатор звука вместо строки. Функция возвращает 0 в случае ошибки или ненулевое значение в успешном случае

lpszName
Имя или другой идентификатор звука. Его точный формат зависит от флажков dwFlags
hModule
Дескриптор к модулю программы, содержащему звуковой ресурс. Если функция не нуждается в этой информации, используется 0 для этого параметра
dwFlags
Нуль или большее количество следующих флажков lpszName, определяющих, звук и способ его воспроизведения:
SND_ALIAS = &H10000
lpszName - строка, идентифицирующая имя системного звука
SND_ALIAS_ID = &H110000
lpszName -строка, идентифицирующая предопределенный звуковой идентификатор
SND_APPLICATION = &H80
lpszName -строка, идентифицирующий специфический для приложения звук
SND_ASYNC = &H1
Запускает звук асинхронно
SND_FILENAME = &H20000
lpszName -строка, идентифицирующая имя wav-файла
SND_LOOP = &H8
Постоянное проигрывание звука, пока эта функция не вызывается снова с командой остановки воспроизведения. SND_ASYNC должен также быть определен
SND_MEMORY = &H4
lpszName Является числовым указателем к адресу памяти образа звука, загруженного в оперативную память
SND_NODEFAULT = &H2
Если указанный звук не может быть найден, завершить функцию вместо игры звука SystemDefault. Если этот флажок не определен, звук SystemDefault будет играть, если указанный звук не найден
SND_NOSTOP = &H10
Не прекращать воспроизведение любого запущенного звука.Вместо этого возвратите функцию с отказом. Если этот флажок не определен, играющий звук будет закончен, и звук, указанный функцией будет играть вместо него
SND_NOWAIT = &H2000
Не ждать,если драйвер занят.Вместо этого возвратите функцию с отказом
SND_PURGE = &H40
Остановка воспроизведения любого звука. lpszName должна быть пустой строкой
SND_RESOURCE = &H4004
lpszName Числовой идентификатор ресурса звука, сохраненного в приложении.hModule должна быть определена как дескриптор модуля того приложения
SND_SYNC = &H0
Синхронное воспроизведение звука - не возвращается, пока звук не закончил играть

Пример:

' Сначала запустим звук события Запуск Windows синхронно. Затем включим цикл
' игры файла C:\Samples\rusproject.wav в течение 5 секунд перед остановкой.
Dim retval As Long  ' возвращаемое значение

' Синхронно запустим звук Запуск Windows.
retval = PlaySound("SystemStart", 0, SND_ALIAS Or SND_SYNC)

' Теперь циклически играем wav-файл в течение пяти секунд.
' Примечание:Мы не хотим, чтобы  заданный по умолчанию звук играл, если файл не найден.
retval = PlaySound("C:\Samples\rusproject.wav", 0, SND_FILENAME Or SND_ASYNC Or SND_NODEFAULT Or SND_LOOP)
Sleep 5000  'ожидание в течение 5 секунд во время цикла
retval = PlaySound("", 0, SND_PURGE Or SND_NODEFAULT)  ' остановка воспроизведения

Схожие функции: sndPlaySound
Категория: Звук/A>


Функции Windows API:Polygon

Функция Polygon

Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long

Платформа: Win 95/98, Win NT

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

hdc
Описатель контекста устройства для рисования многоугольника
lpPoint
массив вершин многоугольника
nCount
Количество вершин многоугольника в массиве lpPoint

Пример:

' Рисуем ромб на окне Form1
Dim points(0 To 3) As POINTAPI  ' Вершины многоугольника
Dim retval As Long  ' возвращаемое значение

' Загружаем координаты вершин ромба в массив
points(0).x = 200: points(0).y = 100
points(1).x = 250: points(1).y = 150
points(2).x = 200: points(2).y = 200
points(3).x = 150: points(3).y = 150

' Рисуем ромб, используя заданное по умолчанию перо и кисть
retval = Polygon(Form1.hDC, points(0), 4)  ' четыре точки в массиве

Схожие функции: PolyPolygon
Категория: Фигуры


Функции Windows API:Polyline

Функция Polyline

Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long

Платформа: Win 95/98, Win NT

Polyline рисует ряд линий на способном к графике устройстве. Эти линии соединяются в точках, данные в массиве lpPoint,используя текущий цвет устройства.Первая точка соединяется со второй,вторая с третьей и т.д.Первая и последняя точки не соединяются. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0

hdc
Контекст устройства для вывода линий
lpPoint
Массив координат x и y каждой точки для вывода линий
nCount
Число элементов в массиве lpPoint

Пример:

' Рисуем ломаную линию
' на окне Form1
Dim points(0 To 3) As POINTAPI  'точки для вывода линий
Dim retval As Long  ' возвращаемое значение

' Помещаем точки в массив
points(0).x = 100: points(0).y = 100
points(1).x = 200: points(1).y = 150
points(2).x = 0: points(2).y = 150
points(3).x = 100: points(3).y = 200

Form1.ForeColor = RGB(0, 255, 0)  ' установим зеленый цвет для Form1
retval = Polyline(Form1.hDC, points(0), 4)  ' рисуем линии

Схожие функции: LineTo, PolylineTo, PolyPolyline
Категория: Линии и кривые


Функции Windows API:PolylineTo

Функция PolylineTo

Declare Function PolylineTo Lib "gdi32" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long

Платформа: Win 95/98, Win NT

PolylineTo рисует ряд линий на способном к графике устройстве. Эти линии соединяются в точках, данные в массиве lppt,используя текущий цвет устройства.Функция рисует линии, соединяя текущую точку устройства с первой точкой, первую точку со второй точкой и т.д.Функция рисует линии, соединяя текущую точку устройства с первой точкой, первую точку со второй точкой и т.д. При завершении работы функция устанавливает текущую точку в последнюю точку массива. Первоначальная и последняя текущие точки не соединяются. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0

hdc
Контекст устройства для вывода линий
lppt
Массив точек для рисования линий
cCount
Число элементов в массиве lppt.

Пример:

' Рисуем зеленый треугольник
' на окне Form1.  Но сначала установим текущую точку в (100,100)
Dim points(0 To 2) As POINTAPI  ' точки,передаваемые функции
Dim curpt As POINTAPI  'получаем текущую точку от функции MoveToEx
Dim retval As Long  ' возвращаемое значение

' Устанавливаем текущую точку Form1 в координатах (100,100)
retval = MoveToEx(Form1.hDC, 100, 100, curpt)

'Загружаем координаты точек в массив
points(0).x = 200: points(0).y = 150
points(1).x = 0: points(1).y = 150
points(2).x = 100: points(2).y = 100

Form1.ForeColor = RGB(0, 255, 0)  ' устанавливаем зеленый цвет текущим цветом для Form1
retval = PolylineTo(Form1.hDC, points(0), 3)  ' рисуем

Схожие функции: LineTo, Polyline, PolyPolyline
Категория: Линии и кривые


Функции Windows API:PolyPolyline

Функция PolyPolyline

Declare Function PolyPolyline Lib "gdi32" (ByVal hdc As Long, lppt As POINTAPI, lpdwPolyPoints As Long, ByVal cCount As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается

PolyPolyline рисует множество линий.Эти линии соединяются в точках на способном к графике устройстве.Эта функция схожа с функцией Polyline. Первая точка соединяется со второй,вторая с третьей и т.д.Первая и последняя точки не соединяются. Эти линии соединяются в точках, данные в массиве lppt. Соединяющие линии рисуются текущим цветом объекта. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

hdc
Контекст устройства для вывода линий
lppt
Массив, содержащий все точки в каждом наборе
lpdwPolyPoints
Массив,определяющий количество точек каждого набора. Первый элемент определяет, сколько точек находятся в первом наборе, и т.д.
cCount
Число элементов в lpdwPolyPoints

Пример:

 ' Рисуем линии в виде спирали

Private Sub Form_Load()
Const PI = 3.14159265
Const NUM_PLINES = 8
Const PTS_PER_PLINE = 30
Const Dtheta = 2 * PI / PTS_PER_PLINE

Dim cx As Single
Dim cy As Single
Dim num_points As Integer
Dim pts() As POINTAPI
Dim num_polylines As Integer
Dim counts() As Long
Dim i As Integer
Dim j As Integer
Dim theta As Single
Dim r As Single
Dim dr As Single

    ' Функции API всегда работают с пикселами
    picCanvas.ScaleMode = vbPixels
    picCanvas.AutoRedraw = True

    dr = picCanvas.ScaleWidth / 2 / PTS_PER_PLINE

    cx = picCanvas.ScaleWidth / 2
    cy = picCanvas.ScaleHeight / 2

    For i = 1 To NUM_PLINES
        ' Создаем спираль
        theta = i * 2 * PI / NUM_PLINES
        r = 0
        For j = 1 To PTS_PER_PLINE
            ' Создаем точки для одной линии
            num_points = num_points + 1
            ReDim Preserve pts(1 To num_points)
            With pts(num_points)
                .X = cx + r * Cos(theta)
                .Y = cy + r * Sin(theta)
            End With
            theta = theta + Dtheta
            r = r + dr
        Next j

        ' Сохраняем число точек этой линии
        num_polylines = num_polylines + 1
        ReDim Preserve counts(1 To num_polylines)
        counts(num_polylines) = PTS_PER_PLINE
    Next i

   ' Рисуем ломаные линии из массива точек
    PolyPolyline picCanvas.hdc, pts(1), counts(1), num_polylines
End Sub

Схожие функции: LineTo, Polyline, PolylineTo
Категория: Линии и кривые


Функции Windows API:PtInRect

Функция PtInRect

Declare Function PtInRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

PtInRect определяет, находится ли точка внутри или вне прямоугольника. Обратите внимание, что Windows рассматривает левые и верхние грани прямоугольника,как внутренние части, а правые и нижние грани,как не входящие в фигуры. Функция возвращает 1, если точка внутри или 0, если снаружи

lpRect
Прямоугольник
x
Координата x точки, чтобы определить-внутри или вне фигуры
y
Координата y точки, чтобы определить-внутри или вне фигуры

Пример:

' Определяем,является ли курсор мыши внутри или вне окна Form1.
' Это сделано,  проверяя точку курсора мыши с прямоугольником окна.
Dim mousept As POINTAPI  ' получаем координаты курсора
Dim winrect As RECT  ' получаем прямоугольник Form1
Dim isinside As Long  ' возвращает 1 если внутри или 0 если снаружи
Dim retval As Long  ' возвращаемое значение для других функций

retval = GetCursorPos(mousept)  'определяем позицию курсора
retval = GetWindowRect(Form1.hWnd, winrect)  ' определяем прямоугольник формы Form1

' Выясним,расположен ли курсор мыши  внутри прямоугольника Form1
isinside = PtInRect(winrect, mousept.x, mousept.y)
If isinside = 1 Then
  Debug.Print "Курсор мыши - в настоящее время внутри Form1."
Else
  Debug.Print "Курсор мыши - в настоящее время вне Form1"
End If

Категория: Прямоугольники


Функции Windows API:PtInRegion

Функция PtInRegion

Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

PtInRegion определяет, находится ли данная точка в пределах региона. Функция возвращает 0, если точка - не внутри региона, или ненулевое значение, если точка находится в регионе

hRgn
Дескриптор региона, чтобы определить, находится ли данная точка в пределах региона
x
Координата x точки для определения, находится ли точка в пределах региона
y
Координата y точки для определения, находится ли точка в пределах региона

Пример:

' Рассмотрим линию, соединяющую правую верхнюю и левую нижнюю углы экрана
'  и рассмотрим регион, сделанный левой верхней стороной этой линии. Определим
' находится ли курсор мыши  в пределах этой области или нет.
Dim swidth As Long, sheight As Long  ' ширина и высота экрана
Dim hRgn As Long  ' дескриптор к треугольной области, объясненной выше
Dim curpos As POINTAPI  ' получаем местоположение курсора мыши
Dim vertices(0 To 2) As POINTAPI  ' Вершина региона
Dim isinside As Long  ' получает 0 если не внутри, иначе-ненулевое значение
Dim retval As Long  'возвращаемое значение

' Получим ширину и высоту экрана . Используем эту информацию, чтобы создать регион.
swidth = GetSystemMetrics(SM_CXSCREEN)  ' ширина экрана
sheight = GetSystemMetrics(SM_CYSCREEN)   'высота экрана
' Загрузим вершину региона в массив и создадим его.
vertices(0).x = 0: vertices(0).y = 0  ' vertex #1: верхний левый угол экрана
vertices(1).x = swidth: vertices(1).y = 0  ' vertex #2: верхний правый угол экрана
vertices(2).x = 0: vertices(2).y = sheight  ' vertex #3: нижний левый угол экрана
hRgn = CreatePolygonRgn(vertices(0), 3, ALTERNATE)  ' создаем регион

' получим местоположение курсора мыши.
retval = GetCursorPos(curpos)
' Определим, находится ли местоположение курсора в пределах региона.
isinside = PtInRegion(hRgn, curpos.x, curpos.y)
If isinside = 0 Then
  Debug.Print "Курсор вне региона."
Else
  Debug.Print "Курсор внутри региона."
End If

' Удаляем регион для освобождения ресурсов.
retval = DeleteObject(hRgn)

Схожие функции: RectInRegion
Категория: Регионы


Функции Windows API:Rectangle

Функция Rectangle

Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа: Win 95/98, Win NT

Rectangle рисует прямоугольное поле на устройстве. Прямоугольник рисуется текущим цветом устройства и заполняется, используя текущие цвет и кисть. Функция возвращает 0 в случае ошибка, или 1 в успешном случае

hdc
Контекст устройства объекта
X1
Координата x левого верхнего угла прямоугольника
Y1
Координата y левого верхнего угла прямоугольника
X2
Координата x нижнего правого угла прямоугольника
Y2
Координата y нижнего правого угла прямоугольника

Пример:

' Рисуем зеленый прямоугольник на окне Form1 с верхним левым
' углом (25,30) и нижним правым углом (100,50)
Dim retval As Long  ' возвращаемое значение

Form1.ForeColor = RGB(0, 255, 0)  ' устанавливаем ForeColor формы в зеленый цвет
retval = Rectangle(Form1.hdc, 25, 30, 100, 50)  ' рисуем прямоугольник

Схожие функции: RoundRect
Категория: Прямоугольники


Функции Windows API:RectInRegion

Функция RectInRegion

Declare Function RectInRegion Lib "gdi32" (ByVal hRgn As Long, lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

RectInRegion определяет, находится ли прямоугольник в пределах данной области. Прямоугольник находится внутри региона, если любая его часть ( не обязательно весь) находится в пределах (региона. Функция возвращает 0, если прямоугольник - полностью вне региона, или ненулевое значение, если прямоугольник - по крайней мере частично в пределах региона

hRgn
Дескриптор области, чтобы определить, находится ли прямоугольник в ее пределах
lpRect
Прямоугольник, чтобы определить, находится ли по крайней мере частично в пределах области

Пример:

' Рассмотрим линию, соединяющую правую верхнюю и левую нижнюю углы экрана
'  и рассмотрим регион, сделанный левой верхней стороной этой линии. Определим
'находится ли окно Form1 по крайней мере частично в пределах области.
Dim swidth As Long, sheight As Long   ' ширина и высота экрана
Dim hRgn As Long   ' дескриптор к треугольной области, объясненной выше
Dim winrect As RECT  ' Получим прямоугольник Form1
Dim vertices(0 To 2) As POINTAPI  ' Вершина региона
Dim isinside As Long  ' получает 0 если не внутри, иначе-ненулевое значение
Dim retval As Long  'возвращаемое значение

' Получим ширину и высоту экрана . Используем эту информацию, чтобы создать регион.
swidth = GetSystemMetrics(SM_CXSCREEN)   ' ширина экрана
sheight = GetSystemMetrics(SM_CYSCREEN)   'высота экрана
' Загрузим вершину региона в массив и создадим его.
vertices(0).x = 0: vertices(0).y = 0  ' vertex #1: верхний левый угол экрана
vertices(1).x = swidth: vertices(1).y = 0   ' vertex #2: верхний правый угол экрана
vertices(2).x = 0: vertices(2).y = sheight  ' vertex #3: нижний левый угол экрана
hRgn = CreatePolygonRgn(vertices(0), 3, ALTERNATE)  ' создаем регион

' Получим прямоугольник окна Form1, идентифицируя углы окна.
retval = GetWindowRect(Form1.hWnd, winrect)
' Определим, находится ли прямоугольник в пределах региона.
isinside = RectInRegion(hRgn, winrect)
If isinside = 0 Then  ' не находится
  Debug.Print "Form1 - полностью вне области."
Else
  Debug.Print "Form1 находится по крайней мере частично внутри области."
End If

' Удаляем регион для освобождения ресурсов.
retval = DeleteObject(hRgn)

Схожие функции: PtInRegion
Категория: Регионы


Функции Windows API:RegCloseKey

Функция RegCloseKey

Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long

RegCloseKey закрывает раздел в реестре. Эта операция должна происходить после чтения или записи данных в реестр. Закрытие раздела реестра освобождает ресурсы компьютера. Естественно,вы не должны пользоваться этим разделом после его закрытия

Возвращаемое значение

В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля

Параметры
hKey
Раздел реестра
Пример
' создаем раздел под именем HKEY_CURRENT_USER\Software\Russian_Project\Samples\Config

Dim hregkey As Long  ' получаем дескриптор для вновь созданного или открытого раздела реестра
Dim secattr As SECURITY_ATTRIBUTES
Dim subkey As String  ' имя подраздела
Dim neworused As Long  ' получаем 1,если раздел был создан или 2 был открыт существующий раздел
Dim retval As Long  ' возвращаемое значение

' назначаем название для нового раздела
subkey = "Software\Russian_Project\Samples\Config"
secattr.nLength = Len(secattr)
secattr.lpSecurityDescriptor = 0
secattr.bInheritHandle = True

' создаем или открываем раздел реестра
retval = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, "", 0, KEY_WRITE, secattr, hregkey, neworused)
If retval <> 0 Then  ' ошибка при открытии
  Debug.Print "ошибка при открытии или создании раздела."
  End  'закрываем программу
End If

' закрываем раздел
retval = RegCloseKey(hregkey)
Схожие функции
RegCreateKeyEx, RegOpenKeyEx
Категория
Реестр


Функции Windows API:RegCreateKeyEx

Функция RegCreateKeyEx

Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long

RegCreateKeyEx создает новый раздел реестра.Или,если он существует,открывает его,что аналогично функции RegOpenKeyEx. Дескриптор раздела передается в переменную phkResult

Возвращаемое значение

В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля

Параметры
hKey
Дескриптор к открываемому разделу реестра или один из следующих флагов,которые идентифицируют ветви,в которых будут созданы новые разделы:
HKEY_CURRENT_USER = &H80000001
Ветвь HKEY_CURRENT_USER хранит информацию о пользователе,который в настоящий момент работает на компьютере
HKEY_LOCAL_MACHINE = &H80000002
Ветвь HKEY_LOCAL_MACHINE хранит информацию о локальном компьютере, в том числе-установки аппаратного и программного обеспечения,конфигурация приложений,установки безопасности
HKEY_USERS = &H80000003
Ветвь HKEY_USERS содержит информацию обо всех пользователях,зарегистрированных в системе
HKEY_CURRENT_CONFIG = &H80000005
Ветвь HKEY_CURRENT_CONFIG хранит информацию о текущей конфигурации
HKEY_DYN_DATA = &H80000006
Ветвь HKEY_DYN_DATA хранит динамическую информацию
lpSubkey
Имя для нового раздела
Reserved
Зарезервированный параметр. Установлен равным 0
lpClass
Имя класса или типа объекта.Можно использовать пустую строку
dwOptions
Установите в 0,если вы хотите сохранить раздел в реестре. Если вы этого не хотите-установите параметр,равным 1,и раздел будет уничтожен при выходе из Windows
samDesired
Один или более флагов для желаемого доступа к чтению/записи:
KEY_ALL_ACCESS = &HF003F
Разрешен любой тип доступа
KEY_CREATE_LINK = &H20
Разрешение для создания символьных ссылок
KEY_CREATE_SUB_KEY = &H4
Разрешение для создания подраздела
KEY_ENUMERATE_SUB_KEYS = &H8
Разрешение для перечисления подразделов
KEY_EXECUTE = &H20019
Аналогично KEY_READ
KEY_NOTIFY = &H10
Разрешение на уведомление изменений
KEY_QUERY_VALUE = &H1
Разрешен доступ к данным подраздела
KEY_READ = &H20019
Разрешен доступ к чтению
KEY_SET_VALUE = &H2
Разрешение на установку данных подраздела
KEY_WRITE = &H20006
Разрешен доступ к записи
lpSecurityAttributes
Для NT,уровень безопасности,передаваемый разделу.Для остальных версий Windows параметр равен 0
phkResult
Переменная,получаемая от дескриптора нового или открытого раздела
lpdwDisposition
Переменная,которая получает значение 1,если раздел был создан,и значение 2,если был открыт уже существующий раздел

Пример

' создаем раздел под именем
' HKEY_CURRENT_USER\Software\Russian_Project\Samples\Config

Dim hregkey As Long  ' получаем дескриптор для вновь созданного или открытого раздела реестра
Dim secattr As SECURITY_ATTRIBUTES
Dim subkey As String  ' имя подраздела
Dim neworused As Long  ' получаем 1,если раздел был создан или 2 был открыт существующий раздел
Dim retval As Long  ' возвращаемое значение

' назначаем название для нового раздела
subkey = "Software\Russian_Project\Samples\Config"
secattr.nLength = Len(secattr)
secattr.lpSecurityDescriptor = 0
secattr.bInheritHandle = True

' создаем или открываем раздел реестра
retval = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, "", 0, KEY_WRITE, secattr, hregkey, neworused)
If retval <> 0 Then  ' ошибка при открытии
  Debug.Print "ошибка при открытии или создании раздела."
  End  'закрываем программу
End If

' закрываем раздел
retval = RegCloseKey(hregkey)
Схожие функции
RegCloseKey, RegDeleteKey, RegOpenKeyEx
Категория
Реестр


Функции Windows API:RegDeleteKey

Функция RegDeleteKey

Declare Function RegDeleteKey Lib "advapi32" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long

RegDeleteKey удаляет раздел из реестра. Удаляемый раздел не может иметь при этом подразделов

Возвращаемое значение

В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля

Параметры
hKey
Дескриптор к удаляемому разделу реестра или один из следующих флагов,которые идентифицируют ветви:
HKEY_CLASSES_ROOT = &H80000000
Ветвь HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG = &H80000005
Ветвь HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER = &H80000001
Ветвь HKEY_CURRENT_USER
HKEY_DYN_DATA = &H80000006
Ветвь HKEY_DYN_DATA
HKEY_LOCAL_MACHINE = &H80000002
Ветвь HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA = &H80000004
Ветвь HKEY_PERFORMANCE_DATA
HKEY_USERS = &H80000003
Ветвь HKEY_USERS
lpSubKey
Название подраздела из раздела hKey для удаления

Пример:

' Удаляем подраздел "Software\Russian_Project\Samples\Config"
' ветви HKEY_LOCAL_MACHINE
Dim retval As Long  ' возвращаемое значение

' Пытаемся удалить выбранный раздел
retval = RegDeleteKey(HKEY_LOCAL_MACHINE, "Software\Russian_Project\Samples\Config")
If retval <> 0 Then
  Debug.Print "Удаление не произошло.Раздел возможно имеет подразделы или параметры"
  Debug.Print "Или данный раздел не существует"
End If

Схожие функции: RegCreateKeyEx, RegDeleteValue
Категория
Реестр


Функции Windows API:RegDeleteValue

Функция RegDeleteValue

Declare Function RegDeleteValue Lib "advapi32" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long

RegDeleteValue удаляет параметр из раздела реестра. Функция работает только со значениями параметров,она не может удалять разделы

Возвращаемое значение

В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля

hKey
Дескриптор к открываемому разделу реестра,содержащему удаляемый параметр
lpValueName
Имя удаляемого параметра

Пример:

' Удаляем параметр "username" раздела
' "HKEY_CURRENT_USER\Software\Russian_Project\Samples\Config"
Dim hkey As Long  ' дескриптор открываемого раздела
Dim retval As Long ' возвращаемое значение

' Сначала откроем раздел реестра,
' содержащий удаляемый параметр
retval = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Russian_Project\Samples\Config", 0, KEY_ALL_ACCESS, hkey)
If retval = 0 Then  ' раздел успешно открыт
  ' Теперь удаляем параметр
  retval = RegDeleteValue(hkey, "username")
MsgBox "Параметр удален"

' Закрываем раздел реестра
  retval = RegCloseKey(hkey)
End If

Схожие функции: RegDeleteKey, RegQueryValueEx, RegSetValueEx
Категория
Реестр


Функции Windows API:RegEnumKeyEx

Функция RegEnumKeyEx

Declare Function RegEnumKeyEx Lib "advapi32" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long

RegEnumKeyEx перебирает все подразделы заданного раздела. Функция получает название подраздела,имя класса и время последней записи подраздела в реестр

Возвращаемое значение

В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля

Параметры
hKey
Дескриптор к открываемому разделу реестра,содержащему подразделы для перебора или один из следующих флагов,которые идентифицируют ветви:
HKEY_CURRENT_USER = &H80000001
Ветвь HKEY_CURRENT_USER хранит информацию о пользователе,который в настоящий момент работает на компьютере
HKEY_LOCAL_MACHINE = &H80000002
Ветвь HKEY_LOCAL_MACHINE хранит информацию о локальном компьютере, в том числе-установки аппаратного и программного обеспечения,конфигурация приложений,установки безопасности
HKEY_USERS = &H80000003
Ветвь HKEY_USERS содержит информацию обо всех пользователях,зарегистрированных в системе
HKEY_CURRENT_CONFIG = &H80000005
Ветвь HKEY_CURRENT_CONFIG хранит информацию о текущей конфигурации
HKEY_DYN_DATA = &H80000006
Ветвь HKEY_DYN_DATA хранит динамическую информацию
dwIndex
Список подразделов для получения информации.Индекс начинается с 0
lpName
Имя подраздела
lpcbName
Размер строки,передаваемой lpName
lpReserved
Зарезервированный параметр. Установлен равным 0.Используйте ByVal перед 0
lpClass
Имя класса подраздела
lpcbClass
Размер строки,передаваемой lpClass
lpftLastWriteTime
Время и дата последней записи подраздела в реестр
Пример

' Перебираем подразделы раздела HKEY_LOCAL_MACHINE\Software
Dim keyname As String  ' имя каждого подраздела
Dim keylen As Long  ' длина имени подраздела
Dim classname As String  ' класс подраздела
Dim classlen As Long  ' длина имени класса
Dim lastwrite As FILETIME ' время последней записи
Dim hkey As Long  ' дескриптор к разделу HKEY_LOCAL_MACHINE\Software
Dim index As Long  ' счетчик
Dim retval As Long  ' возвращаемое значение

' Открываем нужный раздел
retval = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software", 0, KEY_ENUMERATE_SUB_KEYS, hkey)
' Убеждаемся,что раздел открыт
If retval <> 0 Then
  Debug.Print "Ошибка во время открытия раздела реестра"
  End  ' завершаем работу
End If

' Перебираем все подразделы
index = 0  ' инициализируем счетчик
While retval = 0
  keyname = Space(255): classname = Space(255)
  keylen = 255: classname = 255
  retval = RegEnumKeyEx(hkey, index, keyname, keylen, ByVal 0, classname, classlen, lastwrite)
  If retval = 0  Then
    ' Извлекаем информацию из буфера
    keyname = Left(keyname, keylen)
    classname = Left(classname, classlen)
    ' Выводим информацию
    Debug.Print "HKEY_LOCAL_MACHINE\Software\"; keyname
    Debug.Print "  (class: "; classname
  End If
  index = index + 1  ' увеличиваем счетчик
Wend  ' завершаем цикл

' Закрываем раздел после завершения перебора
retval = RegCloseKey(hkey)

Схожие функции
RegEnumValue
Категория
Реестр


Функции Windows API:RegOpenKeyEx

Функция RegOpenKeyEx

Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

RegOpenKeyEx открывает раздел реестра. Функция используется,когда нужно считать или записать некоторое значение в этом разделе. В отличие от RegCreateKeyEx, эта функция не создает раздел,если он не существует. Дескриптор раздела передается в переменную phkResult

Возвращаемое значение

В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля

Параметры
hKey
Дескриптор открываемого раздела реестра или один из следующих флагов,которые идентифицируют ветви:
HKEY_CURRENT_USER = &H80000001
Ветвь HKEY_CURRENT_USER хранит информацию о пользователе,который в настоящий момент работает на компьютере
HKEY_LOCAL_MACHINE = &H80000002
Ветвь HKEY_LOCAL_MACHINE хранит информацию о локальном компьютере, в том числе-установки аппаратного и программного обеспечения,конфигурация приложений,установки безопасности
HKEY_USERS = &H80000003
Ветвь HKEY_USERS содержит информацию обо всех пользователях,зарегистрированных в системе
HKEY_CURRENT_CONFIG = &H80000005
Ветвь HKEY_CURRENT_CONFIG хранит информацию о текущей конфигурации
HKEY_DYN_DATA = &H80000006
Ветвь HKEY_DYN_DATA хранит динамическую информацию
lpSubKey
Имя открываемого раздела
ulOptions
Зарезервированный параметр. Установлен равным 0
samDesired
Один или более флагов для желаемого доступа к чтению/записи:
KEY_ALL_ACCESS = &HF003F
Разрешен любой тип доступа
KEY_CREATE_LINK = &H20
Разрешение для создания символьных ссылок
KEY_CREATE_SUB_KEY = &H4
Разрешение для создания подраздела
KEY_ENUMERATE_SUB_KEYS = &H8
Разрешение для перечисления подразделов
KEY_EXECUTE = &H20019
Аналогично KEY_READ
KEY_NOTIFY = &H10
Разрешение на уведомление изменений
KEY_QUERY_VALUE = &H1
Разрешен доступ к данным подраздела
KEY_READ = &H20019
Разрешен доступ к чтению
KEY_SET_VALUE = &H2
Разрешение на установку данных подраздела
KEY_WRITE = &H20006
Разрешен доступ к записи
phkResult
Переменная,получаемая от дескриптора открытого раздела

Пример:

' Открываем раздел под именем
' HKEY_CURRENT_USER\Software\Russian_Project\Samples\
Dim hregkey As Long  ' дескриптор раздела
Dim subkey As String  ' имя подраздела
Dim retval As Long  ' возвращаемое значение

subkey = "Software\Russian_Project\Samples"

' открываем раздел реестра
retval = RegOpenKeyEx(HKEY_CURRENT_USER, subkey, 0, STANDARD_RIGHTS_READ, hregkey)
If retval <> 0 Then  ' ошибка во время открытия
  Debug.Print "Ошибка во время открытия раздела реестра"
  End  ' завершаем работу
End If

' Вставьте сюда ваш код.....
MsgBox "Раздел существует!"
' закрываем раздел
retval = RegCloseKey(hregkey)

Схожие функции: RegCloseKey, RegCreateKeyEx
Категория: Реестр


Функции Windows API:RegQueryValueEx

Функция RegQueryValueEx

Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

RegQueryValueEx получает значение параметра из раздела реестра. Это может быть число,строка и другие типы данных.
Примечание: При чтении строковых типов данных используйте ключевое слово ByVal перед lpData,для других типов данных ByVal использовать необязательно

Возвращаемое значение

В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля

Параметры
hKey
Дескриптор к разделу реестра для получения значения параметра или один из следующих флагов,которые идентифицируют ветви:
Const HKEY_CLASSES_ROOT = &H80000000
Ветвь HKEY_CLASSES_ROOT
Const HKEY_CURRENT_CONFIG = &H80000005
Ветвь HKEY_CURRENT_CONFIG
Const HKEY_CURRENT_USER = &H80000001
Ветвь HKEY_CURRENT_USER
Const HKEY_DYN_DATA = &H80000006
Windows 95\98: Ветвь HKEY_DYN_DATA
Const HKEY_LOCAL_MACHINE = &H80000002
Ветвь HKEY_LOCAL_MACHINE
Const HKEY_PERFORMANCE_DATA = &H80000004
Windows NT\2000: Ветвь HKEY_PERFORMANCE_DATA
Const HKEY_USERS = &H80000003
Ветвь HKEY_USERS
lpValueName
Значение параметра
Reserved
Зарезервированный параметр. Установлен равным 0
lpType
Один из следующих флажков, идентифицирующих тип данных для чтения:
Const REG_BINARY = 3
Нетекстовая последовательность байтов
Const REG_DWORD = 4
Аналогично REG_DWORD_LITTLE_ENDIAN
Const REG_DWORD_BIG_ENDIAN = 5
32-разрядное целое число, сохраненное в формате big-endian
Const REG_DWORD_LITTLE_ENDIAN = 4
32-разрядное целое число, сохраненное в формате little-endian
Const REG_EXPAND_SZ = 2
Строка с нулевым символом в конце, которая содержит нерасширенные переменные среды
Const REG_LINK = 6
A Unicode symbolic link.
Const REG_MULTI_SZ = 7
Ряд строк, разделенных нулевым символом и заканчивающийся двумя нулевыми символами
Const REG_NONE = 0
Никакой тип данных
Const REG_RESOURCE_LIST = 8
Список ресурсов в карте ресурса
Const REG_SZ = 1
Строка с завершающим нулевым символом
lpData
Число, строка, или другие данные для чтения в системном реестре
lpcbData
Устанавливает длину в байтах,передаваемых значений lpData
Пример

' Создаем раздел HKEY_CURRENT_USER\Software\Russian_Project\Samples\Config
' Затем читаем значение параметра "username"
Dim hregkey As Long  ' получаемый дескриптор к созданному или открытому разделу
Dim secattr As SECURITY_ATTRIBUTES
Dim subkey As String  ' название подраздела
Dim neworused As Long   ' Получим 1, если новый раздел был создан или 2, если существующий раздел был открыт
Dim stringbuffer As String  ' строка,полученная из реестра
Dim slength As Long  ' длина возвращаемого значения параметра
Dim retval As Long  ' возвращаемое значение

subkey = "Software\Russian_Project\Samples\Config"
secattr.nLength = Len(secattr)   ' размер структуры
secattr.lpSecurityDescriptor = 0  ' уровень безопасности по умолчанию
secattr.bInheritHandle = True  ' значение по умолчанию для этой установки

' Создаем или открываем раздел
retval = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, "", 0, KEY_READ, secattr, hregkey, neworused)
If retval <> 0 Then  ' ошибка во время открытия
  Debug.Print "Ошибка при открытии или создания раздела реестра -- выходим из программы"
  End  ' завершаем программу
End If

' Получаем значение параметра "username". Используем
' при этом ключевое слово ByVal
stringbuffer = Space(255)  ' создаем буфер для получения информации
slength = 255
retval = RegQueryValueEx(hregkey, "username", 0, REG_SZ, ByVal stringbuffer, slength)  ' получаем значение параметра
stringbuffer = Left(stringbuffer, slength)  ' извлекаем значение из буфера
If retval = 0 Then Debug.Print "Имя пользователя: "; stringbuffer

' Закрываем раздел реестра
retval = RegCloseKey(hregkey)

Схожие функции

RegDeleteValue, RegSetValueEx
Категория
Реестр


Функции Windows API:RegSetValueEx

Функция RegSetValueEx

Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

RegSetValueEx создает параметр в разделе реестра. Если параметр не существует,то он будет создан.Параметр может быть любым допустимым типом данных реестра
Примечание: Если вы устанавливаете строковые или числовые значения,то используйте ключевое слово ByVal перед параметром lpData.Остальные значения(например,байтовые) не нуждаются в этом слове

Возвращаемое значение

В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля

Параметры
hKey
Дескриптор к открываемому разделу реестра или один из следующих флагов,которые идентифицируют ветви,в которых будут созданы новые разделы:
Const HKEY_CLASSES_ROOT = &H80000000
Ветвь HKEY_CLASSES_ROOT
Const HKEY_CURRENT_CONFIG = &H80000005
Ветвь HKEY_CURRENT_CONFIG
Const HKEY_CURRENT_USER = &H80000001
Ветвь HKEY_CURRENT_USER
Const HKEY_DYN_DATA = &H80000006
Windows 95\98: Ветвь HKEY_DYN_DATA
Const HKEY_LOCAL_MACHINE = &H80000002
Ветвь HKEY_LOCAL_MACHINE
Const HKEY_PERFORMANCE_DATA = &H80000004
Windows NT\2000: Ветвь HKEY_PERFORMANCE_DATA
Const HKEY_USERS = &H80000003
Ветвь HKEY_USERS
lpValueName
Значение параметра. Если это пустая строка,то функция запишет в реестр значение не присвоено или по умолчанию(Windows 95:значение по умолчанию всегда имеет тип REG_SZ)
Reserved
Зарезервированный параметр. Установлен равным 0
dwType
Один из следующих флажков, идентифицирующих тип данных для записи в системном реестре:
Const REG_BINARY = 3
Нетекстовая последовательность байтов
Const REG_DWORD = 4
Аналогично REG_DWORD_LITTLE_ENDIAN
Const REG_DWORD_BIG_ENDIAN = 5
32-разрядное целое число, сохраненное в формате big-endian
Const REG_DWORD_LITTLE_ENDIAN = 4
32-разрядное целое число, сохраненное в формате little-endian
Const REG_EXPAND_SZ = 2
Строка с нулевым символом в конце, которая содержит нерасширенные переменные среды
Const REG_LINK = 6
A Unicode symbolic link.
Const REG_MULTI_SZ = 7
Ряд строк, разделенных нулевым символом и заканчивающийся двумя нулевыми символами
Const REG_NONE = 0
Никакой тип данных
Const REG_RESOURCE_LIST = 8
Список ресурсов в карте ресурса
Const REG_SZ = 1
Строка с завершающим нулевым символом
lpData
Число, строка, или другие данные для записи в системном реестре
cbData
Размер в байтах данных, записываемых в системный реестр
Пример

' Создаем раздел HKEY_CURRENT_USER\Software\Russian_Project\Samples\Config
' Затем создаем параметр "username" в этом разделе
' и присваиваем ему значение "Алексадр"
 ' дескриптор раздела,который мы
' создаем или открываем
Dim hregkey As Long
Dim secattr As SECURITY_ATTRIBUTES
Dim subkey As String  ' название подраздела
Dim neworused As Long  ' Получим 1, если новый раздел был создан или 2, если существующий раздел был открыт
Dim stringbuffer As String  ' строка,помещаемая в реестр
Dim retval As Long  ' возвращаемое значение

subkey = "Software\Russian_Project\Samples\Config"
secattr.nLength = Len(secattr)  ' размер структуры
secattr.lpSecurityDescriptor = 0  ' уровень безопасности по умолчанию
secattr.bInheritHandle = True  ' значение по умолчанию для этой установки

' Создаем или открываем раздел
retval = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, "", 0, KEY_WRITE, secattr, hregkey, neworused)
If retval <> 0 Then  ' ошибка во время открытия
  Debug.Print "Ошибка при открытии или создания раздела реестра -- выходим из программы"
  End  ' завершаем программу
End If

' Записываем строковой параметр в реестр
stringbuffer = "Александр" & vbNullChar  ' обратите внимание на добавляемый нулевой символ
retval = RegSetValueEx(hregkey, "username", 0, REG_SZ, ByVal stringbuffer, Len(stringbuffer))

' Закрываем раздел реестра
retval = RegCloseKey(hregkey)

Схожие функции
RegDeleteValue, RegQueryValueEx
Категория
Реестр


Функции Windows API:ReleaseCapture

Функция ReleaseCapture

Declare Function ReleaseCapture Lib "user32" () As Long

ReleaseCapture завершает фиксацию мыши для указанного окна. При вызове ReleaseCapture, все сообщения ввода мыши немедленно возвращаются обратно в обычный режим. Функция должна использоваться сразу же,как только вы уже не нуждаетесь в фиксации мыши после вызова SetCapture

В успешном случае функция возвращает значение,отличное от нуля,в противном случае функция возвратит 0 (используйте GetLastError для получения кода ошибки)

Пример

' Перемещаем форму за любое место,
' а не только за заголовок
 ' Вставьте код в Form_MouseMove

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim retval As Long 'возвращаемое значение
If Button = 1 Then
        Call ReleaseCapture
        'посылаем сообщение о нажатии левой кнопки мыши на заголовке нашей формы
        retval = SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
End Sub
' код для Form_Paint
Private Sub Form_Paint()
    Me.Print "Щелкните на форме и удерживая кнопку перетаскивайте форму"
End Sub
Схожие функции
GetCapture, SetCapture
Категория
Мышь


Функции Windows API:ReleaseDC

Функция ReleaseDC

Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hdc As Long) As Long

Платформа Win 95/98, Win NT

ReleaseDC освобождает ресурсы,которые были заняты при использовании GetDC для получения контекста устройства. Функция вызывается при завершении работы с контекстом устройства. В случае ошибки функция возвращает 0,в успешном случае возвращает 1. Эта функция не должна использоваться для уничтожения контекста устройства,созданного функцией CreateDC Для этого случая используйте DeleteDC

hWnd
Дескриптор
hdc
Контекст устройства
Пример
' Находим контекст устройства Рабочего стола
Dim deskhwnd As Long  ' дескриптор Рабочего стола
Dim deskhdc As Long  ' контекст устройства
Dim retval As Long  ' возвращаемое значение

deskhwnd = GetDesktopWindow()  ' получаем дескриптор рабочего стола
deskhdc = GetDC(deskhwnd)   ' получаем контекст устройства

' здесь вы размещаете свой код

 ' освобождаем ресурсы,взятые у контекста устройства.
retval = ReleaseDC(deskhwnd, deskhdc)
Схожие функции DeleteDC, GetDC
Категория Устройства


Функции Windows API:RemoveDirectory

Функция RemoveDirectory

Declare Function RemoveDirectory Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long

Платформа: Win 95/98, Win NT

RemoveDirectory удаляет папку с диска.Функция не удаляет файлы или подпапки внутри папки.Если папка не является пустой,то происходит ошибка. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0

lpPathName
Папка для удаления.Папка должна быть пустой

Пример:

' Удалим папку C:\Samples.
Dim retval As Long  ' возвращаемое значение

retval = RemoveDirectory("C:\Samples")  ' удаляем папку
If retval = 1 Then  ' удаление прошло успешно
  Debug.Print "Папка C:\Samples была удалена."
Else
  Debug.Print "Ошибка.  Убедитесь,что папка C:\Samples пуста."
End If

Схожие функции: CreateDirectory
Категория: Файлы


Функции Windows API:RoundRect

Функция RoundRect

Declare Function RoundRect Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long

Платформа: Win 95/98, Win NT

RoundRect рисует округленный прямоугольник на устройстве текущим цветом формы и заполняет его текущим цветом кисти.Первые две пары координат (x,y) определяют верхний левый и нижний правый углы прямоугольника. Третья пара определяет ширину и высоту округленных углов.Функция возвращает 0 в случае ошибки, или 1 в успешном случае

hdc
Контекст устройста
X1
Координата x левого верхнего угла соответствующего прямоугольника
Y1
Координата y левого верхнего угла соответствующего прямоугольника
X2
Координата x нижнего правого угла соответствующего прямоугольника
Y2
Координата y нижнего правого угла соответствующего прямоугольника
X3
Ширина каждого округленного угла
Y3
Высота каждого округленного угла

Пример:

' Рисуем зеленый округленный прямоугольник на окне Form1 с левым верхним
' углом (25,30), нижним правым углом (100,50), и округленных
'углов шириной10 и высотой 5 пикселов
Dim retval As Long  ' возвращаемое значение

Form1.ForeColor = RGB(0, 255, 0)  ' устнавливаем цвет ForeColor формы в зеленый
retval = RoundRect(Form1.hdc, 25, 30, 100, 50, 10, 5)  ' рисуем прямоугольник

Схожие функции: Rectangle
Категория: Прямоугольники


Функции Windows API:SelectObject

Функция SelectObject

Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long

Платформа: Win 95/98, Win NT

SelectObject выбирает объект для использования его в устройстве.Объект имеет растр,кисть,шрифт,перо,регион и т.д.Выбранный объект может использоваться устройством,сколько это может вам понадобиться.Функция возвращает дескриптор

hdc
Контекст устройства для устройства,в котором используется объект
hObject
дескриптор к растру,кисти,шрифту,перу,региону

Пример:

' Рисуем прямоугольник с координатами
' (10,20) и (175,100) на форме Form1.
'Используем сплошную желтую кисть для заполнения прямоугольника.
Dim hbrush As Long  ' получаем дескриптор к желтой кисти
Dim holdbrush As Long  ' получаем дескриптор к кисти формы по умолчанию
Dim retval As Long  ' возвращаемое значение

hbrush = CreateSolidBrush(RGB(255, 255, 0))  ' создаем сплошную желтую кисть
' Сохраняем кисть формы по умолчанию,
'чтобы восстановить после завершения программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Рисуем желтый прямоугольник,используя желтую кисть
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' Восстанавливает прежнюю кисть формы прежде уничтожения новой кисти
retval = SelectObject(Form1.hDC, holdbrush)  ' старая кисть
retval = DeleteObject(hbrush)  ' уничтожаем желтую кисть

Схожие функции DeleteObject

Категория: Устройства


Функции Windows API:SendMessage

Функция SendMessage

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal Msg As Long, wParam As Any, lParam As Any) As Long

SendMessage посылает сообщение окну. Функция вызывает оконную процедуру для обработки сообщения. Эта функция не возвращается, пока окно не завершит обработку сообщения

Возвращаемое значение

Функция возвращает значение сообщения

Параметры
hWnd
Дескриптор окна,в которое будет послано сообщение
Msg
Идентификатор сообщения
wParam
Дополнительные определенные данные сообщения
lParam
Дополнительные определенные данные сообщения
Пример

' Запускаем хранитель экрана

SendMessage hwnd, WM_SYSCOMMAND, SC_SCREENSAVE, ByVal 0&

Категория
Сообщения


Функции Windows API:SetActiveWindow

Функция SetActiveWindow

Declare Function SetActiveWindow Lib "user32" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

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

hwnd
Дескриптор окна, чтобы установить его как активное окно

Пример:

' Делаем окно Form1 активным окном для программы.
' Эта функция не будет делать окно приоритетным, если пользователь  работает в настоящее время
' с отдельной программой.
Dim retval As Long  ' возвращаемое значение

retval = SetActiveWindow(Form1.hWnd)  ' установим Form1 как активное окно приложения

Схожие функции: GetActiveWindow, SetForegroundWindow
Категория: Окна


Функции Windows API:SetArcDirection

Функция SetArcDirection

Declare Function SetArcDirection Lib "gdi32" (ByVal hdc As Long, ByVal ArcDirection As Long) As Long

Платформа: Win 95/98, Win NT

SetArcDirection устанавливает направление,в котором будет выводится дуга на устройстве. Дуга может рисоваться по часовой и против часовой стрелки. Хотя Win 95/98 поддерживает эту функцию,но при этом игнорируются настройки и дуги рисуются всегда против часовой стрелки! В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0

hdc
Контекст устройства для вывода дуги
ArcDirection
Точно один из следующих флажков, определяющих направление для вывода дуг:
AD_CLOCKWISE = 2
Дуги рисуются по часовой стрелке от отправной точки до конечной точки
AD_COUNTERCLOCKWISE = 1
Дуги рисуются против часовой стрелки от отправной точки до конечной точки

Пример:

' Рисуем дугу,которая формирует верхнюю часть эллипса. Эллипс
' с координатами (100, 100), с шириной 200 и высотой 100 пикселов
' Дуга рисуется красным цветом на Form1
Dim retval As Long  ' возвращаемое значение

Form1.ForeColor = RGB(255, 0, 0)  ' установим красный цвет для формы
retval = SetArcDirection(Form1.hDC, AD_COUNTERCLOCKWISE)  ' рисуем дугу против часовой стрелки
' Эллипс ограничен прямоугольником (0,50)-(200,150).
retval = Arc(Form1.hDC, 0, 50, 200, 150, 200, 100, 0, 100)

Схожие функции: AngleArc, Arc, ArcTo, GetArcDirection
Категория: Линии и кривые


Функции Windows API:SetComputerName

Функция SetComputerName

Declare Function SetComputerName Lib "kernel32" Alias "SetComputerNameA" (ByVal lpComputerName As String) As Long

Платформа Win 95/98, Win NT

SetComputerName устанавливает новое имя компьютера пользователя.Имя помещено в строковую переменную lpComputerName.Чтобы изменения вступили в силу,требуется перезагрузка компьютера.Имя компьтера можно изменить с помощью вкладки Сеть на Панели управления. Функция возвращает 0, если произошла ошибка, и 1 в успешном случае

Параметры
lpComputerName
Строка, достаточно большая для хранения имени компьютера
Пример
' Устанавливаем новое имя компьютера
Dim sNewName As String
 ' Просим пользователя ввести новое имя
sNewName = InputBox("Введите новое имя компьютера.")
  SetComputerName sNewName  ' устанавливаем новое имя
' сообщаем пользователя и просим перезагрузиться
MsgBox "Новое имя компьютера " & sNewName & vbNewLine _
& "Перезагрузите компьютер"

Схожие функции: GetComputerName
Категория:
Системная информация


Функции Windows API:SetCursor

Функция SetCursor

Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long

Платформа: Win 95/98, Win NT

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

hCursor
Дескриптор нового курсора

Пример:

' Отобразим стандартный курсор фонового режима Windows
'(обычно стрелка с песочными часами) на три секунды.
' Затем восстановим прежние значения.
Dim hcursor As Long  ' дескриптор к новому курсору
Dim holdcursor As Long  ' полученный дескриптор к прежнему курсору
Dim retval As Long  ' возвращаемое значение

hcursor = LoadCursor(0, IDC_APPSTARTING)   ' загружаем курсор фонового режима
holdcursor = SetCursor(hcursor)   ' устанавливаем курсор
Sleep 3000   ' три секунды для показа
retval = SetCursor(holdcursor)   ' восстанавливаем прежний курсор

Схожие функции: GetCursor, SetSystemCursor
Категория: Курсоры


Функции Windows API:SetCursorPos

Функция SetCursorPos

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

Платформа: Win 95/98, Win NT

SetCursorPos устанавливает позицию курсора мыши. Если Вы пробуете установить координаты вне диапазона дисплея (например, (700,40) на мониторе 640x480 или вне прямоугольника ограничения,установленным ClipCursor, курсор будет только идти к краю экрана или прямоугольника. Функция возвращает 0, если произошла ошибка , или 1 в успешном случае

x
Координата x
y
Координата y

Пример:

' Перемещаем курсор мыши к точке (100,200) на экране
Dim retval As Long  ' возвращаемое значение

retval = SetCursorPos(100, 200)  ' перемещаем курсор мыши к точке (100,200)

Схожие функции: GetCursorPos
Категория: Курсор


Функции Windows API:SetDoubleClickTime

Функция SetDoubleClickTime

Declare Function SetDoubleClickTime Lib "user32" (ByVal wCount As Long) As Long

Платформа: Win 95/98, Win NT

SetDoubleClickTime устанавливает максимально разрешенный промежуток времени между двумя щелчками мыши для обнаружения операционной системой двойного щелчка.Измененный параметр будет действовать во всех программах Windows.Поэтому будьте осторожны,так как пользователь обычно устанавливает эти параметры в Панели управления. Функция возвращает 1 в успешном случае и 0 в случае ошибки

wCount
Максимальный промежуток времени в миллисекундах для определения двойного щелчка мышью.Установка значения в 0 устанавливает промежуток,принятый по умолчанию в Windows-500 миллисекунд

Пример:

' Устанавливаем максимальный промежуток в 1 секунду.
Dim retval As Long  ' возвращаемое значение

retval = SetDoubleClickTime(1000)  ' устанавливаем промежуток в 1 секунду.
Debug.Print "Промежуток между двумя щелчками-1 секунда (1000 миллисекунд)."

Схожие функции: GetDoubleClickTime
Категория: Мышь


Функции Windows API:SetFileAttributes

Функция SetFileAttributes

Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long

Платформа: Win 95/98, Win NT

SetFileAttributes меняет атрибуты файла или папки. Вы можете установить четыре вида:архивный,только для чтения,скрытый и системный.В случае ошибки функция возвращает 0 ,в успешном случае 1

lpFileName
Полное имя файла или папки
dwFileAttributes
Один или несколько флагов,определяющих атрибуты файла:
FILE_ATTRIBUTE_ARCHIVE = &H20
Архивный файл
FILE_ATTRIBUTE_HIDDEN = &H2
Скрытый файл или папка.Обычно его не видно пользователю
FILE_ATTRIBUTE_NORMAL = &H80
Файл не имеет атрибутов(нельзя комбинировать с другими флагами)
FILE_ATTRIBUTE_READONLY = &H1
Файл только для чтения
FILE_ATTRIBUTE_SYSTEM = &H4
Системный файл.Является частью операционной системы

Пример:

' устанавливаем атрибуты файла C:\MyProgram\secret.dat в скрытый,только для чтения,архивный
Dim fileattrs As Long  ' атрибуты
Dim retval As Long  ' возвращаемое значение

fileattrs = FILE_ATTRIBUTE_ARCHIVE Or FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_READONLY
retval = SetFileAttributes("C:\MyProgram\secret.dat", fileattrs)  ' Устанавливаем атрибуты

Схожие функции: GetFileAttributes
Категория: Файлы


Функции Windows API:SetForegroundWindow

Функция SetForegroundWindow

Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

SetForegroundWindow делает указанное окно текущим приоритетным окном и передает ему фокус. Эта функция должна использоваться только с окнами, которые имеет ваша программа. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0

hwnd
Дескриптор окна, чтобы установить его как приоритетное окно

Пример:

' Делаем окно Form1 текущим приоритетным окном.
Dim retval As Long  ' возвращаемое значение

retval = SetForegroundWindow(Form1.hWnd)  '  устанавливаем окно Form1 текущим приоритетным окном.

Схожие функции: GetForegroundWindow, SetActiveWindow
Категория: Окна


Функции Windows API:SetKeyboardState

Функция SetKeyboardState

Declare Function SetKeyboardState Lib "user32" (lpKeyState As Byte) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

SetKeyboardState устанавливает состояние каждой клавиши на клавиатуре. Каждый элемент массива с 256 элементами идентифицирует информацию относительно виртуальной клавиши, чей код виртуальной клавиши соответствует индексу элемента. Если бит &H1 установлен, то клавиша выключена. Если установлен бит &H80, то клавиша нажата. Информация о клавиатуре, установленная этой функцией не обязательно изменяет состояния клавиш, имеющие отношение к системе в целом

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры
lpKeyState
Массив байтов с 256 элементами, который получает информацию состояния для всех виртуальных клавиш. Каждая клавиша идентифицирована элементом, соответствующим коду виртуальной клавиши. Windows NT, 2000: В дополнение к виртуальным клавишам, массив также получает информацию, способную различать левый и правый клавиши Ctrl, Alt, и SHIFT, которые помещены в массив в следующих индексах:
Const VK_LSHIFT = &HA0
Левый Shift
Const VK_RSHIFT = &HA1
Правый Shift
Const VK_LCONTROL = &HA2
Левый Ctrl
Const VK_RCONTROL = &HA3
Правый Ctrl
Const VK_LMENU = &HA4
Левый Alt
Const VK_RMENU = &HA5
Правый Alt
Пример

' Установим статус для каждой клавиши на клавиатуре
' на "не включено"
Dim keystates(0 To 255) As Byte  ' содержит статус всех клавиш в массиве
Dim c As Integer  ' счетчик
Dim retval As Long  ' возвращаемое значение

' Сначала, получим текущее состояние клавиатуры.
retval = GetKeyboardState(keystates(0))

' Теперь, установим бит для всех клавиш в 0.
For c = 0 To 255
  ' Удостоверимся,что бит &H1 не установлен.
  keystates(c) = keystates(c) And (Not &H1)
Next c

' Наконец, установим это к текущему состоянию клавиатуры.
retval = SetKeyboardState(keystates(0))

Схожие функции
GetKeyboardState
Категория
Клавиатура


Функции Windows API:SetParent

Функция SetParent

Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

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

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В случае успеха функция возвращает дескриптор дочернего окна бывшего родительского окна

Параметры
hWndChild
дескриптор окна, чтобы изменить родителя
hWndNewParent
Дескриптор окна, который станет новым родителем дочернего окна. Чтобы сделать Рабочий стол родительским окном, используйте параметр 0
Пример

' Переместим кнопку Command1, которая является
'дочерним окном Form1  к его новому родительскому окну Form2.
Dim oldhwnd As Long  ' получим дескриптор прежнего родителя кнопки

oldhwnd = SetParent(Command1.hWnd, Form2.hWnd)  ' теперь кнопка на Form2.

Схожие функции
IsChild, GetParent
Категория
Окна


Функции Windows API:SetPixel

Функция SetPixel

Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long

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

Возвращаемое значение

В случае ошибки функция возвращает -1 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение RGB цвета

Параметры
hdc
Дескриптор контекста устройства
X
Координата x пиксела
Y
Координата y пиксела
crColor
Значение RGB цвета пиксела
Пример

' Беспорядочно окрасим все пикселы в окне Form1. Этот пример
' получает прямоугольник Form1 и выполняет итерации
'через все точки (пикселы) внутри него.
Dim winrect As RECT  ' прямоугольник окна Form1
Dim rgbval As Long  'значение RGB случайно выбранного цвета
Dim x As Long, y As Long  ' счетчик для координат x и y
Dim retval As Long  ' возвращаемое значение

' получаем прямоугольник окна Form1.
retval = GetWindowRect(Form1.hWnd, winrect)

' Цикл через каждый пиксел в пределах Form1.
For y = 0 To winrect.bottom - winrect.top
  For x = 0 To winrect.right - winrect.left
    ' берем случайный цвет,  выбирая значения между 0 и 255
    ' включительно для каждого компонента цвета.
    rgbval = RGB(Int(256 * Rnd), Int(256 * Rnd), Int(256 * Rnd))
    ' установим пиксел в цвет,указанный выше
    retval = SetPixel(Form1.hDC, x, y, rgbval)
  Next x
Next y

Схожие функции
GetPixel, SetPixelV
Категория
Графика


Функции Windows API:SetRect

Функция SetRect

Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа: Win 95/98, Win NT

SetRect устанавливает позицию и размер прямоугольника. Две координаты указывают на левые верхние и нижние правые углы прямоугольника. Функция возвращает 0 в случае ошибки или 1в успешном случае

lpRect
Прямоугольник, чтобы установить позицию и размер
X1
Координата x левого верхнего угла прямоугольника
Y1
Координата y левого верхнего угла прямоугольника
X2
Координата x нижнего правого угла прямоугольника
Y2
Координата y нижнего правого угла прямоугольника

Пример:

' Установим прямоугольник winrect
'Использование этой функции более эффективно и берет
' меньшее количество участка памяти чем
'установка прямоугольника по четырем координатам.
Dim winrect As RECT  ' прямоугольник
Dim retval As Long  ' возвращаемое значение

retval = SetRect(winrect, 20, 30, 100, 50)
Схожие функции: SetRectEmpty
Категория: Прямоугольники


Функции Windows API:SetRectEmpty

Функция SetRectEmpty

Declare Function SetRectEmpty Lib "user32" (lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

SetRectEmpty устанавливает прямоугольник в пустое состояние. Пустой прямоугольник - тот, который имеет отрицательную ширину и\или высоту. В этом случае, Windows устанавливает прямоугольник в (0,0) - (0,0). Функция возвращает 0 в случае ошибки или 1 в успешном случае

lpRect
Прямоугольник, чтобы установить как пустой

Пример:

' Установим прямоугольник winrect как пустой. Это  намного проще чем вручную
' установливать  четырех его значения к нулю.
Dim winrect As RECT  ' прямоугольник, чтобы установить как пустой
Dim retval As Long  ' возвращаемое значение

retval = SetRectEmpty(winrect)  'прямоугольник теперь равен (0,0)-(0,0)

Схожие функции: IsRectEmpty, SetRect
Категория: Прямоугольники


Функции Windows API:SetSysColors

Функция SetSysColors

Declare Function SetSysColors Lib "user32" Alias "SetSysColors" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

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

Возвращаемое значение

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

Параметры
cElements
Число элементов в массивах,передаваемых как lpaElements и lpaRgbValues
Массив,содержащий идентификаторы всех системных цветов. Каждый элемент может быть определен как один из следующих флажков,определяющих системный цвет:
COLOR_3DDKSHADOW= 21
Темный теневой цвет для трехмерных объектов
COLOR_3DFACE= COLOR_BTNFACE= 15
Передний цвет для трехмерных объектов
COLOR_3DHILIGHT=COLOR_3DHIGHLIGHT=COLOR_BTNHILIGHT=COLOR_BTNHIGHLIGHT= 20
Подсветка (напротив тени) для трехмерных объектов
COLOR_3DLIGHT= 22
Цвет (напротив тени) для трехмерных объектов
COLOR_3DSHADOW=COLOR_BTNSHADOW= 16
Цвет тени для трехмерных объектов
COLOR_ACTIVEBORDER= 10
Цвет бордюра активного окна
COLOR_ACTIVECAPTION= 2
Цвет области заголовка активного окна Windows 98, 2000: Цвет левой стороны градиента области заголовка активного окна, если используется эффект градиента
COLOR_APPWORKSPACE= 12
Цвет фона многодокументной среды окна (MDI)
COLOR_BACKGROUND= COLOR_DESKTOP=1
Цвет рабочего стола
COLOR_BTNTEXT= 18
Цвет текста в кнопках
COLOR_CAPTIONTEXT= 9
Цвет текста заголовка окна, окон размера, и полей стрелки полосы прокрутки
COLOR_GRADIENTACTIVECAPTION= 27
Windows 98, 2000:Цвет правой стороны градиента области заголовка активного окна, если используется эффект градиента
COLOR_GRADIENTINACTIVECAPTION= 28
Windows 98, 2000: Цвет правой стороны градиента области заголовка неактивного окна, если используется эффект градиента
COLOR_GRAYTEXT= 17
Цвет текста,который недоступен(затемненный)
COLOR_HIGHLIGHT= 13
Цвет,используемый для выбранных элементов
COLOR_HIGHLIGHTTEXT= 14
Цвет, используемый для текста подсвеченных(выбранных) элементов
COLOR_HOTLIGHT= 26
Windows 98, 2000: Цвет выбранного элемента, который запускается с одиночным щелчком
COLOR_INACTIVEBORDER= 11
Цвет границы неактивного окна
COLOR_INACTIVECAPTION= 3
Цвет заголовка неактивного окна Windows 98, 2000: Цвет правой стороны градиента области заголовка неактивного окна, если используется эффект градиента
COLOR_INACTIVECAPTIONTEXT= 19
Цвет текста заголовка неактивного окна
COLOR_INFOBK= 24
Цвет фона для подсказки
COLOR_INFOTEXT= 23
Цвет текста для подсказки
COLOR_MENU= 4
Цвет фона для меню
COLOR_MENUTEXT= 7
Цвет текста для меню
COLOR_SCROLLBAR= 0
Цвет серой области полосы прокрутки
COLOR_WINDOW= 5
Цвет фона окна
COLOR_WINDOWFRAME= 6
Цвет рамки окна
COLOR_WINDOWTEXT= 8
Цвет текста в окне
lpaRgbValues
Массив значений RGB новых системных цветов

Пример:

' Изменим цвета градиента в областях
' заголовка окон наоборот. Другими словами, лево цвет
' градиента меняем с правым цветом градиента для активных
' и неактивных окон. После замены, уведомление посылается
' всем окнам,что обеспечит немедленное изменение во всех
' окнах. Конечно, этот пример не будет работать должным
' образом в Windows 95 или Windows NT 3.1 до 4.0
' Чтобы использовать этот пример, Вы должны сначала
' разместить кнопку Command1 на форме
' *** Код для кнопки Command1 ***
Private Sub Command1_Click()
 ' Цвет левого градиента области заголовка активного окна
Dim activeLeftColor As Long
' Цвет правого градиента области заголовка активного окна
Dim activeRightColor As Long
' Цвет левого градиента области заголовка неактивного окна
Dim inactiveLeftColor As Long
' Цвет правого градиента области заголовка неактивного окна
Dim inactiveRightColor As Long
' Идентификаторы системных цветов для изменений
Dim colorNames(0 To 3) As Long
' RGB значения системных цветов для изменений
Dim colorRGBs(0 To 3) As Long
Dim retval As Long  ' возвращаемое значение
' Получаем RGB значения цветов,используемых
' в заголовках окон
activeLeftColor = GetSysColor(COLOR_ACTIVECAPTION)
activeRightColor = GetSysColor(COLOR_GRADIENTACTIVECAPTION)
inactiveLeftColor = GetSysColor(COLOR_INACTIVECAPTION)
inactiveRightColor = GetSysColor(COLOR_GRADIENTINACTIVECAPTION)
' Загружаем массивы с новыми значениями. ' Обратите внимание, как мы переключаем
' значения, используемые левой и правой сторонами этих двух градиентов
colorNames(0) = COLOR_ACTIVECAPTION
colorRGBs(0) = activeRightColor
colorNames(1) = COLOR_GRADIENTACTIVECAPTION
colorRGBs(1) = activeLeftColor
colorNames(2) = COLOR_INACTIVECAPTION
colorRGBs(2) = inactiveRightColor
colorNames(3) = COLOR_GRADIENTINACTIVECAPTION
colorRGBs(3) = inactiveLeftColor
' Заменяем системные установки цвета
retval = SetSysColors(4, colorNames(0), colorRGBs(0))
End Sub

Смотри также
GetSysColor
Категория
Системная информация


Функции Windows API:SetSystemTime

Функция SetSystemTime

Declare Function SetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME) As Long

SetSystemTime устанавливает системные дату и время. Время должно уставливаться по Гринвичу,а не местное время

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля

Параметры
lpSystemTime
Новые время и дата для установки системного времени.Параметр wDayOfWeek стуктуры игнорируется
Пример

' Установим системное время с параметрами:
' Октябрь 3, 1999 16:46:00 по Гринвичу
Dim systime As SYSTEMTIME  ' новое время и дата
Dim retval As Long  ' возвращаемое значение

' Передадим информацию о дате в структуру.
systime.wYear = 1999
systime.wMonth = 10
systime.wDay = 3
systime.wHour = 16
systime.wMinute = 46
systime.wSecond = 0
systime.wMillisecond = 0

' Установим системное время с желаемыми параметрами.
retval = SetSystemTime(systime)

Схожие функции
GetSystemTime
Категория
Время


Функции Windows API:SetVolumeLabel

Функция SetVolumeLabel

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

Платформа
  • Windows 95/98:Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000:Поддерживается
  • Windows CE: Не поддерживается

SetVolumeLabel устанавливает метку тома файловой системы. Новая метка тома не может содержать любые запрещенные символы

Возвращаемое значение

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

Параметры
lpRootPathName
Путь корневого каталога диска, чтобы установить метку тома файловой системы. Этот путь должен включить конечную наклонную черту влево. Например, диск C: был бы "C:\ "
lpVolumeName
Новое название метки тома.
Пример

 'устанавливаем новую метку тома диска C: в "MYDRIVE".
Dim retval As Long' возвращаемое значение
' устанавливаем новую метку тома.
retval = SetVolumeLabel("C:\", "MYDRIVE")

Смотри также
GetVolumeInformation
Категория
Системная информация


Функции Windows API:SetWindowPos

Функция SetWindowPos

Declare Function SetWindowPos Lib "user32" (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

Платформа: Win 95/98, Win NT

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

hwnd
Дескриптор окна для перемещения
hWndInsertAfter
Дескриптор окна,после которого окно hwdn находится в списке окон.Следующие флаги определяют позицию окна hwnd:
HWND_BOTTOM = 1
Внизу списка окон
HWND_NOTOPMOST = -2
Наверху списка окон,под самым верхним окном
HWND_TOP = 0
Поверх всех окон
HWND_TOPMOST = -1
Наверху списка окон
x
Координата x вернего левого угла окна
y
Координата y вернего левого угла окна
cx
Ширина окна
cy
Высота окна
wFlags
Флаги,определяющие вид окна:
SWP_DRAWFRAME = &H20
Рисует рамку окна,аналогично SWP_FRAMECHANGED
SWP_FRAMECHANGED = &H20
Рисует рамку окна
SWP_HIDEWINDOW = &H80
Скрывает окно с экрана
SWP_NOACTIVATE = &H10
Делает окно неактивным
SWP_NOCOPYBITS = &H100
Не обновляет рисунки на окне после перемещения
SWP_NOMOVE = &H2
Сохраняет координаты текущего окна(параметры x и y игнорируются)
SWP_NOSIZE = &H1
Сохраняет координаты текущего окна
SWP_NOREDRAW = &H8
Не перерисовывает содержимое окна
SWP_NOZORDER = &H4
Сохраняет текущее положение окна в списке других окон
SWP_SHOWWINDOW = &H40
Отображает окно,если оно скрыто

Пример:

' Перемещаем окно формы Form1 в верхний левый угол экрана и поверх всех окно.
Dim flags As Long  ' флаг для окна
Dim retval As Long  ' возвращаемое значение

' Не изменяем размеры окна, показываем окно в новом месте
flags = SWP_NOSIZE Or SWP_DRAWFRAME
retval = SetWindowPos(Form1.hWnd, HWND_TOPMOST, 0, 0, 1, 1, flags) ' перемещаем окно

Схожие функции: BringWindowToTop, GetWindowRect, MoveWindow
Категория: Окна


Функции Windows API:SetWindowText

Функция SetWindowText

Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

Платформа: Win 95/98, Win NT

SetWindowText изменяет текст в заголовке окна. В успешном случае функция возвращает 1,в случае ошибки возвращается 0

hwnd
Дескриптор окна
lpString
Новый текст для заголовка окна

Пример:

' Устанавливаем новый заголовок для Form1в "Русский_Проект".
Dim retval As Long  ' возвращаемое значение

retval = SetWindowText(Form1.hWnd, "Русский_Проект")

Схожие функции: GetWindowText
Категория: Окна


Функции Windows API:Shell_NotifyIcon

Функция Shell_NotifyIcon

Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

Платформа
  • Windows 95/98:Поддерживается
  • Windows NT: Требуется Windows NT 4.0 или выше
  • Windows 2000:Поддерживается
  • Windows CE: Требуется Windows CE 1.0 или выше

Shell_NotifyIcon управляет значком, расположенным в области панели задач, обычно упоминаемой как "system tray"(рядом с часами). Функция добавляет новый значок, удаляет существующий значок, или изменяет(заменяет) существующий значок, принадлежащий программе запроса. Программы обычно используют значки в "system tray", когда они запускаются в фоновом режиме без окна; значок дает пользователю возможность обратиться к этой программе.

Все сообщения этого значка посылаются к его окну для обработки.Смотри структуру NOTIFYICONDATA для дополнительной информации. Стандартное поведение Shell_NotifyIcon использует следующие сообщения: WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP, WM_RBUTTONDOWN, WM_RBUTTONUP и т.д.

Возвращаемое значение
В случае ошибки функция возвращает 0 или значение,отличное от нуля в успешном случае

Параметры
dwMessage
Флажки,определяющие следующие действия:
NIM_ADD
Добавляет значок,описанный в pnid в system tray
NIM_DELETE
Удаляет значок,описанный в pnid из system tray
NIM_MODIFY
Изменяет значок,описанный в pnid
NIM_SETFOCUS
Windows 2000: Возвращает фокус в system tray. Это должно быть сделано после завершения операций интерфейса пользователя, связанных со значком
NIM_SETVERSION
Windows 2000: Использование члена структуры uVersion как pnid определяет поведение панели задач. Эти две опции - специфичны для Windows 2000. Обратите внимание, что это руководство не объясняет, как использовать поведение, представленное Windows 2000
pnid
Обеспечивает информацию идентификации и параметры настройки для значка,необходимую для значения dwMessage
Константы

Const NIM_ADD = &H0
Const NIM_DELETE = &H2
Const NIM_MODIFY = &H1
Const NIM_SETFOCUS = &H4
Const NIM_SETVERSION = &H8

Пример

Примечание:Чтобы использовать этот пример, Вы должны сначала создать маленькое меню на Form1. Создайте меню, называемое mnuTrayIconPopup. Затем создайте два пункта меню под ним: mnuAbout и mnuExit.

' Помещаем значок к системным часам при запуске программы.
'При щелчке правой кнопкой мыши появляется контекстное
' меню.Значок удаляется при закрытии программы
'вставляем переменную в General Declarations
Dim t As NOTIFYICONDATA

Private Sub Form_Load()
t.cbSize = Len(t)
t.hWnd = Me.pichook.hWnd
t.uId = 1&
'устанавливаем флаги
t.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
t.ucallbackMessage = WM_MOUSEMOVE
'иконка для программы
t.hIcon = Me.Icon
'всплыващая подсказка
t.szTip = "Привет!" & Chr$(0)
Shell_NotifyIcon NIM_ADD, t
Me.Hide
App.TaskVisible = False

End Sub

Private Sub mnuAbout_Click()
MsgBox "Посетите http://members.xoom.com/wwwind"
End Sub

Private Sub mnuExit_Click()
t.cbSize = Len(t)
t.hWnd = pichook.hWnd
t.uId = 1&
Shell_NotifyIcon NIM_DELETE, t
End

End Sub

Private Sub pichook_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static rec As Boolean, msg As Long
msg = X / Screen.TwipsPerPixelX
If rec = False Then
rec = True
Select Case msg
Case WM_LBUTTONDBLCLK:
Case WM_LBUTTONDOWN:
Case WM_LBUTTONUP:
Case WM_RBUTTONDBLCLK:
Case WM_RBUTTONDOWN:
Case WM_RBUTTONUP:
Me.PopupMenu mnuTrayIconPopup
End Select
rec = False
End If

End Sub

Категория
Оболочка


Функции Windows API:ShellExecute

Функция ShellExecute

Declare Function ShellExecute Lib "shell32" 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

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Window CE:Не поддерживатся

ShellExecute используется в случаях,когда вы хотите,чтобы WINDOWS сама решала,как обрабатывать тот или иной документ по имени этого документа.Функция способна открывать или печатать файл или запускать программу. Под Win 95/98, эта функция также откроет папку Мой компьютер или Проводник с указанным каталогом. Если выполняющая программа определена, Windows запустит ту программу. Если файл документа определен, Windows откроет или напечатает его, используя связанную программу

Возвращаемое значение

В успешном случае функция возвращает значение больше,чем 32. В случае ошибки функция возвратит значение меньшее или равное 32 или одно из следующих значени,определяющих ошибку:

ERROR_FILE_NOT_FOUND = 2
Указанный файл не найден
ERROR_PATH_NOT_FOUND = 3
Указанный путь не найден
ERROR_BAD_FORMAT = 11
Указанный исполняемый файл (.EXE) так или иначе недействителен
SE_ERR_ACCESSDENIED = 5
только для Win 95/98: Windows отклонил доступ к указанному файлу
SE_ERR_ASSOCINCOMPLETE = 27
Ассоциация имени файла является или неполной или недействительной
SE_ERR_DDEBUSY = 30
Операция ПРЯМОГО ВВОДА ДАННЫХ(DDE) не может работать, потому что другие действия ПРЯМОГО ВВОДА ДАННЫХ находятся в процессе
SE_ERR_DDEFAIL = 29
Операция ПРЯМОГО ВВОДА ДАННЫХ потерпела неудачу
SE_ERR_DDETIMEOUT = 28
Операция DDE не была закончена, потому что истекло время запроса
SE_ERR_DLLNOTFOUND = 32
только для Win 95/98: Указанный файл DLL не найден
SE_ERR_FNF = 2
то же,что и ERROR_FILE_NOT_FOUND
SE_ERR_NOASSOC = 31
Нет никакой программы, связанной с указанным типом файла
SE_ERR_OOM = 8
только для Win 95/98: Windows имеет недостаточную память, чтобы исполнить операцию
SE_ERR_PNF = 3
то же,что и ERROR_PATH_NOT_FOUND
SE_ERR_SHARE = 26
Произошла ошибка совместного доступа
Параметры
hwnd
Дескриптор окна,вызывающего функцию
lpOperation
Строка определяющая действие, которое будет выполнено. Набор доступных действий зависит от специфического файла или папки. Набор включает команды, перечисленные в контекстном меню контекста и в системном реестре.
"open"
Открывает файл или запускают программу (или каталог в Win 95/98)
"edit"
Открывает редактор. Если lpFile не файл документа, функция потерпит неудачу
"print"
Печатает документ.Если lpFile не файл документа, функция потерпить неудачу
"explore"
В Win 95/98 -открывают каталог в окне Проводника
"properties"
Показывает свойства файла или папки
Значение по умолчанию-"open"
lpFile
Файл,с которым производятся действия
lpParameters
Любые параметры командной строки для передачи открытому приложению
lpDirectory
Рабочий каталог для операции
nShowCmd
Один из следующих флажков, определяющих, как отображать любое окно, которое функция открывает:
SW_HIDE = 0
Скрыть открытое окно
SW_MAXIMIZE = 3
Развернуть открытое окно
SW_MINIMIZE = 6
Свернуть открытое окно
SW_RESTORE = 9
Восстановить открытое окно
SW_SHOW = 5
Показать открытое окно
SW_SHOWMAXIMIZED = 3
Показать открытое окно развернутым
SW_SHOWMINIMIZED = 2
Показать открытое окно свернутым
SW_SHOWMINNOACTIVE = 7
Показать открытое окно свернутым,но не активировать его
SW_SHOWNA = 8
Показать открытое окно в текущем состоянии,но не активировать его
SW_SHOWNOACTIVATE = 4
Показать открытое окно в текущих размерах и позиции,но не активировать его
SW_SHOWNORMAL = 1
Показать открытое окно и активировать его(как обычно)

Пример:

' Выполним следующие операции:
' 1. Запустим блокнот в развернутом виде
' 2. Откроем документ "C:\WINDOWS\клыки.bmp" (с программой,
которая ассоциируется с ним)
' 3. Пошлем письмо автору руководства

' 1. Запускаем блокнот
ShellExecute 0&, vbNullString, "c:\windows\notepad.exe", vbNullString, _
      vbNullString,  SW_SHOWMAXIMIZED
' 2. Открываем документ:
ShellExecute Form1.hWnd, "open", "c:\windows\клыки.bmp", vbNullString, vbNullString, SW_SHOWNORMAL
' 3. Посылаем письмо
ShellExecute Me.hwnd, vbNullString, "mailto:vbasic@rambler.ru", vbNullString, "C:\", SW_SHOWNORMAL
Категория
Оболочка


Функции Windows API:SHEmptyRecycleBin

Функция SHEmptyRecycleBin

Declare Function SHEmptyRecycleBin Lib "shell32" Alias "SHEmptyRecycleBinA" (ByVal hwnd As Long, ByVal pszRootPath As String, ByVal dwFlags As Long) As Long

Платформа
  • Windows 95: Требуется Internet Explorer 4.0 или выше
  • Windows 98: Поддерживается
  • Windows NT: Требуется Windows NT 4.0 или выше и Internet Explorer 4.0 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

SHEmptyRecycleBin удаляет содержимое Корзины.Функция может удалять файлы из корзины выбранного диска или сразу всех дисков

Возвращаемое значение

В успешном случае функция возвращает 0,в случае ошибки функция возвращает значение,отличное от нуля

Параметры
hwnd
Дескриптор окна.
pszRootPath
Путь к диску,чья Корзина будет освобождаться от файлов. Чтобы освободить все Мусорные корзины , установите значение равным пустой строке.
dwFlags
Комбинация флагов:
Const SHERB_NOCONFIRMATION = &H1
Не показывать подверждение удаления файлов пользователю.
Const SHERB_NOPROGRESSUI = &H2
Не показывать диалоговое окно,показывающее процесс удаления файлов из Корзины.
Const SHERB_NOSOUND = &H4
Не воспроизводить звук после удаления файлов из Корзины.
Пример

' Удаляем содержимое Корзин всех дисков
' не показывая процесса удаления файлов
Dim retval As Long  ' возвращаемое значение

' Удаляем содержимое Корзин, если пользователь согласен с этим.
retval = SHEmptyRecycleBin(Form1.hWnd, "", SHERB_NOPROGRESSUI)

Схожие функции
SHQueryRecycleBin, SHUpdateRecycleBinIcon
Категория
Оболочка


Функции Windows API:SHFileOperation

Функция SHFileOperation

Declare Function SHFileOperation Lib "shell32" Alias "SHFileOperationA" (lpFileOp As Byte) As Long

Платформа.

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 4.0 или выше
  • Windows 2000:Поддерживается
  • Windows CE: Не поддерживается

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

Возвращаемое значение
В случае ошибки функция возвращает значение,отличное от нуля. В успешном случае возвращается 0.

Параметры
lpFileOp
Структура SHFILEOPSTRUCT , скопированный должным образом в массив байтов, который определяет операцию файла для выполнения. Это может также получать некоторую обратную связь от функции.
Пример

' Удаляем файлы в корзину
'Поместите Common Dialog Box с именем CDBox.
'  (Project->Components
'   выберите Microsoft Common Dialog)

    Dim SHFileOp As SHFILEOPSTRUCT
    'заголовок для диалогового окна
    CDBox.DialogTitle = "Сейчас будем удалять"
    'фильтр
    CDBox.Filter = "All Files (*.*)|*.*"
    'показываем диалог 'Open File'
    CDBox.ShowOpen
    With SHFileOp
        'удаление файла
        .wFunc = FO_DELETE
        'выбор файла
        .pFrom = CDBox.filename
        'удаление в Корзину
        .fFlags = FOF_ALLOWUNDO
    End With
    'начинаем операцию удаления
    SHFileOperation SHFileOp
    MsgBox "Файл '" + CDBox.filename + "' был перемещен в Корзину !", vbInformation + vbOKOnly, App.Title

Категория: Оболочка


Функции Windows API:SHGetSpecialFolderLocation

Функция SHGetSpecialFolderLocation

Declare Function SHGetSpecialFolderLocation Lib "shell32" Alias "SHGetSpecialFolderLocationA" (ByVal hwndOwner As Long, ByVal nFolder As Long, ppidl As Long) As Long

Платформа
  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 4.0 или выше
  • Windows 2000: Поддерживается,но устарела.Используйте SHGetFolderLocation
  • Windows CE:Не поддерживается

SHGetSpecialFolderLocation создает указатель на структуру ITEMIDLIST (известную как PIDL),ссылающую к специальной папке на компьютере. PIDL может относиться к специальным папкам, которые существуют на диске или являются виртуальными папками

Возвращаемое значение

В случае ошибки функция возвращает значение,отличное от нуля или 0 в успешном случае

Параметры
hwndOwner
Дескриптор к окну,вызывающей функцию
nFolder
CSIDL специальной папки для получения PIDL
ppidl
Получает PIDL к желаемой специальной папке
Пример

' Узнаем пути к специальным папкам Избранное и кнопки Пуск
    Me.AutoRedraw = True
    Me.Print "Папка кнопки Пуск: " + GetSpecialfolder(CSIDL_STARTMENU)
    Me.Print "Папка Избранное: " + GetSpecialfolder(CSIDL_FAVORITES)

' Создаем функцию-оболочку для удобства
Private Function GetSpecialfolder(CSIDL As Long) As String
    Dim r As Long
    Dim IDL As ITEMIDLIST
    ' получаем название специальной папки
    r = SHGetSpecialFolderLocation(100, CSIDL, IDL)
    If r = NOERROR Then
        Path$ = Space$(512)
        ' получаем путь из IDList
        r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
        'удаляем ненужный символ chr$(0)
        GetSpecialfolder = Left$(Path, InStr(Path, Chr$(0)) - 1)
        Exit Function
    End If
    GetSpecialfolder = ""
End Function

Схожие функции

SHGetFolderLocation, SHGetSpecialFolderPath

Категория
Оболочка


Функции Windows API:ShowCursor

Функция ShowCursor

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

Платформа Win 95/98, Win NT

ShowCursor показывает или скрывает курсор мыши

Параметры
bShow
Если False,то курсор невидим,если True-курсор видим
Пример
' прячем курсор на 3 секунды
Dim X As Long
MsgBox "Сейчас ваш курсор мыши исчезнет на 3 секунды"
'гасим курсор
X = ShowCursor(False)
Sleep 3000
'показываем курсор
X = ShowCursor(True)
'Внимание!
'Погасив курсор,обязательно восстановите его при завершении
Категория
Курсор


Функции Windows API:ShowWindow

Функция ShowWindow

Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Платформа Win 95/98, Win NT

ShowWindow показывает(или скрывает) окна стандартным способом.Например,функция может свернуть,развернуть или восстановить окно.Функция возвращает 0,если окно было раньше скрыто.Если окно было видимым-возвращает значение, отличное от нуля

hwnd
Дескриптор окна для изменения статуса этого окна.
nCmdShow
Флаги функции,определяющие вид окна:
SW_HIDE = 0
Скрыть окно и активизировать другое окно
SW_MAXIMIZE = 3
Развернуть окно
SW_MINIMIZE = 6
Свернуть окно и активизировать следующее окно в Z-порядке(следующее под свернутым окном)
SW_RESTORE = 9
Активизировать и отобразить окно.Если окно свернуто или развернуто,Windows восстанавливает его исходный размер и положение
SW_SHOW = 5
Активизировать окно
SW_SHOWMAXIMIZED = 3
Отобразить окно в развернутом виде
SW_SHOWMINIMIZED = 2
Отобразить окно в свернутом виде
SW_SHOWMINNOACTIVE = 7
Отобразить окно в свернутом виде.Активное окно остается активным
SW_SHOWNA = 8
Отобразить окно в текущем состоянии.Активное окно остается активным
SW_SHOWNOACTIVATE = 4
Отобразить окно в соответствии с последними значениями позиции и размера.Активное окно остается активным
SW_SHOWNORMAL = 1
Активизировать и отобразить окно.Если окно свернуто или развернуто,Windows восстанавливает его исходный размер и положение.Приложение должно указывать этот флаг при первом отображении окна
Пример
' Развертываем окно формы Form1.  Сначала убедимся,что
'окно видимо.
Dim retval As Long  ' возвращаемое значение

retval = ShowWindow(Form1.hWnd, SW_SHOW)  ' показываем окно,если оно скрыто
retval = ShowWindow(Form1.hWnd, SW_MAXIMIZE)  'Развертываем окно
Схожие функции
IsIconic, IsZoomed
Категория: Окна


Функции Windows API:SHQueryRecycleBin

Функция SHQueryRecycleBin

Declare Function SHQueryRecycleBin Lib "shell32" Alias "SHQueryRecycleBinA" (ByVal pszRootPath As String, pSHQueryRBInfo As SHQUERYRBINFO) As Long

Платформа
  • Windows 95: Требуется Internet Explorer 4.0 или выше
  • Windows 98: Поддерживается
  • Windows NT: Требуется Windows NT 4.0 или выше и Internet Explorer 4.0.
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

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

Возвращаемое значение

В случае ошибки функция возвращает код ошибки,отличный от нуля.В успешном случае функция возвратит 0

Параметры
pszRootPath
Путь к диску для отдельной Корзины. Если эта строка пуста, функция вместо этого делает запрос всех Корзин системы в целом
pSHQueryRBInfo
Получает число байтов в Корзине и число элементов в нем. Элемент структуры cbSize должен быть инициализирован перед запросом функции
Пример

' Отобразим число элементов в Корзине на диске C:
' и размер корзины
Dim rbinfo As SHQUERYRBINFO  ' информация о Корзине
Dim retval As Long  ' возвращаемое значение

' Инициализируем размер структуры
rbinfo.cbSize = Len(rbinfo)
' узнаем содержимое корзины на C:
retval = SHQueryRecycleBin("C:\", rbinfo)
' Отобразим число элементов в Корзине, если значение
' в пределах чисел,поддерживаемых Visual Basic.
If (rbinfo.i64NumItems.LowPart And &H80000000) = &H80000000 Or rbinfo.i64NumItems.HighPart > 0 Then
  Debug.Print "Корзина содержит более 2 миллиардов элементов."
Else
  Debug.Print "Корзина содержит"; rbinfo.i64NumItems.LowPart; "элементов."
End If
' количестов байтов в Корзине.
If (rbinfo.i64Size.LowPart And &H80000000) = &H80000000 Or rbinfo.i64Size.HighPart > 0 Then
  Debug.Print "Корзина содержит более 2 гигабит."
Else
  Debug.Print "Корзина содержит"; rbinfo.i64Size.LowPart; "байт."
End If

Схожие функции
SHEmptyRecycleBin
Категория
Оболочка


Функции Windows API:Sleep

Процедура Sleep

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

ПлатформаWin 95/98, Win NT

Sleep останавливает выполнение программы на определенное время.Процедура Sleep не является функцией и не возвращает значение

Параметры

dwMilliseconds
Число миллисекунд для приостановки выполнения программы
Пример
' Делаем паузу на две
 'секунды между двумя сообщениями

MsgBox "Делаем паузу"
Sleep 2000  ' 2000 миллисекунд = 2 секунды паузы
MsgBox "Получилось?"
Категория
Разное


Функции Windows API:sndPlaySound

Функция sndPlaySound

Declare Function sndPlaySound Lib "winmm" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Платформа: Win 95/98, Win NT

Примечание: Функция sndPlaySound является устаревшей. Пользуйтесь функцией PlaySound

sndPlaySound запускает WAV-файл или определенный системой звук. При использовании флага SND_NODEFAULT , функция возвращает 0, если WAV-файл (или системный звук) не найден и 1,если звук существует. Если флажок не установлен, функция всегда возвращает 1 и запускает звук по умолчанию Windows, если указанный звук не может быть найден

Параметры
lpszSoundName
Путь и имя WAV-файла для воспроизведения, или название системного звука
uFlags
Ноль или большее количество следующих флажков, определяющих, как запустить звук:
SND_ALIAS = &H10000
Воспроизведение звуков Windows,определенных в WIN.INI или в реестре (напр. SystemStart, Asterisk, и т.д.).
SND_ASYNC = &H1
Асинхронное воспроизведение
SND_FILENAME = &H20000
Запуск указанного файла
SND_LOOP = &H8
Циклическое воспроизведение до следующего вызова sndPlaySound lpszSoundName = "". Можно также использовать SND_ASYNC
SND_NODEFAULT = &H2
Не запускать звук по умолчанию Windows, если указанный звук не может быть найден.
SND_NOSTOP = &H10
Не прекращать воспроизведение любого запущенногозвука
SND_NOWAIT = &H2000
Не ждать,если драйвер занят
SND_SYNC = &H0
Синхронное воспроизведение(значение по умолчанию).Ждать, пока звук не закончил играть перед продолжающимся выполнением программы.

Пример:

 ' играем системный звук Пустая корзина и останавливаем
' выполнение программы пока не закончится воспроизведение звука.
Dim retval As Long

retval = sndPlaySound("EmptyRecycleBin", SND_ALIAS Or SND_SYNC)

Схожие функции: PlaySound
Категория: Мультимедиа


Функции Windows API:StretchBlt

Функция StretchBlt

Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 hSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

StretchBlt копирует часть изображения от одного устройства в другое. Эта функция также позволяет масштабировать(сжимать,растягивать,выворачивать наизнанку,задавая параметры с разными знаками) изображение, в отличие от функции BitBlt. В случае ошибки,функция возвращает 0,в успешном случае возвращается 1

hDestDC
Контекст устройства объекта-получателя
x
Координата x точки, чтобы поместить изображение внутри цели
y
Координата y точки, чтобы поместить изображение внутри цели
nWidth
Ширина части изображения
nHeight
Высота части изображения
xSrc
Координата x левого верхнего угла части изображения в источнике
ySrc
Координата y левого верхнего угла части изображения в источнике
nSrcWidth
Ширина части изображения в источнике
nSrcHeight
Высота части изображения в источнике
dwRop
Флажки, определяющие, какой метод использовать, чтобы копировать исходное изображение:
SRCAND = &H8800C6
Логическое И двух номеров цвета ( источник And получатель)
SRCCOPY = &HCC0020
Точно копирование исходного изображения (получатель = источник)
SRCERASE = &H440328
Логическое And исходного изображения и двоичная инверсия получателя(получатель = источник And (Не получатель)
SRCINVERT = &H660046
Логическое Xor двух номеров цвета (получатель = источник Xor получатель)
SRCPAINT = &HEE0086
Логическое Or этих двух номеров цвета (получатель = источник Or получатель)
Пример:
' Копируем часть изображения из Picture1 в PictureBox2 и
' растягиваем его, чтобы утроить его первоначальную ширину. Первоначальные измерения изображения
' 16x32; его новые 48x32.
' Координаты источника: (45,50)-(60,81)
' Координаты получателя: (0,0)-(47,31)

Dim retval As Long  '  возвращаемое значение

retval = StretchBlt(Picture2.hdc, 0, 0, 48, 32, Picture1.hdc, 45, 50, 16, 32, SRCCOPY)

Схожие функции: BitBlt
Категория: Графика


Функции Windows API:SubtractRect

Функция SubtractRect

Declare Function SubtractRect Lib "user32" (lprcDst As RECT, lprcSrc1 As RECT, lprcSrc2 As RECT) As Long

Платформа: Win 95/98, Win NT

SubtractRect вычитает один прямоугольник от другого. Вычитание прямоугольника определено следующим образом. Два прямоугольника должны пересечься полностью по одной полной стороне. Другими словами, они должны совместно использовать общую сторону. Если это истинно, то прямоугольник, который не является частью второго прямоугольника - также прямоугольник. Этот прямоугольник - прямоугольник вычитания. Этот прямоугольник помещен в переменную lprcDst. Если эти условия не выполняются,то lprcDst установлена равным первому прямоугольнику, и функция возвращает 0. Если вычитание возможно, функция возвращает 1

lprcDst
Переменная, которая получает прямоугольник вычитания
lprcSrc1
Большой прямоугольник
lprcSrc2
Маленький прямоугольник

Пример:

' Демонстрация вычитания. target = big - small.
' big = (10,10)-(100,100).  small = (50,10)-(150,150).  Обратите внимание, что левая сторона этих двух прямоугольников
' общая. target будет установлен в (10,10) - (50,100).
Dim target As RECT, big As RECT, small As RECT
Dim retval As Long  ' возвращаемое значение

'Установливаем большие и маленькие прямоугольники
retval = SetRect(big, 10, 10, 100, 100)
retval = SetRect(small, 50, 10, 150, 150)

' Вычитаем маленький прямоугольник из большого и помещаем результать в target
retval = SubtractRect(target, big, small)  ' теперь target = (10,10)-(50,100)

Схожие функции: IntersectRect, UnionRect
Категория: Прямоугольники


Функции Windows API:SwapMouseButton

Функция SwapMouseButton

Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As Long

Платформа Win 95/98, Win NT

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

Параметры
bSwap
Определяет настройки кнопки мыши. Значение "0" не меняет кнопки .Значение "1" меняют левые и правые кнопки
Пример
' Меняем кнопки местами

Dim retval As Long  ' возвращаемое значение

retval = SwapMouseButton(1)  ' переключаем кнопки

Debug.Print "Вы поменяли местами левую и правую кнопки мыши!"
Категория:
Мышь


Функции Windows API:SystemParametersInfo

Функция SystemParametersInfo

Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uiParam As Long, pvParam As Any, ByVal fWinIni As Long) As Long

Платформа: Win 95/98, Win NT

SystemParametersInfo читает или устанавливает информацию относительно многочисленных параметров настройки в Windows. Точное поведение функции зависит от флажка uAction. Все размеры и измерения, используемые этой функцией измерены в пикселах. При использовании структуры для получения информации, член, идентифицирующий размер структуры (если существует) должен быть правильно установлен заранее. Обычно,многие из свойств устанавливаются через Панель управления. Возвращаемое значение в почти всех случаях (исключения отмечены) равен 0 в случае ошибки или ненулевое значение в успешном случае. Примечание пользователям Visual Basic: При передаче строки pvParamнужно добавлять ключевое слово ByVal перед ней

uAction
Точно один из следующих флажков, определяющих действие, принятое функцией:
SPI_GETACCESSTIMEOUT = 60
Получает информацию относительно блокировки времени.uiParam должна быть размером структуры ACCESSTIMEOUT. pvParam-структура ACCESSTIMEOUT получающая установки относительно блокировки времени
SPI_GETANIMATION = 72
только для Win 95/98: Получает информацию относительно эффектов анимации, связанных с действиями пользователя. uiParam должен быть установлен в 0. pvParam -структура ANIMATIONINFO ,получающая установки относительно эффектов анимации
SPI_GETBEEP = 1
Определяет, вкл. или выкл. устройство звуковой сигнализации предупреждения. uiParam должна быть установлена в 0. pvParam -переменная типа Long,которая получает 0, если устройство звуковой сигнализации предупреждения выключено, или ненулевое значение, если включено
SPI_GETBORDER = 5
Определяет ширину границы окна. uiParam должна быть установлена в 0. pvParam -переменная типа Long,которая получает текущие установки
SPI_GETDEFAULTINPUTLANG = 89
только для Win 95/98: Получает дескриптор к расладке клавиатуры, используемой для заданного по умолчанию языка системы. uiParam должна быть установлена в 0. pvParam-переменная типа Long,которая получает дескриптор
SPI_GETDRAGFULLWINDOWS = 38
только для Win 95/98: Определяет, отображает ли Windows полное содержание окна при перемещении или изменении. uiParam должна быть установлена в 0. pvParam -переменная типа Long,которая получает 0 ,если содержание не отображено, или ненулевое значение, если отображено
SPI_GETFASTTASKSWITCH = 35
Determine if fast Alt-Tab task switching is enabled. uiParam должна быть установлена в 0. pvParam -переменная типа Long,которая получает 0 if fast task switching is not enabled, or a non-zero value if it is
SPI_GETFILTERKEYS = 50
Retrieve the settings of the FilterKeys accessibility feature. uiParam must be the size of the FILTERKEYS structure. pvParam is a FILTERKEYS structure which receives the current settings of FilterKeys
SPI_GETFONTSMOOTHING = 74
Determine whether font smoothing is enabled or not. uiParam должна быть установлена в 0. pvParam is a Long-type variable which receives 0 if font smoothing is not enabled, or a non-zero value if it is
SPI_GETGRIDGRANULARITY = 18
Retrieve the current granularity of the desktop sizing grid. uiParam must be 0. pvParam is a Long-type variable which receives the current setting
SPI_GETHIGHCONTRAST = 66
Win 95/98 only: Retrieve the settings of the HighContrast accessibility feature. uiParam must be 0. pvParam is a HIGHCONTRAST structure which receives the current settings of HighContrast
SPI_GETICONMETRICS = 45
Win 95/98 only: Retrieve the metrics associated with icons, which determine how Windows displays icons. uiParam must be 0. pvParam is an ICONMETRICS structure which receives the icon metrics
SPI_GETICONTITLELOGFONT = 31
Retrieve information about the logical font used to display the titles of icons. uiParam must be the size of the LOGFONT structure. pvParam is a LOGFONT structure which receives information about the logical font
SPI_GETICONTITLEWRAP = 25
Determine if Windows word-wraps the text of icon titles. uiParam must be 0. pvParam is a Long-type variable which receives 0 if word-wrapping is not enabled, or a non-zero value if it is
SPI_GETKEYBOARDDELAY = 22
Retrieve the current keyboard repeat delay setting, which is the time before a held key begins to repeat. uiParam must be 0. pvParam is a Long-type variable which receives the current delay setting (a value between 0 and 3)
SPI_GETKEYBOARDPREF = 68
Win 95/98 only: Determine if the user relies on the keyboard instead of the mouse and wants programs to display keyboard interfaces which are otherwise hidden. uiParam должна быть установлена в 0. pvParam is a Long-type variable which receives 0 if the user does not rely on the keyboard, or a non-zero value if the user does
SPI_GETKEYBOARDSPEED = 10
Retrieve the current keyboard repeat speed setting, which is the speed between repeats when a key is held. uiParam должна быть установлена в 0. pvParam is a Long-type variable which receives the current speed setting (a value between 0 and 31)
SPI_GETLOWPOWERACTIVE = 83
Win 95/98 only: Determine if the system enters a low-power mode after a period of inactivity. uiParam must be 0. pvParam is a Long-type variable which receives 0 if low-power mode is not enabled, or a non-zero value if it is
SPI_GETLOWPOWERTIMEOUT = 79
Win 95/98 only: Retrieve the time, in seconds, which must elapse before Windows enters low-power mode. uiParam must be 0. pvParam is a Long-type variable which receives the current timeout value
SPI_GETMENUDROPALIGNMENT = 27
Determine if popup menus are left- or right-aligned. uiParam must be 0. pvParam is a Long-type variable which receives 0 if the menus are right-aligned, or a non-zero value if they are left-aligned
SPI_GETMINIMIZEDMETRICS = 43
Win 95/98 only: Retrieve the metrics associated with minimized windows, which specify how Windows displays minimized windows. uiParam must be the size of the MINIMIZEDMETRICS structure. pvParam is a MINIMIZEDMETRICS structure which receives the minimized window metrics
SPI_GETMOUSE = 3
Retrieve the x-axis and y-axis threshold values for the mouse as well as the mouse speed. uiParam must be 0. pvParam is a 3-element array of Long-type variables which receives the x-threshold, y-threshold, and mouse speed
SPI_GETMOUSEKEYS = 54
Retrieve the settings of the MouseKeys accessibility feature. uiParam must be the size of the MOUSEKEYS structure. pvParam is a MOUSEKEYS structure which receives the current settings of MouseKeys
SPI_GETMOUSETRAILS = 94
Win 95/98 only: Retrieve the current mouse trails setting. uiParam must be 0. pvParam receives 0 or 1 if mouse trails are not enabled, or a value greater than one identifying the number of cursor images making up the mouse trail
SPI_GETNONCLIENTMETRICS = 41
Win 95/98 only: Retrieve the metrics associated with the nonclient areas of windows, which determine how Windows renders nonclient areas. uiParam must be 0. pvParam is a NONCLIENTMETRICS structure which receives the nonclient area metrics
SPI_GETPOWEROFFACTIVE = 84
Win 95/98 only: Determine if the system enters a power-off mode after a period of inactivity. uiParam must be 0. pvParam is a Long-type variable which receives 0 if power-off mode is not enabled, or a non-zero value if power-off mode is enabled
SPI_GETPOWEROFFTIMEOUT = 80
Win 95/98 only: Retrieve the time-out value, in seconds, that must elapse before Windows enters power-off mode. uiParam must be 0. pvParam is a Long-type variable which receives the time-out value for power-off mode
SPI_GETSCREENREADER = 70
Win 95/98 only: Determine if a screen reader utility is running. If it is, applications should present more textual output instead of graphical output to help the reader function better. uiParam должна быть установлена в 0. pvParam is a Long-type variable which receives 0 if no screen reader is running, or a non-zero value if one is
SPI_GETSCREENSAVEACTIVE = 16
Determine if a screen saver is set to run. uiParam должна быть установлена в 0. pvParam is a Long-type variable which receives 0 if no screen saver is set to run, or a non-zero value if one is
SPI_GETSCREENSAVETIMEOUT = 14
Retrieve the time-out period, in seconds, which must elapse before the screen saver begins running. uiParam должна быть установлена в 0. pvParam is a Long-type variable which receives the time-out value
SPI_GETSERIALKEYS = 62
Win 95/98 only: Retrieve the settings of the SerialKeys accessibility feature. uiParam must be 0. pvParam is a SERIALKEYS structure which receives the current settings of SerialKeys
SPI_GETSHOWSOUNDS = 56
Determine if the user desires visual information to replace or suppliment otherwise audio-only output. uiParam must be 0. pvParam is a Long-type variable which receives 0 if programs should not display this added visual information, or a non-zero value if they should
SPI_GETSOUNDSENTRY = 64
Retrieve the settings of the SoundSentry accessibility feature. uiParam must be the size of the SOUNDSENTRY structure. pvParam is a SOUNDSENTRY structure which receives the current settings of SoundSentry
SPI_GETSTICKYKEYS = 58
Retrieve the settings of the StickyKeys accessibility feature. uiParam must be the size of the STICKYKEYS structure. pvParam is a STICKYKEYS structure which receives the settings of StickyKeys
SPI_GETTOGGLEKEYS = 52
Retrieve the settings of the ToggleKeys accessibility feature. uiParam must be the size of the TOGGLEKEYS structure. pvParam is a TOGGLEKEYS structure which receives the current settings of ToggleKeys
SPI_GETWINDOWSEXTENSION = 92
Win 95/98 only: Determine if the Windows extensions are installed. Win 95 requires that Microsoft Plus! be installed to get the extensions; the extensions are integrated as a part of Win 98. uiParam must be 1. pvParam must be 0. The function returns 0 if the extensions are disabled, or a non-zero value if they are enabled
SPI_GETWORKAREA = 48
Win 95/98 only: Retrieve the size of the working area, which is a rectangle identifying the area of the desktop not obscured by the taskbar. uiParam must be 0. pvParam is a RECT structure which receives the rectangle of the working area
SPI_ICONHORIZONTALSPACING = 13
Set the width of the icon spacing cell. uiParam is the new setting for the width. pvParam must be 0
SPI_ICONVERTICALSPACING = 24
Set the height of the icon spacing cell. uiParam is the new setting for the height. pvParam must be 0
SPI_LANGDRIVER = 12
Win 95/98 only: Retrieve the filename of the language driver. uiParam must be 0. pvParam is a String (with sufficient buffer space) which receives the filename of the language driver
SPI_SETACCESSTIMEOUT = 61
Set information associated with the time-out period associated with the accessibility features. uiParam must be the size of the ACCESSTIMEOUT structure. pvParam is an ACCESSTIMEOUT structure holding the new time-out period settings
SPI_SETANIMATION = 73
Win 95/98 only: Set information about the animation effects associated with the user's actions. uiParam must be 0. pvParam is an ANIMATIONINFO structure holding the new animation effects settings
SPI_SETBEEP = 2
Turn the warning beeper on or off. uiParam is 0 to turn the beeper off, or a non-zero value to turn it on. pvParam must be 0
SPI_SETBORDER = 6
Set the window sizing border multiplier factor, which determines the width of a window's sizing border. uiParam is the new setting. pvParam должна быть установлена в 0
SPI_SETCURSORS = 87
Reload the images used for the system cursors. uiParam and pvParam must be 0
SPI_SETDEFAULTINPUTLANG = 90
Win 95/98 only: Set the keyboard layout used for the system's default input language. uiParam is a handle to the keyboard layout to use. pvParam must be 0
SPI_SETDESKPATTERN = 21
Set the current desktop pattern bitmap by causing Windows to reread the Pattern setting in the [Desktop] section of WIN.INI. Both uiParam and pvParam must be 0
SPI_SETDESKWALLPAPER = 20
Установка рисунка для обоев Рабочего стола. uiParam должна быть установлена в 0. pvParam- Строка,содержащая имя файла рисунка, чтобы использовать как обои
SPI_SETDOUBLECLICKTIME = 32
Set the time, in milliseconds, within which two successive mouse clicks must occur for Windows to interpret the input to be a double click. uiParam is the new double click time. pvParam must be 0
SPI_SETDOUBLECLKHEIGHT = 30
Set the height of the rectangle within which two successive mouse clicks must occur for Windows to interpret the input to be a double click. uiParam is the new height. pvParam must be 0
SPI_SETDOUBLECLKWIDTH = 29
Set the width of the rectangle within which two successive mouse clicks must occur for Windows to interpret the input to be a double click. uiParam is the new width. pvParam must be 0
SPI_SETDRAGFULLWINDOWS = 37
Win 95/98 only: Turn dragging of full windows (displaying the contents of a window while moving or resizing instead of just an empty border) on or off. uiParam is 0 to turn dragging of full windows off, or a non-zero value to turn it on
SPI_SETDRAGHEIGHT = 77
Win 95/98 only: Set the height of the rectangle which the cursor must move out of with a button depressed for Windows to begin a drag operation. uiParam is the new height. pvParam must be 0
SPI_SETDRAGWIDTH = 76
Win 95/98 only: Set the width of the rectangle which the cursor must move out of with a button depressed for Windows to begin a drag operation. uiParam is the new width. pvParam must be 0
SPI_SETFASTTASKSWITCH = 36
Turn fast Alt-Tab task switching on or off. uiParam is 0 to turn fast switching off, or a non-zero value to turn it on. pvParam must be 0
SPI_SETFILTERKEYS = 51
Set the settings of the FilterKeys accessibility feature. uiParam must be the size of the FILTERKEYS structure. pvParam is a FILTERKEYS structure holding the new settings for FilterKeys
SPI_SETFONTSMOOTHING = 75
Turn font smoothing on or off. uiParam is 0 to turn font smoothing off, or a non-zero value to turn it on
SPI_SETGRIDGRANULARITY = 19
Set the granularity of the desktop sizing grid. uiParam is the new setting. pvParam must be 0
SPI_SETHIGHCONTRAST = 67
Win 95/98 only: Set the settings of the HighContrast accessibility feature. uiParam must be 0. pvParam is a HIGHCONTRAST structure holding the new settings for HighContrast
SPI_SETICONMETRICS = 46
Win 95/98 only: Set the metrics associated with icons, which specify how Windows displays icons. uiParam must be 0. pvParam is an ICONMETRICS structure holding the new icon metrics
SPI_SETICONS = 88
Reload the images used for the system icons. uiParam and pvParam must be 0
SPI_SETICONTITLELOGFONT = 34
Set the logical font used to display the text of icon titles. uiParam must be the size of the LOGFONT structure. pvParam is a LOGFONT structure holding the logical font to use
SPI_SETICONTITLEWRAP = 26
Turn the word-wrapping of icon titles on or off. uiParam is 0 to turn word-wrapping off, or a non-zero value to turn it on. pvParam must be 0
SPI_SETKEYBOARDDELAY = 23
Set the keyboard repeat-delay setting, which is the time that must elapse before a held key begins to repeat. uiParam is the new delay setting, between 0 and 3 inclusive. pvParam must be 0
SPI_SETKEYBOARDPREF = 69
Win 95/98 only: Tell Windows whether the user depends on the keyboard as the main input device and wishes programs to display additional keyboard-based interfaces. uiParam is 0 to not indicate a keyboard preference, or a non-zero value to indicate one. pvParam must be 0
SPI_SETKEYBOARDSPEED = 11
Set the keyboard repeat-speed setting, which specifies the rate at which keys are repeated. uiParam is the new speed setting, between 0 and 31 inclusive. pvParam must be 0
SPI_SETLANGTOGGLE = 91
Win 95/98 only: Set the hot key used to switch keyboard input languages. The new value is read from the registry at HKEY_CURRENT_USER\keyboard layout\toggle: 1 sets the hot key to ALT+SHIFT, 2 sets the hot key to CTRL+SHIFT, and 3 disables the hot key. uiParam and pvParam must be 0
SPI_SETLOWPOWERACTIVE = 85
Win 95/98 only: Turn the low-power mode after a period of inactivity on or off. uiParam is 0 to deactivate low-power mode, or 1 to activate to. pvParam must be 0
SPI_SETLOWPOWERTIMEOUT = 81
Win 95/98 only: Set the time-out period (in seconds) which must elapse after user input before Windows enters low-power mode. uiParam is the new time-out period. pvParam must be 0
SPI_SETMENUDROPALIGNMENT = 28
Set whether pop-up menus open to the left or to the right. uiParam is 0 if they open to the left, or a non-zero value if they open to the right. pvParam must be 0
SPI_SETMINIMIZEDMETRICS = 44
Win 95/98 only: Set the metrics associated with minimized windows, which determine how Windows displays minimized windows. uiParam must be 0. pvParam is a MINIMIZEDMETRICS structure holding the new metrics
SPI_SETMOUSE = 4
Set the x-axis and y-axis threshold values for the mouse as well as the mouse speed. uiParam must be 0. pvParam is a three-element Long-type array; the first element is the x-threshold, the second element is the y-threshold, and the third element is the mouse speed
SPI_SETMOUSEBUTTONSWAP = 33
Swap or unswap the meanings of the left and right mouse buttons. uiParam is 0 to restore the left-to-left/right-to-right mapping, or a non-zero value to swap the buttons into a left-to-right/right-to-left mapping. pvParam must be 0
SPI_SETMOUSEKEYS = 55
Set the settings of the MouseKeys accessibility feature. uiParam must be the size of the MOUSEKEYS structure. pvParam is a MOUSEKEYS structure holding the new settings for MouseKeys
SPI_SETMOUSETRAILS = 93
Win 95/98 only: Set the length of the mouse trail. uiParam is 0 or 1 to turn mouse trails off, or a value greater than one identifying the number of cursor images used to make up the mouse trail. pvParam must be 0
SPI_SETNONCLIENTMETRICS = 42
Win 95/98 only: Set the metrics associated with the non-client areas of windows, which determine how Windows displays the non-client areas. uiParam must be 0. pvParam is a NONCLIENTMETRICS structure holding the new metrics
SPI_SETPENWINDOWS = 49
Win 95/98 only: Load or unload Microsoft Pen for Windows, if available. uiParam is 0 to unload Pen, or a non-zero value to load Pen. pvParam must be 0
SPI_SETPOWEROFFACTIVE = 86
Win 95/98 only: Set whether the system powers down after a period of inactivity. uiParam is 0 to not enter power-off mode, or a non-zero value to enter power-off mode. pvParam must be 0
SPI_SETPOWEROFFTIMEOUT = 82
Win 95/98 only: Set the time-out period, in seconds, which must elapse without user input before Windows enters power-off mode. uiParam is the new time-out period. pvParam must be 0
SPI_SETSCREENREADER = 71
Win 95/98 only: Set whether a screen-reading program is currently running. uiParam is 0 if no reader is in use, or a non-zero value if one is. pvParam must be 0
SPI_SETSCREENSAVEACTIVE = 17
Set whether Windows activates a screen saver after a period of inactivity. uiParam is 0 to turn the screen saver off, or a non-zero value to turn it on. pvParam must be 0
SPI_SETSCREENSAVETIMEOUT = 15
Set the time-out period, in seconds, which must elapse before Windows launches a screen saver. uiParam is the new time-out period. pvParam must be 0
SPI_SETSERIALKEYS = 63
Win 95/98 only: Set the settings of the SerialKeys accessibility feature. uiParam must be 0. pvParam is a SERIALKEYS structure holding the new settings for SerialKeys
SPI_SETSHOWSOUNDS = 57
Turn the ShowSounds accessibility feature on or off. uiParam is 0 to turn ShowSounds off, or a non-zero value to turn ShowSounds on. pvParam must be 0
SPI_SETSOUNDSENTRY = 65
Set the settings of the SoundSentry accessibility feature. uiParam must be the size of the SOUNDSENTRY structure. pvParam is a SOUNDSENTRY structure holding the new settings for SoundSentry
SPI_SETSTICKYKEYS = 59
Set the settings of the StickyKeys accessibility feature. uiParam is the size of the STICKYKEYS structure. pvParam is a STICKYKEYS structure holding the new settings for StickyKeys
SPI_SETTOGGLEKEYS = 53
Set the settings of the ToggleKeys accessibility feature. uiParam is the size of the TOGGLEKEYS structure. pvParam is a TOGGLEKEYS structure holding the new settings for ToggleKeys
SPI_SETWORKAREA = 47
Win 95/98 only: Set the rectangle defining the working area of the desktop. The working area is the area of the desktop not obscured by the taskbar. uiParam must be 0. pvParam is a RECT structure holding the new working area rectangle
uiParam
The purpose of this parameter varies with uAction
pvParam
The purpose of this parameter varies with uAction. In VB, if this is to be set as a string or to 0, the ByVal keyword must preceed it
fWinIni
Zero or more of the following flags specifying the change notification to take place. Generally, this can be set to 0 if the function merely queries information, but should be set to something if the function sets information
SPIF_SENDWININICHANGE = &H2
Broadcast the change made by the function to all running programs
SPIF_UPDATEINIFILE = &H1
Save the change made by the function to the user profile

Пример #1:

' Установим рисунок для обоев Рабочего стола с помощью файла button.bmp из папки C:\Samples
' Обратите внимание, что строка передается функции с ключевым словом ByVal .
Dim sample As String  ' имя файла
Dim retval As Long  ' возвращаемое значение
sample = "C:\Samples\button.bmp"
' Установливаем обои Windows, сохраняя изменения и уведомляя все программы
retval = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, ByVal sample, SPIF_SENDWININICHANGE Or SPIF_UPDATEINIFILE)

Пример #2:

' Tell the user whether the MouseKeys accessibility feature is on
' or off.  Note how the structure's cbSize parameter must be set first.
Dim mk As MOUSEKEYS  ' holds settings for MouseKeys
Dim retval As Long  ' возвращаемое значение

mk.cbSize = Len(mk)  ' set the size of the structure
' Load the MouseKeys settings into the structure.
retval = SystemParametersInfo(SPI_GETMOUSEKEYS, Len(mk), mk, 0)  ' don't need to notify
' Display whether MouseKeys is on or off.
If (mk.dwFlags And MKF_MOUSEKEYSON) = MKF_MOUSEKEYSON Then
  Debug.Print "MouseKeys is on"
Else
  Debug.Print "MouseKeys is off"
End If

Схожие функции: GetSystemMetrics
Категория: Доступ к параметрам системы


Функции Windows API:TextOut

Функция TextOut

Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long

Платформа: Win 95/98, Win NT

TextOut отображает строку текста на устройстве. Отношение текста к координатам (x, y) может быть установлена, используя SetTextAlign. Текст будет отображен текущим шрифтом и цветом устройства.В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0

hdc
Контекст устройства для отображения строки текста
x
Координата x контрольной точки, чтобы отобразить текст
y
Координата y контрольной точки, чтобы отобразить текст
lpString
Строка,отображаемая на устройстве
nCount
Размер в символах lpString

Пример:

' Выводим текст "Hello, world!" на окне Form1 в (100,50).
Dim retval As Long  ' возвращаемое значение
' показываем текст:
retval = TextOut(Form1.hDC, 100, 50, "Hello, world!", 13)

Схожие функции: GetTextAlign, SetTextAlign
Категория: Шрифты и тексты


Функции Windows API:UnionRect

Функция UnionRect

Declare Function UnionRect Lib "user32" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long

Платформа: Win 95/98, Win NT

UnionRect определяет самый маленький возможный прямоугольник, который содержит два других прямоугольника. Этот прямоугольник называется прямоугольником объединения, потому что это получено из объединения областей, которые два исходных прямоугольника занимают. Прямоугольник объединения помещен в переменную lpDestRect. Функция возвращает 0 в случае ошибки или 1 в успешном случае

lpDestRect
Переменная, которую получает прямоугольник объединения
lpSrc1Rect
Первый из двух исходных прямоугольников
lpSrc2Rect
Второй из двух исходных прямоугольников

Пример:

' Создадим большой прямоугольник, который содержит области, занятые
' прямоугольниками frect и srect. Новый прямоугольник будет полностью содержать оба меньших прямоугольника.
' frect = (20,30)-(60,80); srect = (100,110)-(200,300)
Dim frect As RECT, srect As RECT  ' маленькие прямоугольники
Dim urect As RECT  ' получим прямоугольник объединения
Dim retval As Long  ' возвращаемое значение

' Устанавливаем маленькие прямоугольники
retval = SetRect(frect, 20, 30, 60, 80)
retval = SetRect(srect, 100, 110, 200, 300)
' Вычисляем прямоугольник объединения
retval = UnionRect(urect, frect, srect)  ' теперь urect = (20,30)-(200,300)

Схожие функции: IntersectRect, SubtractRect
Категория: Прямоугольники


Функции Windows API:WindowFromPoint

Функция WindowFromPoint

Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

Платформа: Win 95/98, Win NT

WindowFromPoint определяет дескриптор окна,расположенного в определенной точке экрана.(text box, list box, кнопки и другие объекты-тоже окна).В успешном случае функция возвращает дескриптор окна в этой точке.Если в точке нет окна,или произошла ошибка-возвращается 0

xPoint
Координата x точки при определении окна
yPoint
Координата y точки при определении окна

Пример:

' Показываем текст заголовка окно,над которым находится курсор мыши
' Это может быть окно программы или окно элемента управления.
Dim mousepos As POINTAPI  ' координаты курсора мыши
Dim wintext As String, slength As Long  ' текст заголовков окна и его длина
Dim hwnd As Long  ' дескриптор окна,находящегося в точке
Dim retval As Long  ' возвращаемое значение

' Определяем окно под курсором
retval = GetCursorPos(mousepos)  ' получаем координаты курсора
hwnd = WindowFromPoint(mousepos.x, mousepos.y)  ' определяем окно под курсором
If hwnd = 0 Then  ' ошибка или нет окна  в этой точке
  Debug.Print "Здесь ничего нет."
  End
End If

' Показываем заголовок окна
slength = GetWindowTextLength(hwnd)  ' получаем длину заголовка
wintext = Space(slength + 1)  ' создаем место в буфере для приема строки
slength = GetWindowText(hwnd, wintext, slength + 1)  ' получаем текст
wintext = Left(wintext, slength)  ' извлекаем строку из буфера
Debug.Print "Заголовок окна: "; wintext

Категория: Окна


Функции Windows API:WritePrivateProfileString

Функция WritePrivateProfileString

Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long

Платформа: Win 95/98, Win NT

WritePrivateProfileString устанавливает строковые значения в INI-файлах.Также функция может быть использована для установки числовых значений,если использовать их в строковом виде(например, "1").Если файл,в который вы пытаетесь установить значение,не существует,он будет создан.Аналогично,будут созданы разделы,ключи и значения ключей.Функция возвращает 0 при ошибке в выполнении и 1 при успешном выполнении.Обратите внимание, что поддержка INI -файлов обеспечивается в Windows для совместимости; для хранения информации используйте системный реестр

Параметры
lpApplicationName
Значение раздела INI-файла
lpKeyName
Значение ключа
lpString
устанавлимое строковое значение
lpFileName
Имя INI-файла
Пример
' Устанавливаем значение ключа "username" в разделе [Default] файла
' C:\config.ini to "Russian Vanja".  Также устанавливаем
' ключ "информация" в этом же разделе со значением 1
' (то есть, "1").
Dim retval As Long  ' возвращаемое значение

' устанавливаем строковый параметр.
retval = WritePrivateProfileString("Default", "username", "Russian Vanja", "C:\config.ini")

' устанавливаем числовой параметр.
retval = WritePrivateProfileString("Default", "информация", "1", "C:\config.ini")
Схожие функции GetPrivateProfileString, WriteProfileString
Категория: Файлы INI


Функции Windows API:Функции по категориям

Список функций по категориям

Диалоговые окна
Доступ к параметрам системы
Меню
Мультимедиа
Графика
Кисти
Общее диалоговое окно
Курсор
Устройства
Ошибки
Файлы
Фигуры
Шрифты и тексты
Дескрипторы
Помощь
Значки
Файлы INI
Джойстик
Клавиатура
Линии и кривые
Расчеты
Сообщения
Мышь
Поддержка национальных языков
Ole
Перо
Принтер
Прямоугольники
Регионы
Реестр
Оболочка
Строки
Системная информация
Время
Классы
Процедуры
Свойства окон
Окна
Разное

  • Диалоговые окна
    • MessageBox
    • MessageBoxEx
    • MessageBoxIndirect
  • Доступ к параметрам системы
    • GetACP
    • GetOEMCP
    • GetSystemMetrics
    • SystemParametersInfo
  • Меню
    • GetMenu
    • GetMenuItemCount
    • GetSystemMenu
  • Мультимедиа
    • auxGetDevCaps
    • auxGetNumDevs
    • auxGetVolume
    • auxSetVolume
    • mciSendString
    • PlaySound
    • sndPlaySound
    • waveOutGetDevCaps
    • waveOutGetNumDevs
    • waveOutGetVolume
    • waveOutSetVolume
  • Графика
    • BitBlt
    • ExtFloodFill
    • GetPixel
    • PaintDesktop
    • SetPixel
    • SetPixelV
    • StretchBlt
  • Кисти
    • CreateHatchBrush
    • CreateSolidBrush
    • GetBrushOrgEx
    • SetBrushOrgEx
  • Общее диалоговое окно
    • ChooseColor
    • ChooseFont
    • CommDlgExtendedError
    • GetOpenFileName
    • GetSaveFileName
    • PrintDlg
  • Курсор
    • ClipCursor
    • CreateCursor
    • DestroyCursor
    • GetClipCursor
    • GetCursor
    • GetCursorPos
    • LoadCursor
    • LoadCursorFromFile
    • SetCursor
    • SetCursorPos
    • SetSystemCursor
    • ShowCursor
  • Устройства
    • CreateDC
    • DeleteDC
    • DeleteObject
    • GetDC
    • GetStockObject
    • ReleaseDC
    • SelectObject
  • Ошибки
    • Beep
    • GetLastError
    • MessageBeep
  • Файлы
    • CopyFile
    • CreateDirectory
    • CreateDirectoryEx
    • CreateFile
    • DeleteFile
    • FindClose
    • FindFirstFile
    • FindNextFile
    • GetDiskFreeSpace
    • GetDiskFreeSpaceEx
    • GetDriveType
    • GetFileAttributes
    • GetFileInformationByHandle
    • GetFileSize
    • GetFileTime
    • GetFullPathName
    • GetLogicalDrives
    • GetLogicalDriveStrings
    • GetShortPathName
    • GetTempFileName
    • MoveFile
    • ReadFile
    • RemoveDirectory
    • SetFileAttributes
    • SetFilePointer
    • SetFileTime
    • WriteFile
  • Фигуры
    • Chord
    • Ellipse
    • Pie
    • Polygon
    • PolyPolygon
  • Шрифты и тексты
    • CreateFont
    • CreateFontIndirect
    • EnumFontFamilies
    • EnumFontFamiliesEx
    • GetTextAlign
    • SetTextAlign
    • TextOut
  • Дескрипторы
    • CloseHandle
  • Помощь
    • WinHelp
  • Значки
    • DestroyIcon
    • DrawIcon
    • DrawIconEx
    • ExtractIcon
    • ExtractIconEx
  • Файлы INI
    • GetPrivateProfileInt
    • GetPrivateProfileString
    • GetProfileInt
    • GetProfileString
    • WritePrivateProfileString
    • WriteProfileString
  • Джойстик
    • joyGetDevCaps
    • joyGetNumDevs
    • joyGetPos
  • Клавиатура
    • GetAsyncKeyState
    • GetKeyboardState
    • GetKeyState
    • keybd_event
    • SendInput
    • SetKeyboardState
  • Линии и кривые
    • AngleArc
    • Arc
    • ArcTo
    • GetArcDirection
    • LineTo
    • MoveToEx
    • PolyBezier
    • PolyBezierTo
    • Polyline
    • PolylineTo
    • PolyPolyline
    • SetArcDirection
  • Расчеты
    • MulDiv
  • Память
    • CopyMemory
    • FillMemory
    • GlobalAlloc
    • GlobalFree
    • GlobalLock
    • GlobalUnlock
    • MoveMemory
    • ZeroMemory
  • Сообщения
    • SendMessage
  • Мышь
    • GetDoubleClickTime
    • mouse_event
    • ReleaseCapture
    • SetDoubleClickTime
    • SwapMouseButton
  • Поддержка национальных языков
    • GetDateFormat
    • GetThreadLocale
    • GetTimeFormat
    • SetThreadLocale
  • OLE
    • CoTaskMemFree
  • Перо
    • CreatePen
    • CreatePenIndirect
  • Принтер
    • ClosePrinter
    • EndDoc
    • EndPage
    • EnumJobs
    • EnumPrinters
    • OpenPrinter
    • StartDoc
    • StartPage
  • Прямоугольники
    • CopyRect
    • EqualRect
    • InflateRect
    • IntersectRect
    • InvertRect
    • IsRectEmpty
    • FillRect
    • FrameRect
    • OffsetRect
    • PtInRect
    • Rectangle
    • RoundRect
    • SetRect
    • SetRectEmpty
    • SubtractRect
    • UnionRect
  • Регионы
    • CombineRgn
    • CreateEllipticRgn
    • CreateEllipticRgnIndirect
    • CreatePolygonRgn
    • CreatePolyPolygonRgn
    • CreateRectRgn
    • CreateRectRgnIndirect
    • CreateRoundRectRgn
    • EqualRgn
    • FillRgn
    • FrameRgn
    • GetPolyFillMode
    • GetRgnBox
    • InvertRgn
    • OffsetRgn
    • PtInRegion
    • RectInRegion
    • SetPolyFillMode
  • Реестр
    • RegCloseKey
    • RegCreateKeyEx
    • RegDeleteKey
    • RegDeleteValue
    • RegEnumKeyEx
    • RegEnumValue
    • RegOpenKeyEx
    • RegQueryValueEx
    • RegSetValueEx
  • Оболочка
    • ExitWindowsDialog
    • SHBrowseForFolder
    • ShellExecute
    • SHEmptyRecycleBin
    • SHFileOperation
    • SHGetFileInfo
    • SHGetFolderLocation
    • SHGetFolderPath
    • SHGetPathFromIDList
    • SHGetSpecialFolderLocation
    • SHGetSpecialFolderPath
    • SHQueryRecycleBin
    • SHUpdateRecycleBinIcon
  • Строки
    • CharLower
    • CharToOem
    • CharUpper
    • IsCharLower
    • IsCharUpper
    • lstrcpy
    • lstrcpyn
    • lstrlen
    • OemToChar
  • Системная информация
    • GetComputerName
    • GetSysColor
    • GetSystemDirectory
    • GetTempPath
    • GetUserName
    • GetVersion
    • GetVersionEx
    • GetVolumeInformation
    • GetWindowsDirectory
    • SetSysColors
    • SetVolumeLabel
  • Время
    • CompareFileTime
    • FileTimeToLocalFileTime
    • FileTimeToSystemTime
    • GetLocalTime
    • GetSystemTime
    • GetSystemTimeAsFileTime
    • GetTimeZoneInformation
    • LocalFileTimeToFileTime
    • SetSystemTime
    • SystemTimeToFileTime
  • Классы
    • GetClassInfo
    • GetClassInfoEx
    • GetClassLong
    • GetClassName
    • GetWindowLong
    • RegisterClass
    • RegisterClassEx
    • SetClassLong
    • SetWindowLong
    • UnregisterClass
  • Процедуры
    • CallWindowProc
    • DefWindowProc
  • Свойства окон
    • EnumPropsEx
    • GetProp
    • RemoveProp
    • SetProp
  • Окна
    • BringWindowToTop
    • EnableWindow
    • EnumChildWindows
    • EnumThreadWindows
    • EnumWindows
    • FindWindow
    • FindWindowEx
    • FlashWindow
    • GetActiveWindow
    • GetDesktopWindow
    • GetForegroundWindow
    • GetParent
    • GetTopWindow
    • GetWindow
    • GetWindowRect
    • GetWindowText
    • GetWindowTextLength
    • GetWindowThreadProcessId
    • IsChild
    • IsIconic
    • IsWindow
    • IsWindowEnabled
    • IsZoomed
    • MoveWindow
    • SetActiveWindow
    • SetForegroundWindow
    • SetParent
    • SetWindowPos
    • SetWindowText
    • ShowWindow
    • WindowFromPoint
  • Разное
    • ExitWindowsEx
    • Sleep

Наверх.


Русский_Проект:Структуры

Список структур по алфавиту

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    • A
      • ACCESSTIMEOUT
      • ACL
      • ANIMATIONINFO
      • AUXCAPS
    • B
      • BROWSEINFO
      • BY_HANDLE_FILE_INFORMATION
    • C
      • CHOOSECOLOR_TYPE
      • CHOOSEFONT_TYPE
    • D
      • DEVMODE
      • DEVNAMES
      • DOCINFO
    • E
      • ENUMLOGFONT
      • ENUMLOGFONTEX
    • F
      • FILETIME
      • FILTERKEYS
      • FONTSIGNATURE
    • G
    • H
      • HARDWAREINPUT
      • HELPWININFO
      • HIGHCONTRAST
    • I
      • ICONMETRICS
      • INPUT_TYPE
      • ITEMIDLIST
    • J
      • JOB_INFO_1
      • JOB_INFO_2
      • JOYCAPS
      • JOYINFO
    • K
      • KEYBDINPUT
    • L
      • LOGFONT
      • LOGPEN
    • M
      • MINIMIZEDMETRICS
      • MOUSEINPUT
      • MOUSEKEYS
      • MULTIKEYHELP
    • N
      • NEWTEXTMETRIC
      • NEWTEXTMETRICEX
      • NONCLIENTMETRICS
    • O
      • OPENFILENAME
      • OSVERSIONINFO
      • OVERLAPPED
    • P
      • POINTAPI
      • PRINTDLG_TYPE
      • PRINTER_DEFAULTS NEW
      • PRINTER_INFO_1
      • PRINTER_INFO_2
      • PRINTER_INFO_4
      • PRINTER_INFO_5
    • Q
    • R
      • RECT
    • S
      • SECURITY_ATTRIBUTES
      • SECURITY_DESCRIPTOR
      • SERIALKEYS
      • SHFILEINFO NEW
      • SHITEMID
      • SHQUERYRBINFO
      • SOUNDSENTRY
      • STICKYKEYS
      • SYSTEMTIME
    • T
      • TEXTMETRIC
      • TIME_ZONE_INFORMATION
      • TOGGLEKEYS
    • U
      • ULARGE_INTEGER
    • V
    • W
      • WAVEOUTCAPS
      • WIN32_FIND_DATA
      • WNDCLASS
      • WNDCLASSEX
    • X
    • Y
    • Z

    В начало.

    последнее обновление: Май 12, 2000
    © 1999-2000 Александр Климов
    Русский_Проект.


Функции Windows API:Структура CHOOSECOLOR

Структура CHOOSECOLOR

Type CHOOSECOLOR
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        rgbResult As Long
        lpCustColors As Long
        flags As Long
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
End Type

Структура CHOOSECOLOR хранит информацию,передаваемую в или из общего диалогового окна Выбор цвета

Состав структуры
lStructSize
Размер структуры в байтах
hwndOwner
Дескриптор окна,открывающий диалоговое окно
hInstance
Дескриптор к шаблону диалоговому окну, чтобы использовать на месте заданного по умолчанию поля. Если это не используется, то установлено к 0
rgbResult
Установка значения RGB -цвета по умолчанию для выбранного цвета перед запросом ChooseColor. Функция размещает значение RGB цвета , выбранный пользователем в этот компонент
lpCustColors
указатель к блоку памяти,содержащии список 16 выбранный цветов
Flags
Комбинация следующих флагов,определяющих вид общего диалогового окна:
CC_ANYCOLOR = &H100
Пользователю разрешено выбирать любой цвет
CC_ENABLEHOOK = &H10
Использование функции обработчика прерываний, указанную lpfnHook для обработки сообщений выбора палитры цветов
CC_ENABLETEMPLATE = &H20
Используйте шаблон диалогового окна, идентифицированный hInstance и lpTemplateName
CC_ENABLETEMPLATEHANDLE = &H40
Используйте предыдущий шаблон диалогового окна, идентифицированный hInstance, игнорируя lpTemplateName
CC_FULLOPEN = &H2
Автоматически показ определенных выбранных цветов вполовину диалогового окна
CC_PREVENTFULLOPEN = &H4
Отключена кнопка, отображающая определенные выбраные цвета вполовину диалогового окна
CC_RGBINIT = &H1
Установка цвета,определенную rgbResult для первоначально выбранного цвета
CC_SHOWHELP = &H8
Показать кнопку помощи
CC_SOLIDCOLOR = &H80
Разрешение пользователю выбирать твердых цвета. Если пользователь пытается выбрать не-твердый цвет, преобразуйте это к самому близкому твердому цвету
lCustData
Определенное приложением значение, чтобы пройти к функции обработчика прерываний, указанной lpfnHook
lpfnHook
указатель CCHookProc hook functionдля обработки сообщений Выбора цвета
lpTemplateName
Название шаблона диалогового окна, чтобы использовать в модуле, идентифицированном hInstance. Если в этом нет необходимости,установите в 0
Используется в
ChooseColor


Функции Windows API:Структура FILETIME

Структура FILETIME

Type FILETIME
  dwLowDateTime As Long
  dwHighDateTime As Long
End Type

Структура FILETIME содержит дату и время выбранного файла. The structure identifies a 64-bit integer specifying the number of 100-nanosecond intervals which have passed since January 1, 1601. This 64-bit value is split into the two dwords stored in the structure.

Параметры
dwLowDateTime
The low-order dword of the 64-bit integer specifying the date and time.
dwHighDateTime
The high-order dword of the 64-bit integer specifying the date and time.
Используется в
BY_HANDLE_FILE_INFORMATION, CompareFileTime, FileTimeToLocalFileTime, FileTimeToSystemTime, GetFileTime, GetSystemTimeAsFileTime, LocalFileTimeToFileTime, RegEnumKeyEx, SetFileTime, SystemTimeToFileTime, WIN32_FIND_DATA


Функции Windows API:Структура LOGPEN

Структура LOGPEN

Type LOGPEN
  lopnStyle As Long
  lopnWidth As POINTAPI
  lopnColor As Long
End Type

Структура LOGPEN содержит информацию,идентифицирующую логическое перо. Перо, описанное структурой всегда имееет форму квадрата

Состав структуры
lopnStyle
Один из следующих флажков, определяющих стиль пера:
PS_SOLID=0
Сплошное перо
PS_DASH=1
Перо подчеркнуто штриховой линией. Ширина должна быть меньше или равняться единице
PS_DOT=2
Перо с пунктиром. Ширина должна быть меньше или равняться единице
PS_DASHDOT=3
Перо имеет чередующиеся черточки и точки.Ширина должна быть меньше или равняться единице
PS_DASHDOTDOT=4
Перо имеет чередующиеся черточки, сопровождаемые двумя точками. Ширина должна быть меньше или равняться единице
PS_NULL=5
Перо невидимо
PS_INSIDEFRAME=6
Перо сплошное. Всякий раз, когда функция рисует картинку внутри ограничительного прямоугольника, размеры рисунка подгоняются так, чтобы рисунок, включая ширину пера, находился полностью в пределах ограничительного прямоугольника
lopnWidth
Член структуры .x идентифицирует ширину пера.Ширина,равная нулю производит перо с одним пикселом по ширине. Член структуры .y игнорируется
lopnColor
Значение RGB цвета пера
Используется в
CreatePenIndirect


Функции Windows API:Структура NOTIFYICONDATA

Структура NOTIFYICONDATA

Type NOTIFYICONDATA
  cbSize As Long
  hWnd As Long
  uID As Long
  uFlags As Long
  uCallbackMessage As Long
  hIcon As Long
  szTip As String * 64  ' Windows 2000: возможно String * 128

' Следующие компоненты имеют силу только в Windows 2000!
    'dwState As Long
  'dwStateMask As Long
  'szInfo As String * 256
  'uTimeoutOrVersion As Long
  'szInfoTitle As String * 64
  'dwInfoFlags As Long
End Type

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

Примечание для Visual Basic

Windows 2000: Официально,компонент uTimeoutOrVersion -это фактически два отдельных компонента данных, uTimeout и uVersion, которые занимают то же самое пространство в пределах структуры. Поскольку Visual Basic не поддерживает объединения подобно C++, необходимо назначить единственное имя к этому компоненту данных. Однако, использование этого псевдонима не влияет на потерю его функциональных возможностей

Состав структуры
cbSize
Размер структуры в байтах
hWnd
Дескриптор окна,к которому относится значок в systray
uID
Идентификатор, который уникально идентифицирует значок. Это значение позволяет окну иметь множественные значки в systray, позволяя окно сообщать различия между ними
uFlags
Комбинация следующих флажков, определяющих, которые из последующих членов структуры содержат полезные данные. Любые компоненты данных, не идентифицированные флажком будут игнорироваться
NIF_ICON = &H2
Компонент данных hIcon
NIF_MESSAGE = &H1
Компонент данных uCallbackMessage
NIF_TIP = &H4
Компонент данных szTip
NIF_STATE = &H8
Windows 2000: Компоненты данных dwState и dwStateMask
NIF_INFO = &H10
Windows 2000: Использование стиля воздушного шара вместо обычной всплывающей подсказки. Компоненты данных szInfo, szTimeOut, szInfoTitle и dwInfoFlags используются
uCallbackMessage
Определенный приложением идентификатор сообщения. Это сообщение посылается окну всякий раз, когда происходит событие,связанное со значком в systray. Прежде всего-это, когда мышь перемещается или происходитщелчок поверх значка или когда окно получает ввод с клавиатуры. Параметр wParam будет определен идентификатором значка, который генерирует сообщение. Параметр lParam "реальный" идентификатор сообщения Windows
hIcon
Дескриптор значка
szTip
Строка с нулевым символом в конце. Этот текст появляется, когда курсор мыши находится над значком
dwState
Windows 2000: Комбинация следующих флажков, определяющих состояние значка. Каждый флажок - независимый переключатель.
NIS_HIDDEN = &H1
Значок скрыт
NIS_SHAREDICON = &H2
Значок разделен
dwStateMask
Windows 2000: Комбинация вышеупомянутых флажков, которая определяет флажки из dwState для модификаций
szInfo
Windows 2000: Строка с нулевым символом в конце, используемая для стиля воздушного шара в подсказке
uTimeoutOrVersion
Windows 2000: Значение времени ожидания, в миллисекундах, для показа подсказки в стиле воздушного шара

Или, если Shell_NotifyIcon будет вызвано с флагом NIM_VERSION, то вместо этого будет определяться, использовать ли поведение Windows 2000 или Windows 95. По умолчанию, Windows 2000 будет использовать различные сообщения в некоторых случаях, чтобы связаться с окном обладания. Для совместимости, Вы должны использовать старое поведение. Это - один из следующих флажков:

0
Используйте поведение Windows 95
NOTIFYICON_VERSION = &H1
Используйте поведение Windows 2000
szInfoTitle
Строка с нулевым символом в конце, чтобы использовать как заголовок подсказки в стиле воздушного шара. Это будет появляться в жирном начертании текста
dwInfoFlags
Если желательно, один из следующих флажков, определяющих значок, отображаемый слева от подсказки в стиле воздушного шара. Установите в 0, чтобы не использовать значок
NIIF_WARNING = &H30
Значок предупреждения
NIIF_ERROR = &H10
Значок ошибки
NIIF_INFO = &H40
Значок информации
Используется в
Shell_NotifyIcon


Функции Windows API:Структура OPENFILENAME

Структура OPENFILENAME

Type OPENFILENAME
  lStructSize As Long
  hwndOwner As Long
  hInstance As Long
  lpstrFilter As String
  lpstrCustomFilter As String
  nMaxCustomFilter As Long
  nFilterIndex As Long
  lpstrFile As String
  nMaxFile As String
  lpstrFileTitle As String
  nMaxFileTitle As String
  lpstrInitialDir As String
  lpstrTitle As String
  flags As Long
  nFileOffset As Integer
  nFileExtension As Integer
  lpstrDefExt As String
  lCustData As Long
  lpfnHook As Long
  lpTemplateName As String
End Type

OPENFILENAME-переменные работают с двумя диалоговыми окнами Windows, GetOpenFileName and GetSaveFileName. Эта структура используется как и для передачи информации функции,так и для возвращения данных от нее

Состав структуры
lStructSize
Размер переменной в байтах (используйте функцию Len () )
hwndOwner
Дескриптор окна, открывающего диалоговое окно
hInstance
При использовании шаблона диалогового окна, это - дескриптор к блоку памяти шаблона диалогового окна. При использовании заданного по умолчанию диалогового окна, установите в 0
lpstrFilter
Записи в поле Тип файлов. Формат строки - " название типа файла " & vbNullChar & "маска" & vbNullChar ... для многих типов, где название типа файла - текст, который появляется в списке и маска - маска расширения. Строка должна закончиваться двойным vbNullChar
lpstrCustomFilter
Сходен с lpstrFilter, но содержит только один тип файла / маску, определяемые пользователем. Если не используется, установите как пустую строку
nMaxCustFilter
Размер строки в байтах, содержащейся в lpstrCustomFilter
nFilterIndex
Номер (#1, #2 и т.д.) данных структуры,определяемых lpstrFilter должен быть задан по умолчанию
lpstrFile
Установите это как ряд пробелов. Получает законченный путь и имя файла файла (ов), выбранных пользователем. Если выбрано несколько файлов, каждое имя файла отделено vbNullChar, и вся строка закончивается двойным vbNullChar
nMaxFile
Длина в символах lpstrFile
lpstrFileTitle
Очень похоже на lpstrFile, но получает только имя выбранного файла
nMaxFileTitle
Длина в символах lpstrFileTitle
lpstrInitialDir
Основная папка для поиска
lpstTitle
Текст, который появляется в заголовке диалогового окна
flags
Нуль или большее количество следующих флажков, определяющих, как создавать файловое диалоговое окно. Некоторые из этих флажков будут установлены функцией после запроса пользователя
OFN_ALLOWMULTISELECT = &H200
Разрешение пользователю выбирать несколько файлов (только для окна Выбор файла)
OFN_CREATEPROMPT = &H2000
Предложение, если выбран несуществующий файл
OFN_ENABLEHOOK = &H20
Используйте функцию, указанную lpfnHook, чтобы обработать сообщения диалогового окна
OFN_ENABLETEMPLATE = &H40
Используйте шаблон диалогового окна,определенный hInstanceи lpTemplateName.
OFN_ENABLETEMPLATEHANDLE = &H80
Используйте предварительно загруженный шаблон диалогового окна, указанный в hInstance.
OFN_EXTENSIONDIFFERENT = &H400
Функция устанавливает этот флажок, если пользователь выбирает файл расширением, отличным от указанной переменной lpstrDefExt
OFN_FILEMUSTEXIST = &H1000
Разрешен выбор только существующих файлов
OFN_HIDEREADONLY = &H4
Скрыть флажок Только чтения (только для диалогового окна Открытие файла).
OFN_NOCHANGEDIR = &H8
Не меняйте текущий каталог Windows для соответствия выбранному в диалоговом окне
OFN_NODEREFERENCELINKS = &H100000
Если выбран ярлык(.lnk или .pif), возвращается непосредственно ярлык вместо файла или папки.
OFN_NONETWORKBUTTON = &H20000
Скрыть и отключить кнопку Network в диалоговом окне
OFN_NOREADONLYRETURN = &H8000
Функция устанавливает этот флажок, если выбранный файл не только для чтения (только для диалогового окна Открытие файла)
OFN_NOVALIDATE = &H100
Не отмечать имя файла c запрещенными символами
OFN_OVERWRITEPROMPT = &H2
Запрос пользователю, если выбранный файл уже существует (только для диалогового окна Сохранение файла)
OFN_PATHMUSTEXIST = &H800
Разрешен выбор только существующих путей
OFN_READONLY = &H1
Отметить поле Открыть только для чтения. Этот флажок установливается после вызова функции, если поле отмечено после нажатия OK пользователем
OFN_SHAREAWARE = &H4000
Игнорирование любых ошибок совместного доступа файла
OFN_SHOWHELP = &H10
Показ кнопки Справка в диалоговом окне
nFileOffet
Получает отсчитываемый от нуля индекс, определяющий,где кончается имя пути и начинается имя файла lpstrFile
nFileExtension
Получает отсчитываемый от нуля индекс, определяющий, где начинается расширение файла lpstrFile
lpstrDefExt
Заданное по умолчанию расширение файла (только для диалогового окна Сохранение файла). Если файл выбран с маской *.*, файл получает это расширение
lCustData
Информация для передачи функции обработчика прерываний, указанной в lpfnHook
lpfnHook
Укажите на функцию обработчика прерываний, которая обрабатывает сообщения диалогового окна. Функция должна возвратить 0, чтобы передать сообщение назад к диалоговому окну и 1, чтобы не передавать. При не использовании функции обработчика прерываний, установите в 0
lpTemplateName
Имя шаблона диалогового окна, указанного в hInstance

Используется в: GetOpenFileName, GetSaveFileName


Функции Windows API:Структура OSVERSIONINFO

Структура OSVERSIONINFO

Type OSVERSIONINFO
  dwOSVersionInfoSize As Long
  dwMajorVersion As Long
  dwMinorVersion As Long
  dwBuildNumber As Long
  dwPlatformId As Long
  szCSDVersion As String * 128
End Type

Структура OSVERSIONINFO содержит информацию о версии Windows,включая номера основной,дополнительной версий,номер сборки и т.д.

Состав структуры
dwOSVersionInfoSize
Размер структуры
dwMajorVersion
Основной номер версии
dwMinorVersion
Дополнительный номер версии
dwBuildNumber
Номер сборки
dwPlatformID
Флажки для определения платформы Windows (Windows 95, Windows NT, и т.д.):
VER_PLATFORM_WIN32s = 0
Windows 3.x
VER_PLATFORM_WIN32_WINDOWS = 1
Windows 95 или 98
VER_PLATFORM_WIN32_NT = 2
Windows NT
szCSDVersion
Дополнительная информация о операционной системе

Используется в: GetVersionEx


Функции Windows API:Структура POINTAPI

Структура POINTAPI

Type POINTAPI
  x As Long
  y As Long
End Type

Структура POINTAPI содержит координаты (x,y) точки

Примечание для Visual Basic

Официально, эта структура называется POINT. Но так как в Visual Basic уже имеется зарезервированное слово Point,то во избежания конфликта используется имя POINTAPI

Состав структуры
x
Координата точки x
y
Координата точки y
Используется в
CreatePolygonRgn, CreatePolyPolygonRgn, GetBrushOrgEx, GetCursorPos, LOGPEN, MoveToEx, PolyBezier, PolyBezierTo, Polygon, Polyline, PolyPolygon, PolylineTo, PolyPolyline, SetBrushOrgEx, WinHelp


Функции Windows API:Структура RECT

Структура RECT

Type Rect
  left As Long
  top As Long
  right As Long
  bottom As Long
End Type

Структура RECT определяет прямоугольник, сохраняя координаты его левых верхних и нижних правых углов

Состав структуры
left
Координата x левого верхнего угла прямоугольника
top
Координата y левого верхнего угла прямоугольника
right
Координата x нижнего правого угла прямоугольника
bottom
Координата y нижнего правого угла прямоугольника
Используется в
ClipCursor, CopyRect, CreateEllipticRgnIndirect, CreateRectRgnIndirect, EqualRect, FillRect, FrameRect, GetClipCursor, GetRgnBox, GetWindowRect, InflateRect, IntersectRect, InvertRect, IsRectEmpty, OffsetRect, PtInRect, RectInRegion, SetRect, SetRectEmpty, SubtractRect, SystemParametersInfo, UnionRect


Функции Windows API:Структура SECURITY_ATTRIBUTES

Структура SECURITY_ATTRIBUTES

Type SECURITY_ATTRIBUTES
        nLength As Long
        lpSecurityDescriptor As Long
        bInheritHandle As Long
End Type

Структура SECURITY_ATTRIBUTES определяет уровень и тип защиты объекта.Защита,как правило,используется в Windows NT/2000,реже в Windows 95/98

Состав структуры
nLength
Размер структуры в байтах
lpSecurityDescriptor
Указатель на дескриптор для объекта. Для использования описателя по умолчанию-установите его равным 0
bInheritHandle
Определяет, должен ли дескриптор объекта быть унаследован новыми процессами или программами
Используется в
CreateDirectory, CreateDirectoryEx, CreateFile, RegCreateKeyEx


Функции Windows API:Структура SHQUERYRBINFO

Структура SHQUERYRBINFO

Type SHQUERYRBINFO
  cbSize As Long
  i64Size As ULARGE_INTEGER
  i64NumItems As ULARGE_INTEGER
End Type

Структура SHQUERYRBINFO содержит информацию относительно Корзины. Структура содержит число элементов в Корзине,а также полный размер всех элементов в нем. Оба значения сохранены как 64-разрядные целые числа без знака

Состав структуры
cbSize
Размер структуры в байтах
i64Size
Полный размер в байтах всех элементов в Корзине
i64NumItems
Число элементов в Корзине
Используется в
SHQueryRecycleBin


Функции Windows API:Структура SYSTEMTIME

Структура SYSTEMTIME

Type SYSTEMTIME
  wYear As Integer
  wMonth As Integer
  wDayOfWeek As Integer
  wDay As Integer
  wHour As Integer
  wMinute As Integer
  wSecond As Integer
  wMilliseconds As Integer
End Type

Структура SYSTEMTIME содержит дату и время в удобном формате

Состав структуры
wYear
Год(четырехзначное число)
wMonth
Номер месяца (1 = Январь, 2 = Февраль, и т.д.)
wDayOfWeek
День недели (0 = Воскресенье, 1 = Понедельник и т.д.)
wDay
День месяца
wHour
Час, (от 0 до 12)
wMinute
Минута
wSecond
Секунда
wMilliseconds
Миллисекунда
Используется в:
FileTimeToSystemTime, GetLocalTime, GetSystemTime, JOB_INFO_1, JOB_INFO_2, SetSystemTime, SystemTimeToFileTime, TIME_ZONE_INFORMATION


Функции Windows API:Структура ULARGE_INTEGER

Структура ULARGE_INTEGER

Type ULARGE_INTEGER
  LowPart As Long
  HighPart As Long
End Type

Структура ULARGE_INTEGER хранит 64-разрядное целое число без знака. Целые числа без знака располагаются в пределах от &H0 до &HFFFFFFFFFFFFFFFF (или в десятичном исчислении, 264). Эта структура определена прежде всего для языков (типа Visual Basic и некоторых других) которые не имеют никакой встроенной поддержки для 64-разрядных целых чисел без знака. Структура разбивает значение на две 32-разрядных половины: старшая половина и младшая половина. Если язык программирования, который Вы используете, поддерживает 64-разрядные целые числа без знака, Вы можете заменять два компонента данных этой структуры с единственным(отдельным) значением (или использовать тот тип данных вместо структуры в целом)

Состав структуры
LowPart
32-разрядная младшая половина полного 64-разрядного целого числа без знака.
HighPart
32-разрядная старшая половина полного 64-разрядного целого числа без знака
Используется в
GetDiskFreeSpaceEx, SHQUERYRBINFO


Функции Windows API:Коды виртуальных клавиш

Коды виртуальных клавиш

Включают в себя коды виртуальных клавиш клавиатуры, а также "виртуальные" элементы типа трех кнопок мыши. Виртуальные клавиши также включают в себя такие "клавиши", которых обычно не существуют вообще! Код виртуальной клавиши не изменяется, когда нажаты клавиши- модификаторы (Ctrl, Alt, Shift, и т.д.) Например,клавиша 1 имеет тот же самый код виртуальной клавиши-нажата ли 1 или ! Однако, цифры на цифровой клавиатуре имеют два различных кода виртуальной клавиши: один, когда Num Lock включен, и другой когда Num Lock выключен. Обратите внимание, что коды виртуальной клавиши 0-9 и A-Z равняются их кодам ASCII.

Примечание: Фактические значения некоторых из кодов клавиш могут различаться на клавиатуре, предназначенной для различных языков. Особенно, VK_OEM_*, которым обозначают клавишу пунктуации. Значения, перечисленные ниже - для Американской клавиатуры

Виртуальные коды клавиш

VK_LBUTTON = &H1
Левая кнопка мыши
VK_RBUTTON = &H2
Правая кнопка мыши
VK_CANCEL = &H3
Виртуальная клавиша Отмены, используемая для обработки комбинации клавиш Control-Break
VK_MBUTTON = &H4
Средняя кнопка мыши
VK_BACK = &H8
Backspace
VK_TAB = &H9
Tab
VK_CLEAR = &HC
5 (на цифровой клавиатуре без Num Lock)
VK_RETURN = &HD
Enter
VK_SHIFT = &H10
Shift (любая)
VK_CONTROL = &H11
Ctrl (любая)
VK_MENU = &H12
Alt (любая)
VK_PAUSE = &H13
Pause
VK_CAPITAL = &H14
Caps Lock
VK_ESCAPE = &H1B
Esc
VK_SPACE = &H20
Spacebar
VK_PRIOR = &H21
Page Up
VK_NEXT = &H22
Page Down
VK_END = &H23
End
VK_HOME = &H24
Home
VK_LEFT = &H25
Стрелка влево
VK_UP = &H26
Стрелка вверх
VK_RIGHT = &H27
Стрелка вправо
VK_DOWN = &H28
Стрелка вниз
VK_SELECT = &H29
Select
VK_PRINT = &H2A
Print (используемый только Nokia-клавиатурой)
VK_EXECUTE = &H2B
Execute (не используется)
VK_SNAPSHOT = &H2C
Print Screen
VK_INSERT = &H2D
Insert
VK_DELETE = &H2E
Delete
VK_HELP = &H2F
Help
VK_0 = &H30
0
VK_1 = &H31
1
VK_2 = &H32
2
VK_3 = &H33
3
VK_4 = &H34
4
VK_5 = &H35
5
VK_6 = &H36
6
VK_7 = &H37
7
VK_8 = &H38
8
VK_9 = &H39
9
VK_A = &H41
A
VK_B = &H42
B
VK_C = &H43
C
VK_D = &H44
D
VK_E = &H45
E
VK_F = &H46
F
VK_G = &H47
G
VK_H = &H48
H
VK_I = &H49
I
VK_J = &H4A
J
VK_K = &H4B
K
VK_L = &H4C
L
VK_M = &H4D
M
VK_N = &H4E
N
VK_O = &H4E
O
VK_P = &H50
P
VK_Q = &H51
Q
VK_R = &H52
R
VK_S = &H53
S
VK_T = &H54
T
VK_U = &H55
U
VK_V = &H56
V
VK_W = &H57
W
VK_X = &H58
X
VK_Y = &H59
Y
VK_Z = &H5A
Z
VK_STARTKEY = &H5B
Start Menu
VK_CONTEXTKEY = &H5D
Context Menu
VK_NUMPAD0 = &H60
0 (с Num Lock)
VK_NUMPAD1 = &H61
1 (с Num Lock)
VK_NUMPAD2 = &H62
2 (с Num Lock)
VK_NUMPAD3 = &H63
3 (с with Num Lock)
VK_NUMPAD4 = &H64
4 (с with Num Lock)
VK_NUMPAD5 = &H65
5 (с Num Lock)
VK_NUMPAD6 = &H66
6 (с Num Lock)
VK_NUMPAD7 = &H67
7 (с Num Lock)
VK_NUMPAD8 = &H68
8 (с Num Lock)
VK_NUMPAD9 = &H69
9 (с with Num Lock)
VK_MULTIPLY = &H6A
* (цифровая клавиатура)
VK_ADD = &H6B
+ (цифровая клавиатура)
VK_SEPARATER = &H6C
Separator (never generated by the keyboard)
VK_DECIMAL = &H6E
. (с Num Lock)
VK_DIVIDE = &H6F
/ (цифровая клавиатура)
VK_F1 = &H70
F1
VK_F2 = &H71
F2
VK_F3 = &H72
F3
VK_F4 = &H73
F4
VK_F5 = &H74
F5
VK_F6 = &H75
F6
VK_F7 = &H76
F7
VK_F8 = &H77
F8
VK_F9 = &H78
F9
VK_F10 = &H79
F10
VK_F11 = &H7A
F11
VK_F12 = &H7B
F12
VK_F13 = &H7C
F13
VK_F14 = &H7D
F14
VK_F15 = &H7E
F15
VK_F16 = &H7F
F16
VK_F17 = &H80
F17
VK_F18 = &H81
F18
VK_F19 = &H82
F19
VK_F20 = &H83
F20
VK_F21 = &H84
F21
VK_F22 = &H85
F22
VK_F23 = &H86
F23
VK_F24 = &H87
F24
VK_NUMLOCK = &H90
Num Lock
VK_OEM_SCROLL = &H91
Scroll Lock
VK_OEM_1 = &HBA
;
VK_OEM_PLUS = &HBB
=
VK_OEM_COMMA = &HBC
,
VK_OEM_MINUS = &HBD
-
VK_OEM_PERIOD = &HBE
.
VK_OEM_2 = &HBF
/
VK_OEM_3 = &HC0
`
VK_OEM_4 = &HDB
[
VK_OEM_5 = &HDC
\
VK_OEM_6 = &HDD
]
VK_OEM_7 = &HDE
'
VK_OEM_8 = &HDF
(unknown)
VK_ICO_F17 = &HE0
F17 на Olivetti расширенной клавиатуре (внутреннее использование только)
VK_ICO_F18 = &HE1
F18 на Olivetti расширенной клавиатуре (внутреннее использование только)
VK_OEM_102 = &HE2
< or | on IBM-compatible 102 enhanced non-U.S. keyboard
VK_ICO_HELP = &HE3
Help на Olivetti расширенной клавиатуре (внутреннее использование только)
VK_ICO_00 = &HE4
00 на Olivetti расширенной клавиатуре (внутреннее использование только)
VK_ICO_CLEAR = &HE6
Clear на Olivetti расширенной клавиатуре (внутреннее использование только)
VK_OEM_RESET = &HE9
Reset (Nokia keyboards only)
VK_OEM_JUMP = &HEA
Jump (Nokia keyboards only)
VK_OEM_PA1 = &HEB
PA1 (Nokia keyboards only)
VK_OEM_PA2 = &HEC
PA2 (Nokia keyboards only)
VK_OEM_PA3 = &HED
PA3 (Nokia keyboards only)
VK_OEM_WSCTRL = &HEE
WSCTRL (Nokia keyboards only)
VK_OEM_CUSEL = &HEF
CUSEL (Nokia keyboards only)
VK_OEM_ATTN = &HF0
ATTN (Nokia keyboards only)
VK_OEM_FINNISH = &HF1
FINNISH (Nokia keyboards only)
VK_OEM_COPY = &HF2
COPY (Nokia keyboards only)
VK_OEM_AUTO = &HF3
AUTO (Nokia keyboards only)
VK_OEM_ENLW = &HF4
ENLW (Nokia keyboards only)
VK_OEM_BACKTAB = &HF5
BACKTAB (Nokia keyboards only)
VK_ATTN = &HF6
ATTN
VK_CRSEL = &HF7
CRSEL
VK_EXSEL = &HF8
EXSEL
VK_EREOF = &HF9
EREOF
VK_PLAY = &HFA
PLAY
VK_ZOOM = &HFB
ZOOM
VK_NONAME = &HFC
NONAME
VK_PA1 = &HFD
PA1
VK_OEM_CLEAR = &HFE
CLEAR

Используется в
GetAsyncKeyState, GetKeyboardState, GetKeyState, keybd_event, KEYBDINPUT, SetKeyboardState


Функции Windows API: Коды ошибок

Коды ошибок

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

Коды ошибок API
Код ошибки | Определение
0 | Операция выполнена успешно
1 | Неверная функция
2 | Системе не удается найти указанный файл
3 | Системе не удается найти указанный путь
4 | Системе не удается открыть файл
5 | Нет доступа
6 | Неверный дескриптор
7 | Повреждены управляющие блоки памяти
8 | Недостаточно памяти для обработки команды
9 | Неверный адрес управляющего блока памяти
10 | Ошибка в среде
11 | Была сделана попытка загрузить программу, имеющую неверный формат
12 | Код доступа неверен
13 | Ошибка в данных
14 | Недостаточно памяти для завершения операции
15 | Системе не удается найти указанный диск
16 | Не удается удалить папку
17 | Системе не удается переместить файл на другой диск
18 | Больше файлов не осталось
19 | Носитель защищен от записи
20 | Системе не удается найти указанное устройство
21 | Устройство не готово
22 | Устройство не опознает команду
23 | Ошибка в данных (CRC)
24 | Длина выданной программой команды слишком велика
25 | Не удается найти заданную область или дорожку на диске
26 | Нет доступа к диску или дискете
27 | Не удается найти заданный сектор на диске
28 | Нет бумаги в принтере
29 | Системе не удается произвести запись на устройство
30 | Системе не удается произвести чтение с устройства
31 | Присоединенное к системе устройство не работает
32 | Процесс не может получить доступ к файлу, так как этот файл занят другим процессом
33 | Процесс не может получить доступ к файлу, так как часть этого файла заблокирована другим процессом
34 | В устройство вставлен неверный диск
36 | Слишком много файлов открыто для совместного доступа
38 | Достигнут конец файла
39 | Диск заполнен до конца
50 | Сетевой запрос не поддерживается
51 | Удаленный компьютер недоступен
52 | В сети существуют совпадающие имена
53 | Не найден сетевой путь
54 | Сеть занята
55 | Сетевой ресурс или устройство более недоступно
56 | Достигнут предел числа команд NetBIOS
57 | Аппаратная ошибка сетевой платы
58 | Указанный сервер не может выполнить требуемую операцию
59 | Неожиданная ошибка в сети
60 | Несовместимый удаленный адаптер
61 | Очередь печати переполнена
62 | На сервере отсутствует место для записи файла, выводимого на печать
63 | Ваш файл, находившийся в очереди вывода на печать, был удален
64 | Указанное сетевое имя более недоступно
65 | Отсутствует доступ к сети
66 | Неверно указан тип сетевого ресурса
67 | Не найдено сетевое имя
68 | Превышен предел по числу имен для локальной сетевой платы компьютера
69 | Превышен предел по числу сеансов NetBIOS
70 | Сервер сети был остановлен или находится в процессе запуска
71 | Дополнительные подключения к этому удаленному компьютеру в настоящее время невозможны, поскольку число подключений к компьютеру достигло предела
72 | Работа указанного принтера или дискового накопителя была остановлена
80 | Файл существует
82 | Не удается создать файл или папку
83 | Ошибка при обращении к прерыванию INT 24
84 | Недостаточно памяти для обработки запроса
85 | Имя локального устройства уже используется
86 | Сетевой пароль указан неверно
87 | Параметр задан неверно
88 | Ошибка записи в сети
89 | В настоящее время системе не удается запустить другой процесс
100 | Не удается создать еще один системный семафор
101 | Семафор эксклюзивного доступа занят другим процессом
102 | Семафор установлен и не может быть закрыт
103 | Семафор не может быть установлен повторно
104 | Запросы к семафорам эксклюзивного доступа на время выполнения прерываний не допускаются
105 | Этот семафор более не принадлежит использовавшему его процессу
106 | Вставьте диск в устройство
107 | Программа была остановлена, так как нужный диск вставлен не был
108 | Диск занят или заблокирован другим процессом
109 | Канал был закрыт
110 | Системе не удается открыть указанное устройство или файл
111 | Указано слишком длинное имя файла
112 | Недостаточно места на диске
113 | Исчерпаны внутренние идентификаторы файлов
114 | Результирующий внутренний идентификатор файла неправилен
117 | Вызов IOCTL приложением произведен неверно
118 | Параметр проверки записи данных имеет неверное значение
119 | Система не может обработать полученную команду
120 | Эта функция допустима только в режиме Win32
121 | Истек интервал ожидания семафора
122 | Область данных, переданная по системному вызову, слишком мала
123 | Синтаксическая ошибка в имени файла, имени папки или метке тома
124 | Неверный уровень системного вызова
125 | У диска отсутствует метка тома
126 | Не найден указанный модуль
127 | Не найдена указанная процедура
128 | Дочерние процессы, окончания которых требуется ожидать, отсутствуют
129 | Приложение нельзя запустить в режиме Win32
130 | Попытка использовать дескриптор файла для открытия раздела диска и выполнения операции, отличающейся от ввода/вывода нижнего уровня
131 | Попытка поместить указатель на файл перед началом файла
132 | Указатель на файл не может быть установлен на заданное устройство или файл
133 | Команды JOIN и SUBST не могут быть использованы для дисков, содержащих уже объединенные диски
134 | Попытка использовать команду JOIN или SUBST для диска, уже включенного в набор объединенных дисков
135 | Попытка использовать команду JOIN или SUBST для диска, который уже был отображен
136 | Попытка снять признак объединения с диска, для которого команда JOIN не выполнялась
137 | Попытка снять признак отображения с диска, для которого команда SUBST не выполнялась
138 | Попытка объединить диск с папкой на объединенном диске
139 | Попытка отобразить диск на папку, находящуюся на отображенном диске
140 | Попытка объединить диск с папкой на отображенном диске
141 | Попытка отобразить диск на папку, находящуюся на объединенном диске
142 | В настоящее время выполнить команду JOIN или SUBST невозможно
143 | Невозможно объединить (или отобразить) диск с папкой (или на папку) этого же диска
144 | Эта папка не является подпапкой корневой папки
145 | Папка не пуста
146 | Указанный путь используется для отображенного диска
147 | Недостаточно ресурсов для обработки команды
148 | Указанный путь в настоящее время использовать нельзя
149 | Попытка объединить или отобразить диск, папка на котором уже используется для отображения
150 | Сведения о трассировке в файле CONFIG.SYS не найдены, либо трассировка запрещена
151 | Число семафоров для DosMuxSemWait задано неверно
152 | Не выполнен вызов DosMuxSemWait. Установлено слишком много семафоров
153 | Некорректный вызов DosMuxSemWait
154 | Длина метки тома превосходит предел, установленный для файловой системы
155 | Не удается создать еще один поток команд
156 | Принимающий процесс отклонил сигнал
157 | Сегмент уже освобожден и не может быть заблокирован
158 | Блокировка с сегмента уже снята
159 | Адрес идентификатора потока команд задан неверно
160 | DosExecPgm передан неверный аргумент
161 | Путь указан неверно
162 | Сигнал уже находится в состоянии обработки
164 | Создание дополнительных потоков команд невозможно
167 | Не удается снять блокировку с области файла
170 | Требуемый ресурс занят
173 | Запрос на блокировку соответствует определенной области
174 | Файловая система не поддерживает указанные изменения типа блокировки
180 | Системой обнаружен неверный номер сегмента
182 | Операционная система не может запустить
183 | Невозможно создать файл, так как он уже существует
186 | Передан неверный флаг
187 | Не найдено указанное имя системного семафора
188 | Операционная система не может запустить
189 | Операционная система не может запустить
190 | Операционная система не может запустить
191 | Не удается запустить в режиме Win32
192 | Операционная система не может запустить
193 | Не является приложением Win32
194 | Операционная система не может запустить
195 | Операционная система не может запустить
196 | Операционная система не может запустить
197 | Конфигурация операционной системы не рассчитана на запуск этого приложения.
198 | Операционная система не может запустить
199 | Операционная система не может запустить
200 | Сегмент кода не может превышать 64 КБ
201 | Операционная система не может запустить
202 | Операционная система не может запустить
203 | Системе не удается найти указанный параметр среды
205 | Ни один из процессов в дереве команды не имеет обработчика сигналов
206 | Имя файла или его расширение имеет слишком большую длину
207 | Стек занят
208 | Подстановочные знаки * и/или ? заданы неверно или образуют неверный шаблон имени
209 | Отправляемый сигнал неверен
210 | Не удается установить обработчик сигналов
212 | Сегмент заблокирован и не может быть перемещен
214 | К этой программе или модулю присоединено слишком много динамически подключаемых модулей
215 | Вызовы LoadModule не могут быть вложены
230 | Неправильное состояние канала
231 | Все копии канала заняты
232 | Идет закрытие канала
233 | С обоих концов канала отсутствуют процессы
234 | Имеются дополнительные данные
240 | Сеанс был прекращен
254 | Имя дополнительного атрибута было задано неверно
255 | Дополнительные атрибуты несовместимы между собой
259 | Дополнительные данные отсутствуют
266 | Не удается использовать интерфейс (API) Copy
267 | Неверно задано имя папки
275 | Дополнительные атрибуты не уместились в буфере
276 | Файл дополнительных атрибутов поврежден
277 | Файл дополнительных атрибутов переполнен
278 | Неверно указан дескриптор дополнительного атрибута
282 | Установленная файловая система не поддерживает дополнительные атрибуты
288 | Попытка освободить не принадлежащий процессу объект синхронизации
298 | Слишком много попыток занесения события для семафора
317 | Не удается найти сообщение в файле сообщений
487 | Попытка обращения к неверному адресу
534 | Длина результата арифметической операции превысила 32 разряда
535 | С другой стороны канала присутствует процесс
536 | Идет ожидание открытия процессом другой стороны канала
994 | Нет доступа к дополнительным атрибутам
995 | Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения
996 | Наложенное событие ввода/вывода не находится в сигнальном состоянии
997 | Протекает наложенное событие ввода/вывода
998 | Неверная попытка доступа к адресу памяти
999 | Ошибка при выполнении операции со страницей
1001 | Слишком глубокий уровень рекурсии. Стек переполнен
1002 | Окно не может взаимодействовать с отправленным сообщением
1003 | Не удается завершить выполнение функции
1004 | Флаги установлены неверно
1005 | Не удается опознать присутствующую на томе файловую систему
1006 | Том для открытого файла был изменен извне,так что работа с файлом невозможна
1007 | Cannot Perform Operation in Full-Screen Mode
1008 | Попытка ссылки на несуществующий элемент
1009 | База данных реестра повреждена
1010 | Параметр реестра имеет неверное значение
1011 | Не удается открыть параметр реестра
1012 | Не удается прочитать параметр реестра
1013 | Не удается записать параметр реестра
1014 | Один из файлов в базе данных реестра должен был быть восстановлен с помощью протокола или резервной копии. Восстановление прошло успешно
1015 | Реестр поврежден
1016 | Неустранимый сбой операции ввода/вывода, запущенной из реестра
1017 | При попытке загрузить или восстановить файл реестра выяснилось, что этот файл имеет неверный формат
1018 | Попытка произвести недопустимую операцию над параметром реестра, отмеченным для удаления
1019 | Не удалось выделить требуемое место в протоколе реестра
1020 | Нельзя создать символическую связь для параметра реестра, который уже содержит подпараметры или значения
1021 | Нельзя создать статический подпараметр для временного родительского параметра
1022 | Запрос на оповещение об изменениях завершается, однако данные не были возвращены в буфер вызывающей процедуры. Теперь эта процедура нуждается в переборе файлов для поиска изменений
1051 | Команда остановки была отправлена службе, от которой зависят другие службы
1052 | Команда неуместна для данной службы
1053 | Служба не ответила на запрос своевременно
1054 | Не удалось создать поток команд для службы
1055 | База данных службы заблокирована
1056 | Одна копия службы уже запущена
1057 | Имя учетной записи задано неверно или не существует
1058 | Указанная служба отключена или не может быть запущена
1059 | Была сделана попытка установить циклическую зависимость между службами
1060 | Указанная служба не установлена
1061 | Служба в настоящее время не может принимать команды
1062 | Служба не запущена
1063 | Процесс службы не может установить связь с контроллером службы
1064 | Ошибка службы при обработке команды
1065 | Указанная база данных не существует
1066 | Служба возвратила код ошибки
1067 | Процесс был неожиданно завершен
1068 | Не удалось запустить дочернюю службу
1069 | Служба не запущена из-за сбоя при входе
1070 | Сразу после запуска служба "зависла"
1071 | Блокировка базы данных указанной службы наложена неверно
1072 | Указанная служба была отмечена для удаления
1073 | Указанная служба уже существует
1074 | Система в настоящий момент работает с использованием последней корректной конфигурации
1075 | Дочерняя служба не существует или была отмечена для удаления
1076 | Текущая конфигурация уже была задействована в качестве источника последнего корректного набора параметров
1077 | С момента последней загрузки попытки запустить службу не делались
1078 | Имя уже задействовано в качестве имени службы
1100 | Достигнут физический конец ленты
1101 | Достигнута метка файла
1102 | Обнаружено начало раздела ленты
1103 | Достигнут конец набора файлов
1104 | Больше данных на ленте нет
1105 | Не удается создать на ленте разделы
1106 | Неправильный текущий размер блока при обращении к новой магнитной ленте из многотомного раздела
1107 | При загрузке магнитной ленты не найдены сведения о разделах
1108 | Не удается заблокировать механизм извлечения носителя
1109 | Не удается извлечь носитель
1110 | Носитель в устройстве мог быть заменен
1111 | Шина ввода/вывода была инициализирована заново
1112 | Отсутствует носитель в устройстве
1113 | Символ Unicode не имеет отображения в конечной многобайтовой кодировке
1114 | Произошел сбой в программе инициализации библиотеки динамической компоновки (DLL).
1115 | Идет завершение работы системы
1116 | Прервать завершение работы системы невозможно, так как оно не было инициировано
1117 | Запрос не был выполнен из-за ошибки ввода/вывода на устройстве
1118 | Последовательные устройства не инициализированы. Драйвер будет выгружен
1119 | Не удается открыть устройство, использующее общий с другими устройствами запрос на прерывание (IRQ). Как минимум одно устройство, использующее этот же запрос IRQ, уже было открыто
1120 | Последовательная операция ввода/вывода была завершена в результате следующей операции записи в последовательный порт
1121 | Последовательная операция ввода/вывода была завершена по истечении периода ожидания
1122 | На гибком диске не обнаружена адресная метка идентификатора
1123 | Обнаружено несоответствие между полем идентификатора сектора гибкого диска и адресом дорожки контроллера
1124 | Ошибка, возвращенная контроллером гибких дисков,не опознается драйвером
1125 | Контроллером гибких дисков возвращены некорректные значения регистров
1126 | Зафиксирован многократный сбой операции проверки при обращении к жесткому диску
1127 | Зафиксирован многократный сбой операции при обращении к жесткому диску
1128 | При обращении к жесткому диску потребовался сброс контроллера,однако даже его произвести не удалось
1129 | Достигнут физический конец ленты
1130 | Недостаточно памяти сервера для обработки команды
1131 | Обнаружена вероятность возникновения взаимоблокировки
1132 | Базовый адрес или смещение имеют неверное выравнивание

Используется в: GetLastError


Функции Windows API:Автор руководства

 Данное руководство написано А.Климовым

Примеры,коды,советы и многое другое вы можете найти на сайте Русский_Проект по адресу:http://rusproject.newmail.ru

E-mail: vbasic@rambler.ru