 |
Kreoton Kreoton Development Group
|
|


|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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 - Атрибуты кнопки
Возвращаемое значение:
нет |
|
Вернуться к началу |
|
 |
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 - Идентификатор окна
Возвращаемое значение:
нет |
|
Вернуться к началу |
|
 |
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
|
|
|
Вернуться к началу |
|
 |
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-диске
Пример:
|
|
Вернуться к началу |
|
 |
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 ; Размер структуры
}
|
|
|
Вернуться к началу |
|
 |
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:
|
Скриншот:
 |
|
Вернуться к началу |
|
 |
mistifi(ator
Зарегистрирован: 20.03.2006 Сообщения: 26 Откуда: Uzbekistan, Tashkent
|
Добавлено: Вт Фев 27, 2007 6:31 am Заголовок сообщения: WaitMessage - Ожидать сообщение |
|
|
WaitMessage - Ожидать сообщение
------------------------------------------
Вызов:
call [WaitMessage]
Параметры:
нет
Возвращаемое значение:
EDI - PID отправителя
EBX,ESI,EBP - сообщение и параметры сообщения
Примечание:
Эта функция аналогична функции ReceiveMessage |
|
Вернуться к началу |
|
 |
mistifi(ator
Зарегистрирован: 20.03.2006 Сообщения: 26 Откуда: Uzbekistan, Tashkent
|
Добавлено: Вт Фев 27, 2007 6:33 am Заголовок сообщения: |
|
|
msgbox - Вывести сообщение на экран
---------------------------------------------
Вызов:
invoke msgbox,MessageText,TitleText
Параметры:
MessageText - Текст сообщения
TitleText - Заголовок сообщения
Возвращаемое значение:
нет
Примечание:
Если TitleText опустить, то заголовком сообщения будет "message". |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|