forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Разработка LIB (http://forum.boolean.name/forumdisplay.php?f=58)
-   -   Библиотека BlitzWinApi (http://forum.boolean.name/showthread.php?t=5583)

devolonter 16.01.2008 01:09

Библиотека BlitzWinApi
 
Вложений: 1
BlitzWinApi - враппер апи функций для облегчения работы с этими самыми функциями. С помощью него вы сможете воспользоваться WinApi из blitz3d и blitzplus.
Текущая версия: 0.50

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

Комманды:

- работа с окнами
hWnd - идентификатор окна если равен 0 то равен стартовому окну программы;

bGetActiveWindow () - возврщает дескриптор (идентификатор) активного окна;
bSetActiveWindow (hWnd%=0) активирует окно hWnd.
bWindowFromPoint (x%,y%) - возврщает дескриптор (идентификатор) окна находящегося под указаной точкой
bFindWindow (caption$) - возвращает дескриптор окна имеющее заголовок равный caption. 0 если окно не найдено
bGetDesktop () - возврщает дескриптор (идентификатор) рабочего стола;
bDragAcceptFiles (hWnd%=0) - активировать прием окном фаилов методом drag&drop
bHideWindow (hWnd%=0) - делает невидимым окно
bShowWindow (hWnd%=0) - делает видимым невидимое окно и активирует его.
bFlashWindow (time, hWnd%=0) - вызывает мерцание заголовка окна. time - промежуток между подсветкой.
bSetWindowAlpha (alpha, hWnd%=0) - устанавливает прозрачность окна alpha изменяется от 0 до 255 (0 окно полностью прозрано, 255 окно полностью непрозрачно)
bFreeWindowAlpha (hWnd%=0) - убирает прозрачность окна
bDisableExitButton (hWnd%=0) - отключает кнопку закрыть на окне и убирает опцию закрыть в меню заголовка
bWindowIsActive (hWnd%=0) - возвращает 1 если окно hWnd активно и 0 если это не так.
bGetWindowX (hWnd%=0) - возвращает X координату окна
bGetWindowY (hWnd%=0) - возвращает Y координату окна
bGetWindowRight (hWnd%=0) - возвращает X координату правой стороны окна
bGetWindowBottom (hWnd%=0) - возвращает Y координату нижней стороны окна
bGetWindowWidth (hWnd%=0) - возвращает ширину окна
bGetWindowHeight (hWnd%=0) - возвращает высоту окна
bScreenWidth () - возвращает текущую ширину дисплея
bScreenHeight() - возвращает текущую высоту дисплея
bCreateRectRegion (l%, t%, r%, b%) - создает прямоугольный регион l, t, r, b - координаты левой, верхней, правой и нижней границ региона соответсвенно, возвращает хэндл региона
bSetWindowRegion (region%, hwnd%) - задает видимый прямоугольный регион окна возвращает 0 в случае ошибки и 1 в случае успешного выполнения

- мышь
bGlobalMouseX () - возвращает глобальную X координату мыши
bGlobalMouseY () - возвращает глобальную Y координату мыши
bSetMousePos (x%, y%) - устанавливает новую позицию мыши
bSwapMouseButton (swap) - меняет местами кнопки мыши (1-правая кнопка становится левой, 0-наоборот). Функция меняет кнопки во всех программах поэтому не забываем по окончании работы вызвать bSwapMouseButton (0)
bSetPointer (pointer, hWnd=0) - меняет указатель мыши. pointer принимает значение одной из констант: POINTER_APPSTARTING, POINTER_ARROW, POINTER_CROSS, POINTER_IBEAM, POINTER_NO, POINTER_SIZEALL, POINTER_SIZENESW, POINTER_SIZENS, POINTER_SIZENWSE, POINTER_SIZEWE, POINTER_UPARROW,
POINTER_WAIT.
bSetImagePointer (image$, hWnd=0) - Меняет указатель мыши на картинку из фаила форматов "*.cur" и "*.ani"(анимированные) image - полный путь к картинке.

- система
bGetComputerName$ () - возвращает имя компьютера
bGetUserName$ () - возвращает имя активного пользователя
bRAMTotal() - объем оперативной памяти
bRAMAvail() - доступный объем оперативной памяти
bRAMUsage() - процент ипользования оперативной памяти
bPageTotal() - объем файла подкачки
bPageAvail() - доступный файла подкачки
bVirtualTotal() - объем виртуальной памяти
bVirtualAvail() - доступный объем виртуальной памяти
bShell (path$, cmd$, show%, hWnd) - расширенный аналог ExexFile () path - путь к файлу (если указать неисполняемы фйл то будет открыто приложение по умолчанию для данного фйла), cmd - дополнительные параметры, show - принимает значение одной из констант: SW_HIDE (Не отображать окно), SW_SHOWMAXIMIZED (Отобразить и развернуть на весь экран), SW_SHOWMINIMIZED (Отобразить и свернуть), SW_SHOWMINNOACTIVE (Отобразить, минимизировать и не передавать фокус), SW_SHOWNOACTIVATE (Отобразить и не передавать фокус) SW_SHOWNORMAL (Отобразить и передать фокус)

-буфер
bGetClipboardText$ (buffer = 1024, hWnd%=0) - взять текст из буфера обмена windows buffer - длина текста
bSetClipboardText$ (txt$,hWnd%=0) - поместить текст в буфер обмена windows

- диалоговые окна
bRequestColor(r=0, g=0, b=0, hWnd%=0) - вызвать дилоговое окно выбора цвета. Используйте bRequestRed (), bRequestGreen (), bRequestBlue () для получения значения цветов, r,g,b - цвет с которого начнется выбор.
bRequestRed () - возвращает красную составляющую цвета. Вызывается после функции bRequestColor()
bRequestGreen () - возвращает зеленую составляющую цвета. Вызывается после функции bRequestColor()
bRequestBlue () - возвращает синию составляющую цвета. Вызывается после функции bRequestColor()
bRequestFont(hWnd%=0) - вызвать дилоговое окно выбора шрифта. Загружает шрифт и возвращает его хэндл.
bRequestFile$(filter$="All (*.*)|*.*", save=0, hWnd%=0) - вызвать дилоговое окно открыть(сохранить) фаил. filter$ - маска фаилов, save - если равен 1 то будет показан дилог "сохранить как" иначе "открыть"
bMessageBox (message$,caption$,flag=MB_OK,hWnd=0) Показыает окно сообщения окна hWnd. message - текст сообщения, caption - заголовок сообщения, flag - тип окна сообщения (может принимать значение одной из констант MB_OK, MB_OKCANCEL, MB_YESNO, MB_YESNOCANCEL, MB_RETRYCANCEL, MB_ABORTRETRYIGNORE). Возвращает одно из значений констант : IDOK, IDCANCEL, IDABORT, IDRETRY, IDIGNORE, IDYES, IDNO.

- ини
bIniSetValue(section$, key$, value$, ini$="") - Записывает значение в ини файл. section - секция, key - имя значения, value - значение, ini - полное имя ини фала по-умолчанию равен BWA_INI_FILENAME$ = CurrentDir()+"BlitzWinApi.ini"
bIniGetValue$(section$, key$, default_value$=0, ini$="") - возвращает значение секции section и ключа key ини файла default_value - значение по умолчанию в случае отсутствия ини фаила и(или) секции и(или) ключа

- реестр
bRegSetValue(root, subkey$, key$,value$) - Записывает значение в реестр. root принимает значение одной из контсант: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_PERFORMANCE_DATA, HKEY_CURRENT_CONFIG, HKEY_DYN_DATA
subkey - имя ветки, key - имя значения, value - значение
bRegGetValue$(root, subkey$, key$) - возвращает значение узаного ключа реестра.
bRegDeleteKey(root, subkey$) - удаляет ключ реестра, subkey - ключ
bRegDeleteValue(root, subkey$, key$) - удаляет значение из реестра, subkey - ключ, key - значение.

- действия
bWaitDrop$ (wait=10) - ожидание фаила. Возвращает имя брошеного фаила wait - количество запросов
bWaitEvent() - ожидает сообщения окна. Программа останавливается если нет никакого действия над окном. Функция возвращает сообщение принятое окном.
А также дает возможность прочитать дополнительные параметры wParam и lParam с помощью функций bGetEventWParam () и bGetEventLParam ()
bGetEvent(hwnd = 0) - Тоже самое что и bWaitEvent() отличие в том что программа продолжает выполнение даже если не принято никакого сообщения. А также дает возможность прочитать дополнительные параметры wParam и lParam с помощью функций bGetEventWParam () и bGetEventLParam ()
bGetEventWParam () - возвращает значение wParam. Вызывается после функции bGetEvent() или bWaitEvent()
bGetEventLParam () - возвращает значение lParam. Вызывается после функции bGetEvent() или bWaitEvent()
bSendMessage (hwnd, message%, wParam=0, lParam=0) - отправляет окну hwnd сообщение message. Вернет 1 если все прошло успешно и 0 ели что то не так. wParam и lParam - дополнительные параметры. Используйте bGetEventWParam () и bGetEventLParam () для получения значения этих параметров после вызова функции bGetEvent()

- меню
bCreatePopupMenu () - создает всплывающее меню и возвращает его хэндл
bRequestPopupMenu (menu, hwnd=0) - вызывает всплывающее меню. menu - хэндл меню. Возвращает id выбранного пункта
bDestroyMenu (menu) - удаляет меню из памяти
bAddMenuItem (menu,id,name$, class=MF_ENABLED) - добавляет пункт в меню. menu - хэндл меню, id - индетификатор пункта, name - имя пункта (то что будет отбражатся в меню), class - тип пункта, используйте MF_SEPARATOR для создания разделителя. Возвращает id пункта.
bAddPopupItem (menu,name$) - добавляет пункт со всплывающим меню. Возвращает хэндл пункта
bEnableMenuItem (menu,id) - включает выключенный пункт меню
bDisableMenuItem (menu,id) - выключает пункт меню
bCheckMenuItem (menu,id) - делает выбранным пункт меню. проверить статус пункта можно с помощью функции bGetMenuItemState (menu,id)
bUncheckMenuItem (menu,id) - делает невыбранным пункт меню
bGetMenuItemState (menu,id) - возвращает одну из констант состояния пункта: MF_ENABLED, MF_DISABLED, MF_UNCHECKED, MF_CHECKED

Некоторые функции остались внутренними и я их не документировал.

Большая просьба!!! если вы встречали интересный пример с использованием апи и считаете что он может понадобится пришлите мне на мыло исходный код (можно на VB или C++). Так же жду предложений о том каких функций вам не хватает и что бы вы хотели видеть. О багах репортировать сюда же или на мыло
Мое мыло: [email protected]

Как я понял LUK разработку забросил и ждать от него обновлений слишком оптимистично. Думаю на то были веские причины. Сам я продолжить работу с библиотекой не смогу, по ряду причин. В связи с этими событиями я открываю исходники библиотеки всем желающим http://github.com/devolonter/BlitzWinApi. Там же вы найдете саму библиотеку в собранном виде. В репозитории размещена самая последняя версия, поэтому возможны проблемы со старыми функциями, к сожалению протестировать возможности нет. Сообщения об ошибках оставляйте в баг-треккере, критичные баги будут устранены.

Всем спасибо!

ABTOMAT 17.02.2008 01:56

Ответ: Библиотека BlitzWinApi
 
Цитата:

Так же жду предложений о том каких функций вам не хватает и что бы вы хотели видеть.
Команду, убирающую заголовок окна и рамку!
(З.Ы. Если в посте такая команда имеется - звыняйте, щас час ночи, уже засыпаю, мог и пропустить...)

P/P/S/ За либу спасибо, может пригодиться! :super:

devolonter 18.02.2008 00:43

Ответ: Библиотека BlitzWinApi
 
Цитата:

Команду, убирающую заголовок окна и рамку!
смотри пример SplashScreen_example.bb в папке с примерами ;)
пользуясь случаем сообщаю о баге функции bShell она не запускает приложения блиц в полноэкранном режиме другие приложения например калькулятор запускаются без проблем... своими силами разобраться так и не смог... если кто может помочь буду очень рад :)

devolonter 18.02.2008 15:32

Ответ: Библиотека BlitzWinApi
 
Работа над проектом прекращается... Да и вобще вся работа прекращается на год я ухожу в армию... если кому интересна судьба проекта стучитесь в аську дам исходник... может кто продолжит... извиняйете если что

tormoz 18.02.2008 17:54

Ответ: Библиотека BlitzWinApi
 
Это заговор минобороны против отечественного геймдева... :(

ABTOMAT 18.02.2008 19:52

Ответ: Библиотека BlitzWinApi
 
Цитата:

на год я ухожу в армию...
Пистец!
Самое страшное, что и мне это в скором времени тоже грозит :blink:
Эхх, тяжела жизнь русского геймдевелопера :russian:
Бывай, потом скажешь, как оно там и стоит ли перед этим писать завещание...
З.Ы. За исходниками обращусь, хоть сяхи и не розумею, но за год, может, научусь...

stone_evil 19.02.2008 05:18

Re: Ответ: Библиотека BlitzWinApi
 
Цитата:

Сообщение от devolonter (Сообщение 77368)
пользуясь случаем сообщаю о баге функции bShell она не запускает приложения блиц в полноэкранном режиме другие приложения например калькулятор запускаются без проблем... своими силами разобраться так и не смог... если кто может помочь буду очень рад :)

Уважаемые, кто смыслит в высоких искусствах, возьмите исходники, хорошая либа пропадает. Сделайте доброе дело. У меня, можно сказать, из-за этого бага проект стоит!

ant2on 04.04.2008 12:47

Ответ: Библиотека BlitzWinApi
 
devolonter, классная либа! Респект!

Я бы еще хотел функцию добавления иконки в трей ;)

devolonter 18.11.2008 23:40

Ответ: Библиотека BlitzWinApi
 
Всем привет, кого давно не видел кого совсем не видел :)! Есть ли смысл продолжать работу над либой или велосипедов уже достаточно? ;)

LUK 26.11.2009 20:31

Ответ: Библиотека BlitzWinApi
 
Цитата:

Сообщение от stone_evil (Сообщение 77464)
Уважаемые, кто смыслит в высоких искусствах, возьмите исходники, хорошая либа пропадает. Сделайте доброе дело. У меня, можно сказать, из-за этого бага проект стоит!

Хотел взять еще в далеком 2008, но решился только сейчас =) =) =)

Официально =), заявляю, что проект не умер. В данный момент продолжением разработки библиотеки занимаюсь я, LUK.
План таков:
1) Оптимизация функций, написанных еще devolonter'ом (~70%)
2) Создание нормальной справочной системы к библиотеке (~15%)
3) Расширение функционала (добавлю, то, чего считаю не хватало в библиотеке - по крайней мере мне) (~10%)

Потом будет проверка и исправления самого devolonter'а (по его желанию), а затем и релиз. Он планируется к 1 числу 2010 года - раньше извиняйте, никак - сессия скоро =)

Далее планируется:
1) Тестирование на совместимость с Vista/7 (думаю, придется попыхтеть над работоспособностью некоторых функций) (~0%)
2) Хедеры для самого С++, а так же для других языков (если будут запросы).


P.S. Так же принимаются предложения по функционалу.
P.S.S. Сворачивание в трей будет - можете не предлагать - уже учел =)

IGR 26.11.2009 21:52

Ответ: Библиотека BlitzWinApi
 
неплохие новости !! :)

devolonter 27.11.2009 16:00

Ответ: Библиотека BlitzWinApi
 
Цитата:

Потом будет проверка и исправления самого devolonter'а (по его желанию)
Наверное все таки по твоему желанию) Я тебе доверяю и уверен что проект в хороших руках

Цитата:

Тестирование на совместимость с Vista/7
С удовольствием взялся бы за эту часть проекта

Цитата:

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

Reizel 27.12.2009 11:05

Ответ: Библиотека BlitzWinApi
 
Гм.....Расскажите пожалуйста, возможно ли через API рисовать картинки на рабочем столе??? Желательно анимированные...И с маской.....

Mhyhr 27.12.2009 11:51

Ответ: Библиотека BlitzWinApi
 
Если не найдешь ответа, то вот в этой книжке видел пример с помощью маскированного окна, дед мороз с прозрачностью вроде.
http://codpro.ru/content/программиро...акера-м-фленов

devolonter 19.10.2010 14:15

Ответ: Библиотека BlitzWinApi
 
Не знаю, хорошая это новость или плохая. Как я понял LUK разработку забросил и ждать от него обновлений слишком оптимистично. Думаю на то были веские причины. Сам я продолжить работу с библиотекой не смогу, по ряду причин. В связи с этими событиями я открываю исходники библиотеки всем желающим http://github.com/devolonter/BlitzWinApi. Там же вы найдете саму библиотеку в собранном виде. В репозитории размещена самая последняя версия, поэтому возможны проблемы со старыми функциями, к сожалению протестировать возможности нет. Сообщения об ошибках оставляйте в баг-треккере, критичные баги будут устранены.

Всем спасибо!

P.S. Кто-нибудь знает, как исправить текст поста? Хотел бы ссылку на гитнаб в него добавить.
Модератор: поправил вручную. Редактирование доступно только на определённый срок от постинга сообщения.


Часовой пояс GMT +4, время: 01:47.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot