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

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


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



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

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

Create_CheckButton - Создать CheckBox
-----------------------------------------------

Вызов:
invoke Create_CheckButton, coords, ButtonID, BtnAttr

Параметры:
coords - координаты кнопки (x_coord*65536+y_coord)
ButtonID - Идентификатор кнопки
BtnAttr - Атрибуты кнопки

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



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

СообщениеДобавлено: Вт Фев 27, 2007 5:48 am    Заголовок сообщения: Draw_BLine - Нарисовать закрашенный прямоугольник в окне Ответить с цитатой

Draw_BLine - Нарисовать закрашенный прямоугольник в окне
--------------------------------------------------------------------

Вызов:
invoke Draw_BLine, x_coord, y_coord, x_size, y_size, color, WinID

Параметры:
x_coord - Координата по оси x
y_coord - Координата по оси y
x_size - Размер по оси x
y_size - Размер по оси y
color - Цвет прямоугольника
WinID - Идентификатор окна

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



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

СообщениеДобавлено: Вт Фев 27, 2007 6:04 am    Заголовок сообщения: Get_FileAddress - Получить адрес файла на Ram-диске Ответить с цитатой

Get_FileAddress - Получить адрес файла на Ram-диске
------------------------------------------------------------------

Вызов:
invoke Get_FileAddress, Name

Параметры:
Name - Имя файла

Возвращаемое значение:
ESI - Адрес файла
EBX - размер файла

Примечание:
Если ESI=0, значит файла нет на Ram-диске

Пример:
Код:

format PE

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

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

EventID_Ctrl3 = 13

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

jmp Wait_Event

Redraw:
invoke Draw_StdWindow, x_coord*65536+y_coord,x_size*65536+y_size,"GetAddress&Run demo",00101b
mov [WinID],eax

invoke Create_StdButton,30*65536+40,100*65536+22,"Run Browser",1,10b

call [End_of_redraw]
ret


LoadFileBrowser:
pusha
invoke Get_FileAddress, browser_filename
cmp esi,0
je file_not_found
invoke CreateProcess, esi,ebx,browser_ProcessName
file_not_found:
popa
jmp Wait_Event

data import
;
; Import functions:
;

library mx32,'mx32.dll'

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

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



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

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

CreateProcess - Создать процесс
--------------------------------------------------

Вызов:
invoke CreateProcess, Address, Size, Name

Параметры:
Address - Адрес файла процесса (на ram-диске, можно получить функцией Get_FileAddress)
Size - Размер файла процесса
Name - Имя процесса (На ваше усмотрение)

Возвращаемое значение:
EAX - PID созданного процесса

Примечание:
Если ESI=0, значит файла нет на Ram-диске

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



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

СообщениеДобавлено: Вт Фев 27, 2007 6:16 am    Заголовок сообщения: TaskInfo - Получить информацию о процессе Ответить с цитатой

TaskInfo - Получить информацию о процессе
----------------------------------------------------

Вызов:
invoke TaskInfo, TaskID, TaskBuffer

Параметры:
TaskID - Идентификатор приложения, о котором нужно получить информацию
TaskBuffer - Буфер, который будет заполнен этой информацией.

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

Пример:
Код:
       
        mov     ecx,0     ; Перебираем окна, начиная с нулевого
        mov     edx,0x30
      new_task:
        invoke  TaskInfo, ecx,taskinfo
        cmp     [taskinfo+w.Name],byte 0    ; Окон больше нет?
        je no_win
        inc     ecx
        ; Вывод имени окна
        push ecx esi
          mov esi,taskinfo+w.Name
          invoke WriteText,0x20, edx, 0, 4, esi
        pop esi ecx

        add     edx,0x10
        jmp     new_task             ; Есть, получаем информацию о следкющем окне
no_win: 


Приложение:
Структура, которую заполняет функция TaskInfo, информацией о окне, номер которого находится в TaskID:

Код:
   
struc WinInformation {
        .Name       = 0x00    ; Наименование окна
        .xCoord     = 0x20    ; X-координата
        .yCoord     = 0x22    ; Y-координата
        .xSize      = 0x24    ; Размер по оси X
        .ySize      = 0x26    ; Размер по оси Y
        .attr       = 0x28    ; Атрибуты окна
        .PID        = 0x2C    ; Идентификатор родительского процесса (которому принадлежит это окно)
        .WID        = 0x30    ; Идентификатор окна

        .Size       = 0x40    ; Размер структуры
    }
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
mistifi(ator



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

СообщениеДобавлено: Вт Фев 27, 2007 6:25 am    Заголовок сообщения: ReadIniFile - Чтение ini-файла Ответить с цитатой

ReadIniFile - Чтение ini-файла
-----------------------------------

Вызов:
Код:

mov esi,ini_buff
mov edi,ini_section
mov ebp,ini_param
mov edx,ini_value
call [ReadIniFile]


Параметры:
ini_buff(esi) - буффер ini-файла
ini_section(edi) - имя секции в ASCIIZ формате
ini_param(ebp) - имя параметра в ASCIIZ формате
ini_value(edx) - буффер для полученного значения

Возвращаемое значение:
EDX=0, если ничего не найдено, иначе текущий адресс (позиция в буфере, на которой поиск завершился).

Примечание:
Если EAX=1, то поиск будет произведен, без учета секции (функция сразу будет искать указанный параметр).
Это сделанно для того, что-бы можно было искать параметры с одинаковыми именами в одной и той-же секции.

Используется в приложении desktop (Рабочий стол)

Функция доступна в библиотеке mx32.dll версии 1.2 и выше

Пример:
Код:

;==============================================
; Пример чтения значения заданного параметра
; в заданной секции ini-файла
;==============================================
format PE

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

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

EventID_Ctrl3   = 13

  start:
   ; Читаем наш ini-файл в буффер
   mov   esi,ini_file_name
   mov   edi,ini_buff
   mov   eax,8
   int   0x90


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

   cmp   bx,(EventID_Ctrl3 shl 8) + 1
   jne   no_pressbutton

   mov esi,ini_buff      ; буффер ini-файла
   mov edi,ini_section   ; имя секции в ASCIIZ формате
   mov ebp,ini_param     ; имя параметра в ASCIIZ формате
   mov edx,ini_value     ; буффер для полученного значения параметра
   call   [ReadIniFile] ; Читаем значение параметра

   call   draw_info

      no_pressbutton:

   jmp   Wait_Event

Redraw:
   invoke   Draw_StdWindow, x_coord*65536+y_coord,x_size*65536+y_size,"INI demo",00111b
   mov [WinID],eax
   invoke   Write_Text,15,0x16+10,1,4,"Пример чтения ini-файла",[WinID]
   invoke   Write_Text,15,0x16+10+16,1,4,"Секция: ",[WinID]
   invoke   Write_Text,15,0x16+10+16*2,1,4,"Параметр:   ",[WinID]
   invoke   Write_Text,15,0x16+10+16*3,1,4,"Значение:   ",[WinID]

   invoke   Write_Text,15+100,0x16+10+16,0x0000FF,4,ini_section,[WinID]
   invoke   Write_Text,15+100,0x16+10+16*2,0x0000FF,4,ini_param,[WinID]
   invoke   Create_StdButton, 10*65536+100,50*65536+20,"Читать",1,10b
;        call draw_info
   ret

draw_info:
   invoke   Begin_xDraw, [WinID]
   invoke   Write_Text,15+100,0x16+10+16*3,0x0000FF,4,ini_value,[WinID]
   call   [End_of_redraw]
   ret

data import
;
; Import functions:
;

  library mx32,'mx32.dll'

  import mx32,\
    WaitMessage,'WaitMessage',\
    Write_Text,'Write_Text',\
    Draw_StdWindow,'Draw_StdWindow',\
    StdHandler,'StdHandler',\
    End_of_redraw,'End_of_redraw',\
    Begin_xDraw,'Begin_xDraw',\
    ReadIniFile,'ReadIniFile',\
    Create_StdButton,'Create_StdButton'
end data

section '.data' data readable writeable
WinID  dd 0

ini_file_name:
db 'test.ini',0

ini_section:
db 'MYTESTSECTION'
;rb 255
db 0
ini_param:
db 'MYTESTPARAMETER'
;rb 255
db 0
ini_value:
rb 255
db 0

ini_buff:


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



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

СообщениеДобавлено: Вт Фев 27, 2007 6:31 am    Заголовок сообщения: WaitMessage - Ожидать сообщение Ответить с цитатой

WaitMessage - Ожидать сообщение
------------------------------------------

Вызов:
call [WaitMessage]

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

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

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



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

СообщениеДобавлено: Вт Фев 27, 2007 6:33 am    Заголовок сообщения: Ответить с цитатой

msgbox - Вывести сообщение на экран
---------------------------------------------

Вызов:
invoke msgbox,MessageText,TitleText

Параметры:
MessageText - Текст сообщения
TitleText - Заголовок сообщения

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

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

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

phpBB "skin" by DewChugr


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