Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2011, 20:30   #1
alex1808
Новичок
Джуниор
 
Регистрация: 24.10.2008
Сообщений: 2
Восклицание Доработать код

Ребята у меня тут проблемка. Прога должна выводить модули процессов. Я здесь написал кое-что, разберитесь кому не лень

Код:
.386
.model flat,stdcall
option casemap:none
include c:\masm32\include\windows.inc
include c:\masm32\include\kernel32.inc
include c:\masm32\include\user32.inc
include c:\masm32\include\masm32.inc
includelib c:\masm32\lib\kernel32.lib
includelib c:\masm32\lib\user32.lib
includelib c:\masm32\lib\masm32.lib

.data
Caption_s 	db 	"Module",0
Snapshot	dword	?
Text_s		db	1024 dup (?)
PID_s		db	25 dup (?)
PID_f		db	"%u ",0
CRLF_s		db	13,10,0
lstPTR		dword	offset Text_s



ModEntry MODULEENTRY32 <sizeof(MODULEENTRY32)>

.code
wrtdown_str 	proc
	mov	ebp, [lstPTR] 	; Remember the last position

@@c:	mov	al, [edx]	; Take a letter from [edx]
	mov	[ebp], al	; write the letter to [ebp]
	or	al, al		; compare the letter with zero
	jz	@@end		; if it is zero then it is end of line
	inc	ebp		; else increase ebp and edx
	inc	edx
	jmp	@@c		; loops to @@c

@@end:	mov	[lstPTR], ebp	; Store the last position
	ret
wrtdown_str	endp

start:

	invoke CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS, NULL
	; now eax contains the snapshot handle
	mov	[Snapshot], eax
	invoke Module32First, eax, addr ModEntry
	; now the ProcEntry contains information about the first process

@@a:	invoke	wsprintf, addr PID_s, addr PID_f, ModEntry.th32ProcessID
	mov	edx, offset PID_s
	call	wrtdown_str
	mov	edx, offset ModEntry.szModule
	call	wrtdown_str
	mov	edx, offset CRLF_s
	call	wrtdown_str
	mov	eax, [Snapshot]
	invoke Module32Next, eax, addr ModEntry
	cmp	eax, FALSE
	jne	@@a
	
	mov	eax, [Snapshot]
	invoke CloseHandle, eax ; closes the snapshot handle
	invoke MessageBox, 0, addr Text_s, addr Caption_s, MB_OK
	invoke StdOut, addr Text_s
	; prints the process list in message box
	invoke ExitProcess, 0 ; exits the program
end start
alex1808 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доработать код программы. С++ andygarcia86 Помощь студентам 0 14.11.2011 20:32
доработать готовый код с++ pametol Фриланс 3 02.07.2011 09:50
Доработать код ferrum88 Помощь студентам 0 23.11.2010 20:14
Доработать код Микки Microsoft Office Excel 7 31.03.2009 13:12