 |
Kreoton Kreoton Development Group
|
|


|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
mistifi(ator
Зарегистрирован: 20.03.2006 Сообщения: 26 Откуда: Uzbekistan, Tashkent
|
Добавлено: Пн Фев 26, 2007 10:08 am Заголовок сообщения: MiraculixOS API - описание функций |
|
|
Здраствуйте.
Думаю что Креотон не будет против Форум-версии описания функций MiraculixAPI
Так вот, в этом разделе я буду выкладывать описания API-функций MiraculixOS, Вы можете задавать по ним вопросы, что-то уточнять, обращать внимание на какие-либо недоработки или просто комментировать их.
Начнём?  |
|
Вернуться к началу |
|
 |
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 раз(а) |
|
Вернуться к началу |
|
 |
mistifi(ator
Зарегистрирован: 20.03.2006 Сообщения: 26 Откуда: Uzbekistan, Tashkent
|
Добавлено: Пн Фев 26, 2007 10:50 am Заголовок сообщения: End_of_redraw - Сообщить системе об окончании отрисовки окна |
|
|
End_of_redraw - Сообщить системе об окончании отрисовки окна
------------------------------------------------------------------------------
Вызов:
call [End_of_redraw]
Параметры:
нет
Возвращаемое значение:
нет |
|
Вернуться к началу |
|
 |
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
|
|
|
Вернуться к началу |
|
 |
mistifi(ator
Зарегистрирован: 20.03.2006 Сообщения: 26 Откуда: Uzbekistan, Tashkent
|
Добавлено: Пн Фев 26, 2007 11:40 am Заголовок сообщения: ReceiveMessage - Принять сообщение |
|
|
ReceiveMessage - Принять сообщение
--------------------------------------------------------
Вызов:
call [ReceiveMessage]
Параметры:
нет
Возвращаемое значение:
EDI - PID отправителя
EBX,ESI,EBP - сообщение и параметры сообщения
Примечание:
В каких именно регистрах сообщение, а в каких параметры - целиком и полностью зависит от пославшего сообщение процесса, но если сообщение отправила система, то сообщение всегда находится в регистре bh, а параметры в остальных регистрах (зависит от типа сообщения) |
|
Вернуться к началу |
|
 |
mistifi(ator
Зарегистрирован: 20.03.2006 Сообщения: 26 Откуда: Uzbekistan, Tashkent
|
Добавлено: Пн Фев 26, 2007 11:41 am Заголовок сообщения: GetPID - Узнать свой PID |
|
|
GetPID - Узнать свой PID
--------------------------------------------
Вызов:
call [GetPID]
Параметры:
нет
Возвращаемое значение:
EAX - PID |
|
Вернуться к началу |
|
 |
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 - цвет точки
Возвращаемое значение:
нет |
|
Вернуться к началу |
|
 |
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 |
|
Вернуться к началу |
|
 |
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 раз |
|
Вернуться к началу |
|
 |
mistifi(ator
Зарегистрирован: 20.03.2006 Сообщения: 26 Откуда: Uzbekistan, Tashkent
|
Добавлено: Пн Фев 26, 2007 11:01 pm Заголовок сообщения: KillWindow - Удалить окно |
|
|
KillWindow - Удалить окно
-------------------------------------------
Вызов:
invoke KillWindow,WinID
Параметры:
WinID - идентификатор окна
Возвращаемое значение:
нет |
|
Вернуться к началу |
|
 |
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 - Указатель на строку текста
Возвращаемое значение:
нет |
|
Вернуться к началу |
|
 |
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 - Число
Возвращаемое значение:
нет |
|
Вернуться к началу |
|
 |
mistifi(ator
Зарегистрирован: 20.03.2006 Сообщения: 26 Откуда: Uzbekistan, Tashkent
|
Добавлено: Вт Фев 27, 2007 5:16 am Заголовок сообщения: StdHandler - Стандартный обработчик событий |
|
|
StdHandler - Стандартный обработчик событий
----------------------------------------------------------
Вызов:
call [StdHandler]
Параметры:
нет
Возвращаемое значение:
нет |
|
Вернуться к началу |
|
 |
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] |
|
Вернуться к началу |
|
 |
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 - Атрибуты кнопки
Возвращаемое значение:
нет
Примечание:
нет |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|