Что нового

Расширение стандартной AutoIt библиотеки WinAPI.au3

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
AutoIt: 3.3.6.x/3.3.8.x
Версия: 3.8

Категория: WinAPI

Описание: _WinAPIEx.au3 является расширением к стандартной AutoIt библиотеке WinAPI.au3. UDF включает в себя несколько недокументированных, но очень полезных функций, например, _WinAPI_GetFontResourceInfo(), а так же содержит все необходимые константы. Библиотека в основном предназначена для более или менее опытных пользователей, но я думаю, что многие найдут в ней для себя что-нибудь полезное. Описание ко всем функциям (на английском) находится внутри самой библиотеки, также присутствует файл справки в формате (.chm).

Для тех, кто использует редактор SciTE (full version) для написания своих скриптов, я подготовил файлы au3.userudfs.properties и au3.user.calltips.api (внутри архива) для подсветки функций из этой библиотеки. Просто скопируйте его в папку ...\SciTE\Properties и ...\SciTE\api соответственно и перезагрузите SciTE. Надеюсь эта библиотека окажется для Вас такой же полезной как и для меня.

Файл(ы):

Для AutoIt 3.3.6.x: ZIP (архив), EXE (инсталлятор)

Для AutoIt 3.3.8.x: ZIP (архив), EXE (инсталлятор)

Примеры: _WinAPI_*.au3 (в архиве)

Список функций:

История версий (v2.4 - v3.8):
v3.8

  • Добавлены следующие функции.

    _WinAPI_CLSIDFromProgID
    _WinAPI_CreateBufferFromStruct
    _WinAPI_CreateFontEx
    _WinAPI_DwmDefWindowProc
    _WinAPI_DwmGetColorizationParameters
    _WinAPI_DwmSetColorizationParameters
    _WinAPI_EnumFontFamilies
    _WinAPI_FileIconInit
    _WinAPI_GetBrushOrg
    _WinAPI_GetEffectiveClientRect
    _WinAPI_GetFontName
    _WinAPI_GetMUILanguage
    _WinAPI_GetPEType
    _WinAPI_GetTabbedTextExtent
    _WinAPI_OpenFileDlg
    _WinAPI_InitMUILanguage
    _WinAPI_IsNameInExpression
    _WinAPI_IsPathShared
    _WinAPI_MirrorIcon
    _WinAPI_ProgIDFromCLSID
    _WinAPI_SaveFileDlg
    _WinAPI_SearchPath
    _WinAPI_SetBrushOrg
    _WinAPI_SetFileValidData
    _WinAPI_SetSearchPathMode
    _WinAPI_ShellCreateDirectory
    _WinAPI_ShellExecuteEx
    _WinAPI_ShellFlushSFCache
    _WinAPI_ShellGetIconOverlayIndex
    _WinAPI_ShellGetImageList
    _WinAPI_ShellGetKnownFolderIDList
    _WinAPI_ShellSetKnownFolderPath
    _WinAPI_ShellUpdateImage
    _WinAPI_TabbedTextOut
    _WinAPI_TerminateJobObject
    _WinAPI_TerminateProcess
    _WinAPI_UpdateLayeredWindowIndirect
    _WinAPI_UserHandleGrantAccess

  • Добавлены примеры к вышеперечисленным функциям.
  • Добавлено несколько констант и структур.
  • Добавлен файл NTErrors.au3 (опционально), содержащий значения NTSTATUS кодов.
  • Добавлен один опциональный параметр в функции _WinAPI_MapVirtualKey() (см. описание).
  • Функция _WinAPI_EnumDllProc() теперь работает в Windows XP (требуется dbghelp.dll версии 5.1 или более поздней).
  • Функция _WinAPI_EnumProcessHandles() теперь работает как для 32-, так и для 64-битных систем.
  • Функция _WinAPI_GetProcAddress() теперь работает с порядковыми значениями функций (только для AutoIt 3.3.6.1).
  • Исправлена ??утечка памяти в функции _WinAPI_AssocGetPerceivedType().
  • Некоторые внутренние изменения в коде.
  • Обновлена документация.


v3.7

  • Добавлены следующие функции.

    _WinAPI_AdjustBitmap
    _WinAPI_CreateColorAdjustment
    _WinAPI_BackupRead
    _WinAPI_BackupReadAbort
    _WinAPI_BackupSeek
    _WinAPI_BackupWrite
    _WinAPI_BackupWriteAbort
    _WinAPI_CompareString
    _WinAPI_CompressBuffer
    _WinAPI_ConfirmCredentials
    _WinAPI_CreateDirectory
    _WinAPI_CreateHardLink
    _WinAPI_CreateProcessWithToken
    _WinAPI_CreateSymbolicLink
    _WinAPI_DecompressBuffer
    _WinAPI_DecryptFile
    _WinAPI_DefRawInputProc
    _WinAPI_DrawFocusRect
    _WinAPI_DuplicateEncryptionInfoFile
    _WinAPI_DuplicateTokenEx
    _WinAPI_EncryptFile
    _WinAPI_EncryptionDisable
    _WinAPI_EnumDisplayMonitors
    _WinAPI_EnumFiles
    _WinAPI_EnumFileStreams
    _WinAPI_EnumHardLinks
    _WinAPI_EnumRawInputDevices
    _WinAPI_EnumSystemGeoID
    _WinAPI_FileEncryptionStatus
    _WinAPI_FindCloseChangeNotification
    _WinAPI_FindFirstChangeNotification
    _WinAPI_FindFirstFileName
    _WinAPI_FindNextChangeNotification
    _WinAPI_FindNextFileName
    _WinAPI_GetColorAdjustment
    _WinAPI_GetFileID
    _WinAPI_GetFileInformationByHandleEx
    _WinAPI_GetFilePointerEx
    _WinAPI_GetGeoInfo
    _WinAPI_GetGlyphOutline
    _WinAPI_GetMonitorInfo
    _WinAPI_GetObjectInfoByHandle
    _WinAPI_GetRawInputBuffer
    _WinAPI_GetRawInputBufferLength
    _WinAPI_GetRawInputData
    _WinAPI_GetRawInputDeviceInfo
    _WinAPI_GetRegisteredRawInputDevices
    _WinAPI_GetStretchBltMode
    _WinAPI_GetSystemDefaultLangID
    _WinAPI_GetThreadLocale
    _WinAPI_GetThreadUILanguage
    _WinAPI_GetUserDefaultLangID
    _WinAPI_GetUserGeoID
    _WinAPI_GetVolumeInformation
    _WinAPI_GetVolumeInformationByHandle
    _WinAPI_GetWindowRgnBox
    _WinAPI_HashData
    _WinAPI_HashString
    _WinAPI_IsElevated
    _WinAPI_LoadStringEx
    _WinAPI_MonitorFromPoint
    _WinAPI_MonitorFromRect
    _WinAPI_MonitorFromWindow
    _WinAPI_ParseURL
    _WinAPI_ParseUserName
    _WinAPI_ReadDirectoryChanges
    _WinAPI_RegisterRawInputDevices
    _WinAPI_SetColorAdjustment
    _WinAPI_SetFileInformationByHandleEx
    _WinAPI_SetFileShortName
    _WinAPI_SetThreadLocale
    _WinAPI_SetThreadUILanguage
    _WinAPI_SetUserGeoID
    _WinAPI_ShellUserAuthenticationDlg
    _WinAPI_ShellUserAuthenticationDlgEx
    _WinAPI_ShortToWord
    _WinAPI_UrlApplyScheme
    _WinAPI_UrlCanonicalize
    _WinAPI_UrlCombine
    _WinAPI_UrlCompare
    _WinAPI_UrlHash
    _WinAPI_VerQueryValueEx
    _WinAPI_WordToShort

  • Добавлены примеры к вышеперечисленным функциям.
  • Удалены следующие функции.

    _WinAPI_GetFileSize (используйте _WinAPI_GetFileSizeEx)
    _WinAPI_LZNTCompress (используйте _WinAPI_CompressBuffer)
    _WinAPI_LZNTDecompress (используйте _WinAPI_DecompressBuffer)
    _WinAPI_ResizeBitmap (используйте _WinAPI_AdjustBitmap)
    _WinAPI_ShutdownDlg (за ненадобностью)
    _WinAPI_UrlEscape (используйте _WinAPI_UrlCanonicalize)
    _WinAPI_UrlUnescape (используйте _WinAPI_UrlCanonicalize)

  • Добавлена $tagFILE_ID_DESCRIPTOR структура.
  • Добавлен опциональный параметр в функции _WinAPI_RegSaveKey().
  • Добавлен опциональный параметр в функции _WinAPI_GetFileVersionInfo().
  • Третий и четвертый параметры в функции _WinAPI_OpenFileById() теперь являются опциональными (аналогично _WinAPI_CreateFileEx()).
  • Следующие функции теперь работают с указателями вместо структур (см. описание).

    _WinAPI_CompressBitmapBits
    _WinAPI_GetEnhMetaFileBits
    _WinAPI_GetFileVersionInfo
    _WinAPI_SetEnhMetaFileBits

  • Функции _WinAPI_DeleteObjectID(), _WinAPI_RegRestoreKey() и _WinAPI_RegSaveKey() больше не устанавливают необходимые для себя привилегии (вы должны проделать это самостоятельно перед вызовом этих функций).
  • Функция _WinAPI_GetCompression() теперь возвращает (-1) вместо 0 при возникновении ошибки.
  • Функция _WinAPI_OpenFileById() теперь может работать с идентификаторами файлов (FileID).
  • Функция _WinAPI_SetStretchBltMode() теперь возвращает предыдущее значение режима.
  • Функции _WinAPI_VerQueryRoot() и _WinAPI_VerQueryValue() переписаны для работы с указателями вместо файлов (см. описание).
  • Исправлены примеры для некоторых функций.
  • Обновлена документация.


v3.6

  • Добавлены следующие функции.

    _WinAPI_CallWindowProcW
    _WinAPI_ColorAdjustLuma
    _WinAPI_CreateBuffer
    _WinAPI_DefWindowProcW
    _WinAPI_EnumUILanguages
    _WinAPI_FileExists
    _WinAPI_FindClose
    _WinAPI_FindFirstFile
    _WinAPI_FindNextFile
    _WinAPI_GetFileSize
    _WinAPI_GetMemorySize
    _WinAPI_GetPriorityClass
    _WinAPI_GetSystemDefaultUILanguage
    _WinAPI_GetUserDefaultUILanguage
    _WinAPI_IsMemory
    _WinAPI_PathAppend
    _WinAPI_PathBuildRoot
    _WinAPI_RemoveDirectory
    _WinAPI_SetPriorityClass

  • Добавлены примеры к вышеперечисленным функциям.
  • Удалены следующие функции.

    _WinAPI_IsString (используйте _WinAPI_IsMemory)

  • Добавлены System Parameter Info ($SPI_*) константы.
  • Добавлена $tagSHELLHOOKINFO структура.
  • Добавлен опциональный параметр в функции _WinAPI_CreateString() (см. описание).
  • Первый параметр в функциях _WinAPI_ShellEmptyRecycleBin() и _WinAPI_ShellQueryRecycleBin() теперь является опциональным.
  • Третий и четвертый параметры в функции _WinAPI_CreateFileEx() теперь являются опциональными.
  • Третий параметр в функции _WinAPI_LZNTDecompress() больше не является опциональным (см. описание).
  • Следующие функции теперь возвращают ошибку вместо краха сценария при нехватке требуемого количества оперативной памяти.

    _WinAPI_FindTextDlg
    _WinAPI_LZNTDecompress
    _WinAPI_ReplaceTextDlg

  • Исправлена ошибка в функциях _WinAPI_CascadeWindows() и _WinAPI_TileWindows(), приводящая к возврату ошибки, если первый параметр имел нулевое значение. (Спасибо KaFu)
  • Исправлена ошибка в функции _WinAPI_DisplayStruct(), из-за которой родительское окно (если использовалось) оставалось выключено после завершения функции.
  • Исправлена ошибка в функции _WinAPI_GetDriveGeometryEx(), из-за которой требовались права администратора в Windows Vista+. (Спасибо KaFu)
  • Исправлена ошибка в функции _WinAPI_ShellOpenFolderAndSelectItems(), которая могла привести к краху сценария при использовании COM (например AutoItObject).
  • Исправлено описание к некоторым функциям.
  • Обновлена документация.


v3.5

  • Добавлены следующие функции.

    _WinAPI_ChangeWindowMessageFilterEx
    _WinAPI_CompressBitmapBits
    _WinAPI_ComputeCrc32
    _WinAPI_CreateANDBitmap
    _WinAPI_CreateDIBColorTable
    _WinAPI_CreateEmptyIcon
    _WinAPI_CreateNumberFormatInfo
    _WinAPI_EnumDllProc
    _WinAPI_EnumProcessHandles
    _WinAPI_FreeMemory
    _WinAPI_GetBitmapDimensionEx
    _WinAPI_GetDIBColorTable
    _WinAPI_GetDurationFormat
    _WinAPI_GetExtended
    _WinAPI_GetFinalPathNameByHandleEx
    _WinAPI_GetNumberFormat
    _WinAPI_GetObjectNameByHandle
    _WinAPI_InvertANDBitmap
    _WinAPI_IsAlphaBitmap
    _WinAPI_IsString
    _WinAPI_MakeWord
    _WinAPI_PathAddBackslash
    _WinAPI_PathAddExtension
    _WinAPI_PathCommonPrefix
    _WinAPI_PathCanonicalize
    _WinAPI_PathCreateFromUrl
    _WinAPI_PathIsUNC
    _WinAPI_PathIsUNCServer
    _WinAPI_PathIsUNCServerShare
    _WinAPI_PlgBlt
    _WinAPI_ReleaseStream
    _WinAPI_SaveHBITMAPToFile
    _WinAPI_SetBitmapDimensionEx
    _WinAPI_SetDIBColorTable
    _WinAPI_StrFormatByteSizeEx
    _WinAPI_SwapQWord
    _WinAPI_SwapWord
    _WinAPI_ZeroMemory

  • Добавлены примеры к вышеперечисленным функциям.
  • Добавлен отсутствующий файл Airplane.wav, который используется в некоторых примерах.
  • Добавлены отсутствующие Dialog Box Styles ($DS_*), Window Styles ( $WS_*) и Extended Window Styles ($WS_EX_*) константы.
  • Добавлены два опциональных параметра в функции _WinAPI_CreateDIB() (см. описание).
  • Переписана функция _WinAPI_AddIconTransparency() для повышения производительности.
  • Переписана функция _WinAPI_SwapDWord() для другого назначения (см. описание).
  • Функция _WinAPI_SaveHICONToFile() теперь работает с 16, 24 и 32-битными иконками. Также создается альфа-канал для 32-битных иконок и, опционально, используется PNG сжатие, если размер иконки равен или превышает 256x256 пикселей.
  • Функция _WinAPI_Create32BitHICON() теперь всегда создает иконки с альфа-каналом и битовой маской.
  • Следующие функции теперь работают с указателями вместо структур (см. описание).

    _WinAPI_CreateString
    _WinAPI_FindTextDlg
    _WinAPI_RegQueryMultipleValues
    _WinAPI_ReplaceTextDlg

  • Изменен способ вызова DllCall() в некоторых функциях для повышения производительности.
  • Изменен заголовок в функции _WinAPI_Create32BitHBITMAP() (см. описание).
  • Изменен размер буфера по умолчанию с 8192 до 16384 символов, который используют функции _WinAPI_FindTextDlg() и _WinAPI_ReplaceTextDlg().
  • Исправлена ??ошибка во многих функциях, работающих со строковыми переменными, которая может привести к вылету скрипта из-за недостаточного размера выделенной памяти. (Спасибо Ward)
  • Исправлена ??ошибка в _WinAPI_AddIconOverlay(), _WinAPI_Create32BitHBITMAP() и _WinAPI_Create32BitHICON() функциях, приводящая к неправильному преобразованию иконки, если изначальная иконка была загружена из .ico файла с PNG сжатием (Windows Vista и выше).
  • Исправлена ??ошибка в функции _WinAPI_AddIconTransparency(), приводящая к неправильному преобразованию, если изначальная иконка не является 32-битной иконкой.
  • Исправлена ??ошибка в _WinAPI_EnumResource... функциях, из-за которой флаг @error всегда содержал ненулевое значение. (Спасибо Ward)
  • Исправлена ??ошибка в _WinAPI_GetClipBox() и _WinAPI_GetRgnBox() функциях, приводящая к возврату ошибки, если $tagRECT структура не была создана до вызова этих функций.
  • Исправлена ??ошибка в функции _WinAPI_SaveHICONToFile(), приводящая к созданию поврежденного .ico файла, если параметр $hIcon не являлся указателем на иконку (HICON).
  • Исправлена ??ошибка в функции _WinAPI_UniqueHardwareID(), приводящая к генерации неправильного GUID при использовании $UHID_HDD флага.
  • Исправлена ошибка в некоторых функциях связанная с некорректным сравнением с 0xFFFFFFFF. (Спасибо money)
  • Обновлена документация.


v3.4

  • Добавлены следующие функции.

    _WinAPI_CascadeWindows
    _WinAPI_CloseDesktop
    _WinAPI_CloseWindowStation
    _WinAPI_CombineTransform
    _WinAPI_CommDlgExtendedErrorEx
    _WinAPI_CreateDesktop
    _WinAPI_CreateDirectoryEx
    _WinAPI_CreateString
    _WinAPI_CreateTransform
    _WinAPI_CreateWindowStation
    _WinAPI_DefSubclassProc
    _WinAPI_DeleteObjectID
    _WinAPI_DisplayStruct
    _WinAPI_DllGetVersion
    _WinAPI_DPtoLP
    _WinAPI_EnumDesktops
    _WinAPI_EnumDesktopWindows
    _WinAPI_EnumPageFiles
    _WinAPI_EnumWindowStations
    _WinAPI_ExtCreatePen
    _WinAPI_FindTextDlg
    _WinAPI_FlushFRBuffer
    _WinAPI_GdiComment
    _WinAPI_CreateObjectID
    _WinAPI_GetAllUsersProfileDirectory
    _WinAPI_GetCompressedFileSize
    _WinAPI_GetCurrentObject
    _WinAPI_GetCurrentPosition
    _WinAPI_GetCurrentProcessExplicitAppUserModelID
    _WinAPI_GetDefaultUserProfileDirectory
    _WinAPI_GetFileInformationByHandle
    _WinAPI_GetFileType
    _WinAPI_GetFRBuffer
    _WinAPI_GetFullPathName (Thanks guinness)
    _WinAPI_GetGraphicsMode
    _WinAPI_GetLastActivePopup
    _WinAPI_GetMapMode
    _WinAPI_GetMessageExtraInfo
    _WinAPI_GetModuleFileNameEx
    _WinAPI_GetModuleInformation
    _WinAPI_GetObjectID
    _WinAPI_GetProcessID
    _WinAPI_GetProcessWindowStation
    _WinAPI_GetProfilesDirectory
    _WinAPI_GetPwrCapabilities
    _WinAPI_GetShellWindow
    _WinAPI_GetStartupInfo
    _WinAPI_GetString
    _WinAPI_GetTextCharacterExtra
    _WinAPI_GetThreadDesktop
    _WinAPI_GetThreadErrorMode
    _WinAPI_GetUserObjectInformation
    _WinAPI_GetWindowDisplayAffinity
    _WinAPI_GetWindowExt
    _WinAPI_GetWindowOrg
    _WinAPI_GetWindowSubclass
    _WinAPI_GetWorldTransform
    _WinAPI_Hex64
    _WinAPI_InvertColor
    _WinAPI_IsBadCodePtr
    _WinAPI_IsBadReadPtr
    _WinAPI_IsBadStringPtr
    _WinAPI_IsBadWritePtr
    _WinAPI_LPtoDP
    _WinAPI_MapVirtualKey
    _WinAPI_ModifyWorldTransform
    _WinAPI_OffsetWindowOrg
    _WinAPI_OpenDesktop
    _WinAPI_OpenFileById
    _WinAPI_OpenInputDesktop
    _WinAPI_OpenWindowStation
    _WinAPI_PageSetupDlg
    _WinAPI_PrintDlg
    _WinAPI_PrintDlgEx
    _WinAPI_RegisterPowerSettingNotification
    _WinAPI_RemoveWindowSubclass
    _WinAPI_ReplaceTextDlg
    _WinAPI_SetCurrentProcessExplicitAppUserModelID
    _WinAPI_SetFRBuffer
    _WinAPI_SetGraphicsMode
    _WinAPI_SetMapMode
    _WinAPI_SetMessageExtraInfo
    _WinAPI_SetProcessWindowStation
    _WinAPI_SetTextCharacterExtra
    _WinAPI_SetTextJustification
    _WinAPI_SetThreadDesktop
    _WinAPI_SetThreadErrorMode
    _WinAPI_SetThreadExecutionState
    _WinAPI_SetUserObjectInformation
    _WinAPI_SetWindowDisplayAffinity
    _WinAPI_ScaleWindowExt
    _WinAPI_SetWindowExt
    _WinAPI_SetWindowOrg
    _WinAPI_SetWindowSubclass
    _WinAPI_SetWorldTransform
    _WinAPI_ShellGetLocalizedName
    _WinAPI_ShellNotifyIconGetRect
    _WinAPI_ShellRemoveLocalizedName
    _WinAPI_ShellRestricted
    _WinAPI_ShellSetLocalizedName
    _WinAPI_ShellStartNetConnectionDlg
    _WinAPI_SwitchDesktop
    _WinAPI_TileWindows
    _WinAPI_UnregisterPowerSettingNotification

  • Добавлены примеры к вышеперечисленным функциям.
  • Удалены следующие функции.

    _WinAPI_GetModuleFileName (используйте _WinAPI_GetModuleFileNameEx)
    _WinAPI_GetObjectEx (используйте _WinAPI_GetObject)
    _WinAPI_GetTextMetrics (см. ниже)
    _WinAPI_IsPressed (за ненадобностью)
    _WinAPI_LookupPrivilegeName (используйте Security.au3)
    _WinAPI_LookupPrivilegeValue (используйте Security.au3)

  • APIConstants.au3 теперь включает в себя большинство таких библиотек как FileСonstants.au3, FontСonstants.au3 и т.д., связанных с _WinAPI_* функциями.
  • APIConstants.au3 теперь полностью совместим со всеми UDF из дистрибутива AutoIt, за исключением NamedPipes.au3.
  • WinAPIEx.au3 теперь не включает в себя APIConstants.au3. Вы должны самостоятельно включить APIConstants.au3 в ваши скрипты с помощью "#Include", если хотите использовать объявленные в нем константы.
  • Следующие функции теперь возвращают массив вместо структуры.

    _WinAPI_GetCurrentHwProfile
    _WinAPI_GetDriveGeometryEx
    _WinAPI_GetDriveNumber
    _WinAPI_GetIconInfoEx

  • Добавлены $SFGAO_* константы, которые могут быть использованы в функции _WinAPI_ShellGetFileInfo().
  • Добавлены константы классов окон ($WC_*).
  • Изменены примеры для некоторых (_WinAPI_PlaySound() и др.) функций.
  • _WinAPI_GetCDType() и _WinAPI_IsDoorOpen() теперь работают в 64-битных системах.
  • _WinAPI_EnumProcessModules() теперь работает в 64-битных системах, начиная с Windows Vista. Также добавлен опциональный параметр.
  • Изменены функции _WinAPI_AdjustTokenPrivileges() и _WinAPI_ShowLastError(), см. документацию.
  • _WinAPI_GetFileSizeOnDisk() была полностью переписана.
  • _WinAPI_DllGetVersion() возвращена обратно.
  • Изменена функция _WinAPI_Create32BitHBITMAP() для поддержки прозрачности и совместимости со Static элементами.
  • Исправлен неверный тип данных элемента "GUID" в структуре $tagNOTIFYICONDATA_XP.
  • Переименованы структуры $tagNOTIFYICONDATA_XP и $tagNOTIFYICONDATA_VISTA в $tagNOTIFYICONDATA_V3 и $tagNOTIFYICONDATA_V4 соответственно.
  • Удалена функция _WinAPI_GetTextMetrics() для совместимости с AutoIt 3.3.7.* Beta и последующей финальной версии.
  • Исправлена ошибка, приводящая к появлению сообщений об ошибках при использовании Obfuscator'а с параметром "/striponly". (Спасибо asdf8)
  • Исправлена неточность в описании функции _WinAPI_StrFormatByteSize(). (Спасибо guinness)
  • Исправлена ошибка, связанная с неверным объявлением типа данных в функции _WinAPI_PathFindFileName(). (Спасибо Zedna)
  • Исправлена ошибка в некоторых примерах для _WinAPI_Reg* функций, которая могла привести к вылету скрипта. (Спасибо madmasles)
  • Исправлена ошибка, приводящая к утечке памяти, если функция _WinAPI_RegQueryMultipleValues() завершалась с ошибкой.
  • Исправлены неверные значения для некоторых констант.
  • Обновлена документация.


v3.3

  • Добавлены следующие функции.

    _WinAPI_BeginBufferedPaint
    _WinAPI_BufferedPaintClear
    _WinAPI_BufferedPaintInit
    _WinAPI_BufferedPaintSetAlpha
    _WinAPI_BufferedPaintUnInit
    _WinAPI_CreateDIB
    _WinAPI_CreateNullRgn
    _WinAPI_DrawThemeEdge
    _WinAPI_DrawThemeIcon
    _WinAPI_DwmInvalidateIconicBitmaps
    _WinAPI_DwmSetIconicLivePreviewBitmap
    _WinAPI_DwmSetIconicThumbnail
    _WinAPI_DWordToFloat
    _WinAPI_EndBufferedPaint
    _WinAPI_EqualMemory
    _WinAPI_FillMemory
    _WinAPI_FloatToDWord
    _WinAPI_GetApplicationRestartSettings
    _WinAPI_GetBufferedPaintBits
    _WinAPI_GetBufferedPaintDC
    _WinAPI_GetBufferedPaintTargetDC
    _WinAPI_GetBufferedPaintTargetRect
    _WinAPI_GetBoundsRect
    _WinAPI_GetDeviceGammaRamp
    _WinAPI_GetThemeBackgroundContentRect
    _WinAPI_GetThemeBackgroundExtent
    _WinAPI_GetThemeBackgroundRegion
    _WinAPI_GetThemeBitmap
    _WinAPI_GetThemeBool
    _WinAPI_GetThemeEnumValue
    _WinAPI_GetThemeFilename
    _WinAPI_GetThemeMetric
    _WinAPI_GetThemePropertyOrigin
    _WinAPI_GetThemeString
    _WinAPI_GetThemeSysBool
    _WinAPI_GetThemeSysColor
    _WinAPI_GetThemeSysColorBrush
    _WinAPI_GetThemeSysFont
    _WinAPI_GetThemeSysInt
    _WinAPI_GetThemeSysSize
    _WinAPI_GetThemeSysString
    _WinAPI_GetThemeTextExtent
    _WinAPI_GetThemeTextMetrics
    _WinAPI_GetThemeTransitionDuration
    _WinAPI_GetWindowTheme
    _WinAPI_LZNTCompress
    _WinAPI_LZNTDecompress
    _WinAPI_MoveMemory
    _WinAPI_PaintDesktop
    _WinAPI_RegisterApplicationRestart
    _WinAPI_SaveHICONToFile
    _WinAPI_SetBoundsRect
    _WinAPI_SetDeviceGammaRamp
    _WinAPI_UnregisterApplicationRestart

  • Добавлены примеры к вышеперечисленным функциям.
  • Удалены следующие функции.

    _WinAPI_DllGetVersion
    _WinAPI_EqualStruct
    _WinAPI_FillStruct

  • Переписаны следующие функции.

    _WinAPI_CopyStruct
    _WinAPI_ShellGetSettings
    _WinAPI_ShellSetSettings
    _WinAPI_StructToArray
    _WinAPI_UnionStruct

  • Исправлена ошибка в функции _WinAPI_SetDIBitsToDevice(). (спасибо Guinness)
  • Обновлена документация.


v3.2

  • Добавлены следующие функции.

    _WinAPI_AddClipboardFormatListener
    _WinAPI_AddIconOverlay
    _WinAPI_AddIconTransparency
    _WinAPI_Create32BitHBITMAP
    _WinAPI_Create32BitHICON
    _WinAPI_CreatePoint
    _WinAPI_EnumProcessModules
    _WinAPI_ExtractIcon
    _WinAPI_FileInUse
    _WinAPI_GetClipboardSequenceNumber
    _WinAPI_GetDllDirectory
    _WinAPI_GetExitCodeProcess
    _WinAPI_GetFinalPathNameByHandle
    _WinAPI_GetGUIThreadInfo (Спасибо KaFu)
    _WinAPI_GetIconInfoEx
    _WinAPI_GetPhysicallyInstalledSystemMemory
    _WinAPI_GetProcessShutdownParameters
    _WinAPI_GetProcessUser
    _WinAPI_GetProcessWorkingDirectory
    _WinAPI_GetRegKeyNameByHandle
    _WinAPI_GetSystemDEPPolicy (Спасибо KaFu)
    _WinAPI_LoadIndirectString
    _WinAPI_LockWindowUpdate
    _WinAPI_NtStatusToDosError
    _WinAPI_PathCompactPathEx
    _WinAPI_PathIsContentType
    _WinAPI_PathIsLFNFileSpec
    _WinAPI_PathIsRoot
    _WinAPI_PathIsSystemFolder
    _WinAPI_PathMakeSystemFolder
    _WinAPI_PathRemoveBackslash
    _WinAPI_PathRemoveExtension
    _WinAPI_PathRemoveFileSpec
    _WinAPI_PathSkipRoot
    _WinAPI_PathStripPath
    _WinAPI_PathStripToRoot
    _WinAPI_PathUndecorate
    _WinAPI_PathUnmakeSystemFolder
    _WinAPI_RegDisableReflectionKey
    _WinAPI_RegEnableReflectionKey
    _WinAPI_RegQueryReflectionKey
    _WinAPI_RemoveClipboardFormatListener
    _WinAPI_SetDllDirectory
    _WinAPI_SetProcessShutdownParameters
    _WinAPI_SetWinEventHook
    _WinAPI_SfcIsFileProtected
    _WinAPI_SfcIsKeyProtected
    _WinAPI_ShellExecute
    _WinAPI_ShutdownBlockReasonCreate
    _WinAPI_ShutdownBlockReasonDestroy
    _WinAPI_ShutdownBlockReasonQuery
    _WinAPI_StretchDIBits
    _WinAPI_StrFormatByteSize
    _WinAPI_StrFormatKBSize
    _WinAPI_StrFromTimeInterval
    _WinAPI_TrackMouseEvent (Спасибо Mat)
    _WinAPI_UnhookWinEvent
    _WinAPI_UrlCreateFromPath
    _WinAPI_UrlEscape
    _WinAPI_UrlGetPart
    _WinAPI_UrlFixup
    _WinAPI_UrlIs
    _WinAPI_UrlUnescape

  • Добавлены примеры к вышеперечисленным функциям.
  • Добавлен файл APIErrors.au3 (опционально), содержащий константы всех системных ошибок Windows.
  • Удалена функция _WinAPI_PathIsURL(), используйте _WinAPI_UrlIs().
  • Функции _WinAPI_GetOutlineTextMetrics() и _WinAPI_ShellQueryRecycleBin() теперь корректно работают в 64-битных системах. (Спасибо KaFu)
  • Исправлено несколько примеров, использующих Resources.dll, для корректной работы в 64-битных системах.
  • Исправлена ошибка в функции _WinAPI_PathCompactPath(), которая в некоторых случаях могла привести к вылету скрипта.
  • Исправлена ошибка в функции _WinAPI_GetFileAttributes(), приводящая к возврату неверного кода ошибки.
  • Исправлено описание к некоторым функциям.
  • Обновлена документация.


v3.1

  • Добавлены следующие функции.

    _WinAPI_AbortPath
    _WinAPI_AngleArc
    _WinAPI_Arc
    _WinAPI_ArcTo
    _WinAPI_BeginPath
    _WinAPI_CloseFigure
    _WinAPI_CreateBitmapIndirect
    _WinAPI_CreateDIBitmap
    _WinAPI_CreateMutex
    _WinAPI_DuplicateHandle
    _WinAPI_EndPath
    _WinAPI_ExcludeClipRect
    _WinAPI_ExtCreateRegion
    _WinAPI_FillPath
    _WinAPI_FlattenPath
    _WinAPI_GetArcDirection
    _WinAPI_GetBitmapBits
    _WinAPI_GetClassInfoEx
    _WinAPI_GetClipBox
    _WinAPI_GetClipRgn
    _WinAPI_GetFileTitle
    _WinAPI_GetPolyFillMode
    _WinAPI_GetRegionData
    _WinAPI_IntersectClipRect
    _WinAPI_LineDDA
    _WinAPI_MaskBlt
    _WinAPI_MessageBoxIndirect
    _WinAPI_OpenMutex
    _WinAPI_PathIsURL
    _WinAPI_PathParseIconLocation
    _WinAPI_PathRemoveArgs
    _WinAPI_PathToRegion
    _WinAPI_PathUnquoteSpaces
    _WinAPI_PtVisible
    _WinAPI_RectInRegion
    _WinAPI_RectVisible
    _WinAPI_RegisterClassEx
    _WinAPI_RegNotifyChangeKeyValue
    _WinAPI_ReleaseMutex
    _WinAPI_ResetEvent
    _WinAPI_SelectClipPath
    _WinAPI_SelectClipRgn
    _WinAPI_SetArcDirection
    _WinAPI_SetBitmapBits
    _WinAPI_SetDIBitsToDevice
    _WinAPI_SetPolyFillMode
    _WinAPI_SetRectRgn
    _WinAPI_SetWindowTheme
    _WinAPI_StrokeAndFillPath
    _WinAPI_StrokePath
    _WinAPI_UnregisterClass
    _WinAPI_WidenPath

  • Добавлены примеры к вышеперечисленным функциям.
  • _WinAPI_*MRU*() функции больше не работают с двоичными данными.
  • Все константы теперь находятся в отдельном файле APIConstants.au3.
  • Исправлено описание к некоторым функциям.
  • Обновлена документация.


v3.0

  • Добавлены следующие функции.

    _WinAPI_AddFontMemResourceEx
    _WinAPI_BeginUpdateResource
    _WinAPI_ClipCursor
    _WinAPI_CreateFileMapping
    _WinAPI_CreateIcon
    _WinAPI_CreateIconFromResourceEx
    _WinAPI_DllGetVersion
    _WinAPI_EndUpdateResource
    _WinAPI_FlushViewOfFile
    _WinAPI_GetClipCursor
    _WinAPI_GetConnectedDlg
    _WinAPI_GetDCEx
    _WinAPI_GetErrorMessage
    _WinAPI_GetOutlineTextMetrics
    _WinAPI_GetProcessHandleCount
    _WinAPI_GetSystemTimes
    _WinAPI_GetTextAlign
    _WinAPI_IsInternetConnected
    _WinAPI_LookupIconIdFromDirectoryEx
    _WinAPI_MapViewOfFile
    _WinAPI_OpenFileMapping
    _WinAPI_PathRelativePathTo (спасибо Mat)
    _WinAPI_RegQueryMultipleValues
    _WinAPI_RemoveFontMemResourceEx
    _WinAPI_ReplaceFile
    _WinAPI_SetTextAlign
    _WinAPI_UnmapViewOfFile
    _WinAPI_UpdateResource

  • Добавлены примеры к вышеперечисленным функциям.
  • Переименованы следующие функции.

    _WinAPI_GetModuleFileNameEx => _WinAPI_GetProcessFileName
    _WinAPI_GetWindowModuleFileName => _WinAPI_GetWindowFileName

  • Удалены следующие функции.

    _WinAPI_FileTimeToLocalFileTime (используйте Date.au3)
    _WinAPI_FileTimeToSystemTime (используйте Date.au3)
    _WinAPI_GetIconBitmap (используйте _WinAPI_GetIconInfo())
    _WinAPI_GetIconMask (используйте _WinAPI_GetIconInfo())
    _WinAPI_GetProfilesDirectory (используйте _WinAPI_ShellGetKnownFolderPath())

  • Изменены заголовки у следующих функций.

    _WinAPI_FindResource
    _WinAPI_FindResourceEx
    _WinAPI_PathSearchAndQualify (добавлен параметр)

  • Следующие функции теперь возвращают массивы вместо структур (см. документацию).

    _WinAPI_GetProcessIoCounters
    _WinAPI_GetProcessMemoryInfo

  • Изменены некоторые внутренние функции.
  • Изменены названия элементов в $tagTEXTMETRIC структуре.
  • Удалена $tagPROCESS_MEMORY_COUNTERS структура.
  • Убраны неиспользованные локальные переменные в некоторых функциях. (спасибо guinness)
  • Предотвращена выгрузка из памяти некоторых DLL (например sensapi.dll) после вызова содержащихся в них функций.
  • Исправлена ошибка в функции _WinAPI_AdjustTokenPrivileges(), из-за которой возвращался неверный код системной ошибки.
  • Исправлена ошибка приводящая к утечки памяти в функции _WinAPI_UpdateLayeredWindowEx().
  • Исправлено несколько ошибок, связанных с неверным объявлением типов данных.
  • Исправлено несколько незначительных ошибок.
  • Обновлена документация.


v2.9

  • Добавлены следующие функции.

    _WinAPI_CoInitialize
    _WinAPI_CoUninitialize
    _WinAPI_GetCDType
    _WinAPI_GetErrorMode
    _WinAPI_GetFileAttributes
    _WinAPI_GetFileSizeOnDisk
    _WinAPI_GetLogicalDrives
    _WinAPI_HiByte
    _WinAPI_IOCTL
    _WinAPI_LoByte
    _WinAPI_LongMid
    _WinAPI_SetErrorMode
    _WinAPI_SetFileAttributes
    _WinAPI_SetLocaleInfo
    _WinAPI_ShellGetSetFolderCustomSettings
    _WinAPI_ShellOpenFolderAndSelectItems
    _WinAPI_ShellQueryUserNotificationState

  • Добавлены примеры к вышеперечисленным функциям.
  • Добавлены константы (Control Codes) для функции _WinAPI_DeviceIoControl().
  • Обновлена документация.


v2.8

  • Добавлены следующие функции.

    _WinAPI_DeleteFile
    _WinAPI_ExtFloodFill
    _WinAPI_GetWindowLongEx
    _WinAPI_MoveToEx
    _WinAPI_OffsetPoints
    _WinAPI_PolyBezier
    _WinAPI_PolyBezierTo
    _WinAPI_PolyDraw
    _WinAPI_RegCopyTreeEx
    _WinAPI_RegDeleteKeyValue
    _WinAPI_RegDeleteTreeEx
    _WinAPI_RegDeleteValue
    _WinAPI_RegDuplicateHKey
    _WinAPI_RegLoadMUIString
    _WinAPI_ReOpenFile
    _WinAPI_RotatePoints
    _WinAPI_SetWindowLongEx
    _WinAPI_Wow64EnableWow64FsRedirection

  • Добавлены примеры к вышеперечисленным функциям.
  • Переименованы следующие функции.

    _WinAPI_GetClassLong => _WinAPI_GetClassLongEx
    _WinAPI_SetClassLong => _WinAPI_SetClassLongEx

  • Обновлена документация.


v2.7

  • Добавлены следующие функции.

    _WinAPI_BeginDeferWindowPos
    _WinAPI_CalculatePopupWindowPosition
    _WinAPI_CloseEnhMetaFile
    _WinAPI_CopyEnhMetaFile
    _WinAPI_CreateEnhMetaFile
    _WinAPI_DeferWindowPos
    _WinAPI_DeleteEnhMetaFile
    _WinAPI_EndDeferWindowPos
    _WinAPI_GetEnhMetaFile
    _WinAPI_GetEnhMetaFileBits
    _WinAPI_GetEnhMetaFileDescription
    _WinAPI_GetEnhMetaFileDimension
    _WinAPI_GetEnhMetaFileHeader
    _WinAPI_GetFileVersionInfo
    _WinAPI_GetModuleFileName
    _WinAPI_GetModuleHandleEx
    _WinAPI_GetProcessCommandLine
    _WinAPI_GetUDFColorMode
    _WinAPI_GetUDFVersion
    _WinAPI_SetEnhMetaFileBits
    _WinAPI_SwapDWord
    _WinAPI_PlayEnhMetaFile
    _WinAPI_VerQueryRoot
    _WinAPI_VerQueryValue

  • Добавлены примеры к вышеперечисленным функциям.
  • Переименованы следующие функции.

    _WinAPI_DuplicateBitmap => _WinAPI_CopyBitmap
    _WinAPI_DuplicateCursor => _WinAPI_CopyCursor
    _WinAPI_DuplicateStruct => _WinAPI_CopyStruct
    _WinAPI_FitToBitmap => _WinAPI_ResizeBitmap
    _WinAPI_FreeCursor => _WinAPI_DestroyCursor
    _WinAPI_SetLibraryColorMode => _WinAPI_SetUDFColorMode
    _WinAPI_ShellExtractIcons => _WinAPI_ShellExtractIcon

  • Удалены следующие функции.

    _WinAPI_DuplicateIcon (используйте _WinAPI_CopyIcon())
    _WinAPI_FreeHandle (используйте _WinAPI_CloseHandle())
    _WinAPI_FreeIcon (используйте _WinAPI_DestroyIcon())
    _WinAPI_FreeObject (используйте _WinAPI_DeleteObject())
    _WinAPI_PrivateExtractIcon (используйте _WinAPI_ShellExtractIcon())

  • Следующие функции заменены на их Unicode версии.

    _WinAPI_GetObjectEx
    _WinAPI_GetTextMetrics

  • Следующие функции теперь работают с KLID вместо LCID.

    _WinAPI_GetKeyboardLayout
    _WinAPI_GetKeyboardLayoutList
    _WinAPI_LoadKeyboardLayout
    _WinAPI_SetKeyboardLayout

  • Добавлены дополнительные параметры для функции _WinAPI_SetKeyboardLayout().
  • Обновлена документация.


v2.6

  • Добавлены следующие функции.

    _WinAPI_ActivateKeyboardLayout
    _WinAPI_CommandLineToArgv
    _WinAPI_CreateGUID
    _WinAPI_DeviceIoControl
    _WinAPI_DrawThemeTextEx
    _WinAPI_DwmGetColorizationColor
    _WinAPI_DwmGetWindowAttribute
    _WinAPI_DwmEnableBlurBehindWindow
    _WinAPI_DwmEnableComposition
    _WinAPI_DwmExtendFrameIntoClientArea
    _WinAPI_DwmIsCompositionEnabled
    _WinAPI_DwmQueryThumbnailSourceSize
    _WinAPI_DwmRegisterThumbnail
    _WinAPI_DwmSetWindowAttribute
    _WinAPI_DwmUnregisterThumbnail
    _WinAPI_DwmUpdateThumbnailProperties
    _WinAPI_GetCurrentHwProfile
    _WinAPI_GetPerformanceInfo
    _WinAPI_GetPosFromRect
    _WinAPI_GetProfilesDirectory
    _WinAPI_GetTickCount64
    _WinAPI_GetVersion
    _WinAPI_IsLoadKBLayout
    _WinAPI_IsWow64Process
    _WinAPI_LoadIconWithScaleDown
    _WinAPI_LoadKeyboardLayout
    _WinAPI_MessageBoxCheck
    _WinAPI_PatBlt
    _WinAPI_ShellAddToRecentDocs
    _WinAPI_ShellGetKnownFolderPath
    _WinAPI_ShellGetStockIconInfo
    _WinAPI_ShellObjectProperties
    _WinAPI_ShellOpenWithDlg
    _WinAPI_ShutdownDlg
    _WinAPI_UniqueHardwareID
    _WinAPI_UnloadKeyboardLayout

  • Добавлены примеры к вышеперечисленным функциям.
  • Удалены следующие функции.

    _WinAPI_ShareFolderDlg
    _WinAPI_WinHelp

  • Измеена функция _WinAPI_SetKeyboardLayout(). Теперь, если указанной раскладки клавиатуры в системе не загружено, функция возвращает ошибку.
  • Переписана (с изменением заголовка, см. документацию) функция _WinAPI_StructToArray().
  • Изменены некоторые примеры.
  • Несколько внутренних изменений, связанных с типами данных для работы на 64-битных системах.
  • Обновлена документация.


v2.5

  • Добавлены следующие функции.

    _WinAPI_CloseThemeData
    _WinAPI_CreateCaret
    _WinAPI_DestroyCaret
    _WinAPI_DrawThemeBackground
    _WinAPI_DrawThemeParentBackground
    _WinAPI_DrawThemeText
    _WinAPI_GetCaretBlinkTime
    _WinAPI_GetCaretPos
    _WinAPI_GetCurrentThemeName
    _WinAPI_GetThemeDocumentationProperty
    _WinAPI_GetThemeFont
    _WinAPI_GetThemeInt
    _WinAPI_GetThemeMargins
    _WinAPI_GetThemePartSize
    _WinAPI_GetThemePosition
    _WinAPI_GetThemeRect
    _WinAPI_GetUpdateRect
    _WinAPI_GetUpdateRgn
    _WinAPI_HideCaret
    _WinAPI_IsThemeBackgroundPartiallyTransparent
    _WinAPI_IsThemePartDefined
    _WinAPI_OpenThemeData
    _WinAPI_PlaySound
    _WinAPI_SetCaretBlinkTime
    _WinAPI_SetCaretPos
    _WinAPI_ShellChangeNotifyDeregister
    _WinAPI_ShellChangeNotifyRegister
    _WinAPI_ShowCaret

  • Добавлены примеры к вышеперечисленным функциям.
  • Изменен заголовок у следующих функций.

    _WinAPI_DrawBitmap
    _WinAPI_GetThemeColor

  • Добавлены следующие структуры.

    $tagBITMAPV4HEADER
    $tagBITMAPV5HEADER

  • Переписаны некоторые примеры для совместимости с Windows Vista / 7.
  • Обновлена документация.


v2.4

  • Добавлены следующие функции.

    _WinAPI_AdjustWindowRectEx
    _WinAPI_AssocGetPerceivedType
    _WinAPI_AddMRUString
    _WinAPI_BroadcastSystemMessage
    _WinAPI_BrowseForFolderDlg
    _WinAPI_CoTaskMemAlloc
    _WinAPI_CoTaskMemFree
    _WinAPI_CoTaskMemRealloc
    _WinAPI_CreateMRUList
    _WinAPI_EnumMRUList
    _WinAPI_FreeMRUList
    _WinAPI_GetBinaryType
    _WinAPI_GetKeyboardType
    _WinAPI_GetSystemInfo
    _WinAPI_GetSystemWow64Directory
    _WinAPI_GetTextFace
    _WinAPI_IsProcessInJob
    _WinAPI_SendMessageTimeout
    _WinAPI_ShellExtractAssociatedIcon
    _WinAPI_ShellGetPathFromIDList
    _WinAPI_ShellGetSpecialFolderLocation
    _WinAPI_ShellILCreateFromPath
    _WinAPI_ShowShareFolderUI
    _WinAPI_StrLen
    _WinAPI_UpdateLayeredWindowEx

  • Добавлены примеры к вышеперечисленным функциям.
  • Следующие функции переименованы с изменением их заголовков (см. документацию).

    _WinAPI_AddFontResource => _WinAPI_AddFontResourceEx
    _WinAPI_RemoveFontResource => _WinAPI_RemoveFontResourceEx

  • Изменен заголовок у следующих функций.

    _WinAPI_CopyFileEx
    _WinAPI_MoveFileEx
    _WinAPI_ShellGetFileInfo
    _WinAPI_StructToArray

  • Следующие функции теперь возвращают в @extended флаге код системной ошибки, аналогично _WinAPI_Reg... функциям. Для всех остальных, можно использовать _WinAPI_GetLastError().

    _WinAPI_AssocGetPerceivedType
    _WinAPI_AssocQueryString
    _WinAPI_CreateStreamOnHGlobal
    _WinAPI_GetHGlobalFromStream
    _WinAPI_GetThemeColor
    _WinAPI_ShellEmptyRecycleBin
    _WinAPI_ShellGetSpecialFolderLocation
    _WinAPI_ShellILCreateFromPath
    _WinAPI_ShellQueryRecycleBin

  • Следующие функции заменены на их Unicode версии (заголовок сохранен).

    _WinAPI_CreateSemaphore
    _WinAPI_OpenSemaphore
    _WinAPI_EnumResourceLanguages
    _WinAPI_EnumResourceNames
    _WinAPI_EnumResourceTypes
    _WinAPI_FindResource
    _WinAPI_FindResourceEx

  • Удалена функция _WinAPI_ExtractAssociatedIcon(), испольуйте вместо нее _WinAPI_ShellExtractAssociatedIcon().
  • Много внутренних изменений, связанных с типами данных для работы на 64-битных системах.
  • Обновлена документация.

Архив:

Скриншот:

uc

Источник: WinAPIEx UDF (оффициальный форум)
Автор: Yashied
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,664
Репутация
2,462
Yashied
Тему желательно именовать по русский (насколько это возможно).

А за библиотеку большое спасибо, многим будет полезна.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,601
Репутация
941
Шикарная вещь, уже тестируем ее во всю :smile:
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Belfigor сказал(а):
Шикарная вещь, уже тестируем ее во всю :smile:

Если найдешь какие-нибудь баги, сообщи пожалуйста.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Обновил библиотеку до версии 1.8, добавлены следующие функции (11):

_WinAPI_AssocQueryString
_WinAPI_ChildWindowFromPointEx
_WinAPI_DragAcceptFiles
_WinAPI_DragFinish
_WinAPI_DragQueryFileEx
_WinAPI_DragQueryPoint
_WinAPI_EnumChildWindows
_WinAPI_GetTopWindow
_WinAPI_GetWindowModuleFileName
_WinAPI_IsHungAppWindow
_WinAPI_IsWindowUnicode
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,601
Репутация
941
Yashied сказал(а):
Эта команда возвращает хэндл активного окна или я ошибаюсь?
Будут ли в будущем добавлены описания, что какая команда делает и как использовать + примеры?
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Belfigor сказал(а):
Эта команда возвращает хэндл активного окна или я ошибаюсь?

Эта функция возвращает хэндл первого (в Z последовательности) дочернего окна для указанного родительского окна, например можно получить хэндл нижнего элемента на форме:

Код:
#Include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>

$hForm = GUICreate('MyGUI', 400, 400)
$Label1 = GUICtrlCreateLabel('', 0, 0, 400, 400)
GUICtrlSetBkColor(-1, 0xFF0000)
GUICtrlSetState(-1, $GUI_DISABLE)
$Label2 = GUICtrlCreateLabel('', 20, 20, 360, 360)
GUICtrlSetBkColor(-1, 0x0000FF)
GUICtrlSetState(-1, $GUI_DISABLE)
$Label3 = GUICtrlCreateLabel('', 40, 40, 320, 320)
GUICtrlSetBkColor(-1, 0x00FFFF)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState()

ConsoleWrite('Handle to Label1:       0x' & Hex(GUICtrlGetHandle($Label1)) & @CR)
ConsoleWrite('Handle to Label2:       0x' & Hex(GUICtrlGetHandle($Label2)) & @CR)
ConsoleWrite('Handle to Label3:       0x' & Hex(GUICtrlGetHandle($Label3)) & @CR)
ConsoleWrite('_WinAPI_GetTopWindow(): 0x' & Hex(_WinAPI_GetTopWindow($hForm)) & @CR)

Do
Until GUIGetMsg() = -3


Belfigor сказал(а):
Будут ли в будущем добавлены описания, что какая команда делает и как использовать + примеры?

Внутри библиотеки есть описания (на английском) ко всем функциям. Для большинства функций есть примеры в архиве.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Обновил библиотеку до версии 1.9, добавлены следующие функции (10):

_WinAPI_CharToOem
_WinAPI_CreateFileEx
_WinAPI_EnumProcessThreads
_WinAPI_EnumProcessWindows
_WinAPI_IntersectRect
_WinAPI_IsRectEmpty
_WinAPI_MoveFileEx
_WinAPI_OemToChar
_WinAPI_ShareFolderDlg
_WinAPI_SubtractRect
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Обновил библиотеку для AutoIt 3.3.1.0 (Beta) и выше (файл WinAPIEx_AutoIt_Beta.zip). Выключена функция _WinAPI_PathFindOnPath(), так как она присутствует в новой Beta.
 
V

VitAl2013

Гость
А можно ли на её основе сделать новый AutoITInfo? А то попадается совт с какими то своими средствами GUI. Обычный AutoIT3Info ловит только название окна, хэндл, общие категории элемента... подозреваю что далеко не всё ловит.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Небольшие изменения в связи со шквалом "стремных" Beta версий.

:smile:
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Обновил библиотеку до версии 2.0, добавлены следующие функции (28):

_WinAPI_AdjustTokenPrivileges
_WinAPI_ColorHLSToRGB
_WinAPI_ColorRGBToHLS
_WinAPI_IsValidLocale
_WinAPI_LoDWord
_WinAPI_LookupPrivilegeName
_WinAPI_LookupPrivilegeValue
_WinAPI_HiDWord
_WinAPI_OpenProcessToken
_WinAPI_RegCloseKey
_WinAPI_RegCopyTree
_WinAPI_RegCreateKey
_WinAPI_RegDeleteEmptyKey
_WinAPI_RegDeleteKey
_WinAPI_RegDeleteTree
_WinAPI_RegEnumKey
_WinAPI_RegEnumValue
_WinAPI_RegFlushKey
_WinAPI_RegisterHotKey
_WinAPI_RegOpenKey
_WinAPI_RegQueryInfoKey
_WinAPI_RegQueryLastWriteTime
_WinAPI_RegQueryValue
_WinAPI_RegRestoreKey
_WinAPI_RegSaveKey
_WinAPI_RegSetValue
_WinAPI_UnionStruct
_WinAPI_UnregisterHotKey

+ примеры
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
Спасибо за ваш труд Yashied !
Скачал, стал пользоваться, но сразу возник вопрос!
Конечно, я понимаю, как исправить дело, но с начала хочу спросить у автора.

WinAPI.au3

Код:
_WinAPI_GetLayeredWindowAttributes()


WinAPIEx.au3

Код:
#Include <WinAPI.au3>
_WinAPI_GetLayeredWindowAttributes()


Возникает конфликт #include:

~\AutoIt\Include\WinAPIEx.au3 (5416) : ==> Duplicate function name.:
Func _WinAPI_GetLayeredWindowAttributes()

Это только у меня так?
 

asdf8

Скриптер
Сообщения
564
Репутация
152
У меня при подключении этой библиотеки выскакивает ошибка:

WinAPIEx.au3(6366,32) : ERROR: $tHiLo: undeclared global variable.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Garrett сказал(а):
Скачал, стал пользоваться, но сразу возник вопрос...

В архиве две версии WinAPIEx.au3: для AutoIt 3.3.0.0 и 3.3.2.0 (3.3.1.0 и выше). Просто используйте соответствующую версию. Разница лишь в отключенных функциях, которые присутствуют в новых версиях AutoIt.

asdf8 сказал(а):
У меня при подключении этой библиотеки выскакивает ошибка...

Спасибо, позже исправлю и выложу обновленную версию (2.1) + добавлю несколько новых функций.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
Yashied сказал(а):
В архиве две версии WinAPIEx.au3: для AutoIt 3.3.0.0 и 3.3.2.0 (3.3.1.0 и выше). Просто используйте соответствующую версию. Разница лишь в отключенных функциях, которые присутствуют в новых версиях AutoIt.
Спасибо! Действительно, моя ошибка, не для своей версии поставил WinAPIEx.au3 :wacko:
Извиняйте :smile: за глупый вопрос выше :-[
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Обновил библиотеку до версии 2.1, добавлены следующие функции (6):

_WinAPI_DuplicateStruct
_WinAPI_EnumSystemLocales
_WinAPI_EqualStruct
_WinAPI_GetDateFormat
_WinAPI_GetTimeFormat
_WinAPI_GetSystemDefaultLCID

+ примеры

Так же исправлена ошибка, связанная с неверным объявлением переменных (спасибо asdf8).

[box title=Внимание]Версия библиотеки для AutoIt 3.3.0.0 не будет поддерживаться с выходом следующей (после 3.3.2.0) финальной версии AutoIt. Используйте версию для AutoIt 3.3.2.0 (3.3.1.0 и выше).[/box]
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Еще небольшие дополнения, см. предыдущий ответ.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Yashied,

Вы не могли бы привести пример работы функции _WinAPI_GetPixel. Что такое $hDC - Handle to the device context.
В описании функции указано, что пример есть, а его нет.
Спасибо.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
madmasles сказал(а):
Вы не могли бы привести пример работы функции _WinAPI_GetPixel...

Код:
#Include <WinAPIEx.au3>

Global $hForm, $Msg, $Drive, $Combo, $Button

$hDC = _WinAPI_GetDC(0)

For $x = 0 To 199
	For $y = 0 To 199
		_WinAPI_SetPixel($hDC, 400 + $x, 400 + $y, _WinAPI_GetPixel($hDC, $x, $y))
	Next
Next

_WinAPI_ReleaseDC(0, $hDC)
 
Верх