Список форумов Kreoton Kreoton
Kreoton Development Group
 
Войти и проверить личные сообщенияВойти и проверить личные сообщения

ВходВход  РегистрацияРегистрация


Профиль  Поиск  Пользователи  FAQ  Группы
MiraculixOS API - описание функций
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Kreoton -> Application Coding
Предыдущая тема :: Следующая тема  
Автор Сообщение
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Пн Фев 26, 2007 10:08 am    Заголовок сообщения: MiraculixOS API - описание функций Ответить с цитатой

Здраствуйте.
Думаю что Креотон не будет против Форум-версии описания функций MiraculixAPI Wink

Так вот, в этом разделе я буду выкладывать описания API-функций MiraculixOS, Вы можете задавать по ним вопросы, что-то уточнять, обращать внимание на какие-либо недоработки или просто комментировать их.

Начнём? Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Пн Фев 26, 2007 10:22 am    Заголовок сообщения: Draw_StdWindow - Создать стандартное окно Ответить с цитатой

Draw_StdWindow - Создать стандартное окно
-------------------------------------------------------
Вызов:
invoke Draw_StdWindow,coords, size, title, buttons

Параметры:
coords - координаты окна (x_coord*65536+y_coord)
size - размеры окна (x_size*65536+y_size)
title - заголовок окна
buttons - атрибуты окна

Возвращаемое значение:
EAX - идентификатор окна
ESI - координаты окна (x_coord*65536+y_coord)
EDI - размеры окна (x_size*65536+y_size)

Примечание:
Вам необходимо сохранить идентификатор окна (EAX)

Пример:
Код:

format PE

include "include\win32ax.inc"
include "..\include\const.inc"

x_size = 340
y_size = 150
x_coord = 100
y_coord = 100

start:
call Redraw
Wait_Event:
call [WaitMessage]
call [StdHandler]
jmp Wait_Event

Redraw:
invoke Draw_StdWindow, x_coord*65536+y_coord,x_size*65536+y_size,"Hello World!",00101b
ret


data import
;
; Import functions:
;

library mx32,'mx32.dll'

import mx32,\
WaitMessage,'WaitMessage',\
Draw_StdWindow,'Draw_StdWindow',\
StdHandler,'StdHandler'
end data


Приложение:
Атрибуты окна:
Код:

  00000b - окно имеет только кнопку "закрыть", которая является неактивной (disabled)
  00001b - кнопка "закрыть"
  00010b - кнопка "развернуть/восстановить"
  00100b - кнопка "свернуть"

Скриншот:


Последний раз редактировалось: mistifi(ator (Вт Фев 27, 2007 6:35 am), всего редактировалось 4 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Пн Фев 26, 2007 10:50 am    Заголовок сообщения: End_of_redraw - Сообщить системе об окончании отрисовки окна Ответить с цитатой

End_of_redraw - Сообщить системе об окончании отрисовки окна
------------------------------------------------------------------------------

Вызов:
call [End_of_redraw]

Параметры:
нет

Возвращаемое значение:
нет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Пн Фев 26, 2007 11:29 am    Заголовок сообщения: SendMessage - Послать сообщение Ответить с цитатой

SendMessage - Послать сообщение
---------------------------------------------

Вызов:
invoke SendMessage,PID, message*256+param_1, param_2, param_3


Параметры:
PID - Идентификатор процесса, которому посылается сообщение
message - Само сообщение(bh)
param_1 - Первый параметр(bl)
param_2 - Второй параметр(esi)
param_3 - Третий параметр(ebp)

Возвращаемое значение:
EAX - 0, если произошла ошибка

Примечание:
Можно посылать любые сообщения процессам

Пример:
Код:

;==========================================
; Пример использования функции SendMessage
;==========================================

format PE

include "..\include\win32ax.inc"
include "..\include\const.inc"

x_size = 150
y_size = 100
x_coord = 100
y_coord = 100

EventID_Ctrl3 = 13
EventID_IPC = 50

start:
call Redraw
Wait_Event:
call [WaitMessage]
call [StdHandler]
cmp bx,(EventID_Ctrl3 shl 8) + 1
jne Wait_Event

invoke Get_FileAddress, filename
invoke CreateProcess, esi,ebx,ProcessName
mov [Process_PID],eax
mov eax,'TEST'
invoke SendMessage, [Process_PID],EventID_IPC shl 8,eax,eax

jmp Wait_Event

Redraw:
invoke Draw_StdWindow, x_coord*65536+y_coord,x_size*65536+y_size,"SendMessage Example",00101b
mov [WinID],eax
invoke Create_StdButton, 20*65536+50,100*65536+20,"Send",1,10b
call [End_of_redraw]
ret

data import
;
; Import functions:
;

library mx32,'mx32.dll'

import mx32,\
WaitMessage,'WaitMessage',\
Draw_StdWindow,'Draw_StdWindow',\
StdHandler,'StdHandler',\
End_of_redraw,'End_of_redraw',\
Get_FileAddress,'Get_FileAddress',\
CreateProcess,'CreateProcess',\
SendMessage,'SendMessage',\
Create_StdButton,'Create_StdButton'
end data

section '.data' data readable writeable
Process_PID dd 0
filename db 'test.exe',0
ProcessName db 'Test Process',0
WinID dd 0
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Пн Фев 26, 2007 11:40 am    Заголовок сообщения: ReceiveMessage - Принять сообщение Ответить с цитатой

ReceiveMessage - Принять сообщение
--------------------------------------------------------

Вызов:
call [ReceiveMessage]

Параметры:
нет

Возвращаемое значение:
EDI - PID отправителя
EBX,ESI,EBP - сообщение и параметры сообщения


Примечание:
В каких именно регистрах сообщение, а в каких параметры - целиком и полностью зависит от пославшего сообщение процесса, но если сообщение отправила система, то сообщение всегда находится в регистре bh, а параметры в остальных регистрах (зависит от типа сообщения)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Пн Фев 26, 2007 11:41 am    Заголовок сообщения: GetPID - Узнать свой PID Ответить с цитатой

GetPID - Узнать свой PID
--------------------------------------------

Вызов:
call [GetPID]

Параметры:
нет

Возвращаемое значение:
EAX - PID
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Пн Фев 26, 2007 11:43 am    Заголовок сообщения: PutPixel - Поставить точку Ответить с цитатой

PutPixel - Поставить точку
---------------------------------------------

Вызов:
invoke PutPixel,coord_x, coord_y, color

Параметры:
coord_x - координата по оси x
coord_y - координата по оси y
color - цвет точки

Возвращаемое значение:
нет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Пн Фев 26, 2007 9:34 pm    Заголовок сообщения: Get_screen_param - Получить параметры экрана Ответить с цитатой

Get_screen_param - Получить параметры экрана
-----------------------------------------------------------------

Вызов:
call [Get_screen_param]

Параметры:
нет

Возвращаемое значение:
ESI - размер экрана по оси x
EDI - размер экрана по оси y
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Пн Фев 26, 2007 10:50 pm    Заголовок сообщения: DrawPicture - Вывести изображение Ответить с цитатой

DrawPicture - Вывести изображение
-------------------------------------------------------

Вызов:
invoke DrawPicture,coord_x, coord_y, pointer

Параметры:
coord_x - координата по оси x
coord_y - координата по оси y
pointer - Указатель на изображение

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

Пример:
Код:

;==========================================
; Пример использования функции DrawPicture
;==========================================

format PE

include "..\include\win32ax.inc"
include "..\include\const.inc"

x_size = 200
y_size = 150
x_coord = 100
y_coord = 100

start:
call Redraw
Wait_Event:
call [WaitMessage]
call [StdHandler]
jmp Wait_Event

Redraw:
invoke Draw_StdWindow, x_coord*65536+y_coord,x_size*65536+y_size,"Picture Demo",00101b
mov [WinID],eax

mov esi,PicFile
mov edi,picfile
mov eax,8
int 0x90

invoke DrawPicture, 20,30,picfile,[WinID]
call [End_of_redraw]
ret

data import
;
; Import functions:
;

library mx32,'mx32.dll'

import mx32,\
WaitMessage,'WaitMessage',\
Draw_Picture,'Draw_Picture',\
Draw_StdWindow,'Draw_StdWindow',\
StdHandler,'StdHandler',\
End_of_redraw,'End_of_redraw'
end data

section '.data' data readable writeable
WinID dd 0
PicFile db 'bio2.gif',0 ; Имя загружаемой картинки
picfile rb 0x80000 ; Буффер с картинкой


Скриншот:


Последний раз редактировалось: mistifi(ator (Вт Фев 27, 2007 5:10 am), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Пн Фев 26, 2007 11:01 pm    Заголовок сообщения: KillWindow - Удалить окно Ответить с цитатой

KillWindow - Удалить окно
-------------------------------------------

Вызов:
invoke KillWindow,WinID

Параметры:
WinID - идентификатор окна

Возвращаемое значение:
нет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Вт Фев 27, 2007 5:12 am    Заголовок сообщения: WriteText - Написать текст в окне Ответить с цитатой

WriteText - Написать текст в окне
---------------------------------------

Вызов:
invoke WriteText,coord_x, coord_y, color, FontID, TextStr

Параметры:
coord_x - координата по оси x
coord_x - координата по оси y
color - цвет текста
FontID - идентификатор шрифта (стандартный системный шрифт - 4)
TextStr - Указатель на строку текста

Возвращаемое значение:
нет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Вт Фев 27, 2007 5:13 am    Заголовок сообщения: WriteHex - Написать HEX-число в окне Ответить с цитатой

WriteHex - Написать HEX-число в окне
----------------------------------------------

Вызов:
invoke WriteHex,coord_x, coord_y, color, FontID, Number

Параметры:
coord_x - координата по оси x
coord_x - координата по оси y
color - цвет текста
FontID - идентификатор шрифта (стандартный системный шрифт - 4)
Number - Число

Возвращаемое значение:
нет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Вт Фев 27, 2007 5:16 am    Заголовок сообщения: StdHandler - Стандартный обработчик событий Ответить с цитатой

StdHandler - Стандартный обработчик событий
----------------------------------------------------------

Вызов:
call [StdHandler]

Параметры:
нет

Возвращаемое значение:
нет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Вт Фев 27, 2007 5:30 am    Заголовок сообщения: GetWinParams - Получить параметры окна Ответить с цитатой

GetWinParams - Получить параметры окна
----------------------------------------------------------

Вызов:
call [GetWinParams]

Параметры:
нет

Возвращаемое значение:
ESI - [Координата по оси X] *65536+ [Координата по оси Y]
EDI - [Размер по оси X] *65536+ [Размер по оси Y]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



Зарегистрирован: 20.03.2006
Сообщения: 26
Откуда: Uzbekistan, Tashkent

СообщениеДобавлено: Вт Фев 27, 2007 5:37 am    Заголовок сообщения: Create_StdButton - Создать кнопку Ответить с цитатой

Create_StdButton - Создать кнопку
-------------------------------------------------

Вызов:
invoke Create_StdButton,coords, size, Text, ButtonID, BtnAttr

Параметры:
coords - координаты кнопки (x_coord*65536+y_coord)
size - размеры кнопки (x_size*65536+y_size)
Text - Указатель на текст на кнопке
ButtonID - Идентификатор кнопки
BtnAttr - Атрибуты кнопки

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

Примечание:
нет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Kreoton -> Application Coding Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах

phpBB "skin" by DewChugr


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB