Что нового

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

Автор
Yashied

Yashied

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

Список изменений:
  • Добавлены следующие функции.

    _WinAPI_Create32BitHBITMAP
    _WinAPI_PathIsContentType
    _WinAPI_PathIsLFNFileSpec
    _WinAPI_PathUndecorate
    _WinAPI_RegDisableReflectionKey
    _WinAPI_RegEnableReflectionKey
    _WinAPI_RegQueryReflectionKey
    _WinAPI_UrlCreateFromPath
    _WinAPI_UrlEscape
    _WinAPI_UrlGetPart
    _WinAPI_UrlFixup
    _WinAPI_UrlIs
    _WinAPI_UrlUnescape

  • Добавлены примеры к вышеперечисленным функциям.
  • Удалена функция _WinAPI_PathIsURL(), используйте _WinAPI_UrlIs().
  • Обновлена документация.
 
Автор
Yashied

Yashied

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

Список изменений:
  • Добавлены следующие функции.

    _WinAPI_AddClipboardFormatListener
    _WinAPI_CreatePoint
    _WinAPI_EnumProcessModules
    _WinAPI_FileInUse
    _WinAPI_GetClipboardSequenceNumber
    _WinAPI_GetDllDirectory
    _WinAPI_GetFinalPathNameByHandle
    _WinAPI_GetPhysicallyInstalledSystemMemory
    _WinAPI_GetProcessShutdownParameters
    _WinAPI_GetProcessWorkingDirectory
    _WinAPI_GetRegKeyNameByHandle
    _WinAPI_GetSystemDEPPolicy
    _WinAPI_NtStatusToDosError
    _WinAPI_RemoveClipboardFormatListener
    _WinAPI_SetDllDirectory
    _WinAPI_SetProcessShutdownParameters
    _WinAPI_SetWinEventHook
    _WinAPI_SfcIsFileProtected
    _WinAPI_SfcIsKeyProtected
    _WinAPI_ShutdownBlockReasonCreate
    _WinAPI_ShutdownBlockReasonDestroy
    _WinAPI_ShutdownBlockReasonQuery
    _WinAPI_StretchDIBits
    _WinAPI_UnhookWinEvent

  • Добавлены примеры к вышеперечисленным функциям.
  • Добавлен файл APIErrors.au3 (опционально), содержащий константы всех системных ошибок Windows.
  • Обновлена документация.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Yashied
Как я понял, в версию 3.2 внесены изменения.
А что еще изменено, кроме _WinAPI_UpdateLayeredWindowEx()?
Спасибо. :thanks:
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Добавлено:

_WinAPI_CreatePoint()
_WinAPI_GetProcessWorkingDirectory()

Удалено:

_WinAPI_WTSRegisterSessionNotification()
_WinAPI_WTSUnRegisterSessionNotification()
 

shm_alex

Новичок
Сообщения
34
Репутация
4
Доброго времени суток
у меня конфликт имён возникает, для функции _WinAPI_CloseThemeData (Да и для многих других) она реализована и в модуле GDIP.au3 и в модуле WinAPIEx.au3 интерпретатор не знает какую реализацию брать :
Код:
#Include <WinAPIEx.au3>
#Include <WindowsConstants.au3>

#include <GDIPlus.au3>
#include <GDIP.au3>

то такой
C:\Program Files\AutoIt3\Include\GDIP.au3 (14255) : ==> Duplicate function name.:
Func _WinAPI_CloseThemeData($hTheme)

если наоборот
Код:
#include <GDIPlus.au3>
#include <GDIP.au3>

#Include <WinAPIEx.au3>
#Include <WindowsConstants.au3>

то такой
C:\Program Files\AutoIt3\Include\WinAPIEx.au3 (2082) : ==> Duplicate function name.:
Func _WinAPI_CloseThemeData($hTheme)
Посоветуйте что сделать , спасибо.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
shm_alex
что за GDIP.au3 ? у меня в поставке нет этой либы
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Kaster сказал(а):
что за GDIP.au3 ? у меня в поставке нет этой либы
GDIP.au3 - библиотека распространяемая на оффоруме:
http://www.autoitscript.com/forum/topic/106021-gdip-au3/
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
тогда мне кажется очевидным решение - удалить дублируемую функцию из GDIP.au3. в виду больше авторитетности WinAPIEx.au3 ;D
шутка. удалить, конечно же, можно из любой из них.
но, т.к. велика вероятность отдельного использования каждой из них, после удаления функции переименовать либу во что нибудь свое и подключать именно ее
 
Автор
Yashied

Yashied

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

У нас на форуме я ее тоже выкладывал.

shm_alex

Просто переименуй автоматом в GDIP.au3 все "_WinAPI_" в "__WinAPI".
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Хех, в последней версии GDIP.au3 Authenticity уже убрал все _WinAPI_* функции. Надо бы обновить ее у нас на форуме.
 

shm_alex

Новичок
Сообщения
34
Репутация
4
Yashied сказал(а):
Просто переименуй автоматом в GDIP.au3 все "_WinAPI_" в "__WinAPI".
Спасибо за советы , вроде запускается.
Ночью пытался разобраться ,просто комментировал функции те что, реализованы и там и там внутри GDIP.au3 , но не получилось у меня прям так в лоб, полезли ошибки с константами ещё, комментировать константы...(Всю дорогу скребли кошки, а ту ли я реализацию выбираю, ведь функции реализованы по-разному в обеих библиотеках ) В общем оставил затею до утра. Сутра поставил по совету новую GDIP.

По поводу подхода с переименованием. Может в этом случае это бы и сработало. Но, вопрос встаёт совместимости с кодом который уже использует эти функции и там надо будет переименовывать (у меня такого кода нет , вопрос гипотетический).
Ещё раз спасибо)
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Обновил библиотеку до версии 3.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_EndBufferedPaint
    _WinAPI_GetBufferedPaintBits
    _WinAPI_GetBufferedPaintDC
    _WinAPI_GetBufferedPaintTargetDC
    _WinAPI_GetBufferedPaintTargetRect
    _WinAPI_GetBoundsRect
    _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_PaintDesktop
    _WinAPI_SaveHICONToFile
    _WinAPI_SetBoundsRect

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

    _WinAPI_DllGetVersion

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

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Описания на Русском я так понимаю нет и не предвидится... :reading_book:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
zlo-kazan
в игре в + и -, я бы написал
+ - лишний повод подтянуть свой английский :smile:
 
Автор
Yashied

Yashied

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

Насколько мне известно, Garrett что-то делает в этом направлении. Я в ближайшее время не планирую этим заниматься.
 
Автор
Yashied

Yashied

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

Список изменений:
  • Добавлены следующие функции.

    _WinAPI_DWordToFloat
    _WinAPI_EqualMemory
    _WinAPI_FillMemory
    _WinAPI_FloatToDWord
    _WinAPI_GetApplicationRestartSettings
    _WinAPI_GetDeviceGammaRamp
    _WinAPI_LZNTCompress
    _WinAPI_LZNTDecompress
    _WinAPI_MoveMemory
    _WinAPI_RegisterApplicationRestart
    _WinAPI_SetDeviceGammaRamp
    _WinAPI_UnregisterApplicationRestart

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

    _WinAPI_EqualStruct
    _WinAPI_FillStruct

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

    _WinAPI_CopyStruct
    _WinAPI_ShellGetSettings
    _WinAPI_ShellSetSettings
    _WinAPI_StructToArray
    _WinAPI_UnionStruct

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

VladUs

Скриптер
Сообщения
621
Репутация
182
Функция _WinAPI_GetProcessUser() не возвращает имена пользователей если процесс запущен от имени другой учетной записи.
Допустим, если запустить процесс способом RunAs, имя пользователя от которого был запущен процесс не возвращается. (Windows XP SP3)
здесь уже поднимался данный вопрос в контексте системных учетных записей.
Но к сожалению это относится и к изложенному выше.
 

rollex

Новичок
Сообщения
66
Репутация
1
_WinAPI_GetActiveWindow() возвращает 0x00000000. Windows XP Sp3, AutoIt 3.3.6.1 :(
 

VladUs

Скриптер
Сообщения
621
Репутация
182
Возвращаемым значением функции _WinAPI_GetActiveWindow() является дескриптор активного окна, связанного с очередью сообщений вызывающего потока. Иначе, возвращаемое значение - ПУСТО (NULL).
Иными словами, функция возвращает активное окно текущего потока ( т.е из которого функцию и вызвали ), поэтому на чужие окна она действовать и не будет.
Для примера :
Код:
#Include <WinAPIEx.au3>
HotKeySet("{F9}","_x")

GUICreate("")
GUICtrlCreateInput("",-1,-1,400,200)
GUISetState()

Func _x ()
ConsoleWrite(_WinAPI_GetActiveWindow() & @CRLF)
EndFunc

While 1
If GUIGetMsg() = -3 Then Exit    
WEnd

Запустите скрипт и нажмите F9
В консоле отобразится Handle запущенного окна
Для определения активного окна (окна, с которым пользователь в настоящее время работает) необходимо использовать _WinAPI_GetForegroundWindow()
 

rollex

Новичок
Сообщения
66
Репутация
1
VladUs
Спасибо, а то запутался.. Мне и нужно было получить идентификатор активного окна, а не окна скрипта. :beer:
 
Верх