Download Pelles C here: http://www.smorgasbordet.com/pellesc/
include EnumWnd.inc
.data
f1 db '%s',13,10,0
ZeroVal dd 0
ZeroPtr dd OFFSET ZeroVal
.data?
hStdOut dd ?
buffer db 128 dup(?)
buffer2 db 128 dup(?)
.code
start:
invoke GetStdHandle, STD_OUTPUT_HANDLE
mov hStdOut,eax
invoke EnumWindows,ADDR EnumWndProc,0
invoke ExitProcess,0
EnumWndProc PROC USES ebx hwnd:DWORD,lParam:DWORD
mov ebx,OFFSET buffer2
invoke GetWindowText,hwnd,ADDR buffer,64
invoke wsprintf,ebx,ADDR f1,ADDR buffer
cmp eax,2
cmovz ebx,DWORD PTR [ZeroPtr]
invoke WriteFile,hStdOut,ebx,eax,0,0
mov eax,1
ret
EnumWndProc ENDP
END start
D:\PellesC\ConsoleTest>ConsoleTest.exe
hConWnd 00000000000708E8h
CTitle: Administrator: C:\Windows\System32\cmd.exe - ConsoleTest.exe
WTitle:
hWnd 0000000000010174h
WndProc 0000000000000000h
WndProc 0000000000000000h
include EnumWnd.inc
includelib user32.lib
STD_OUTPUT_HANDLE equ -11
GetStdHandle PROTO :DWORD
WriteFile PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
.data
f1 db '%s',13,10,0
.data?
hStdOut dd ?
buffer db 128 dup(?)
buffer2 db 128 dup(?)
.code
start:
invoke GetStdHandle, STD_OUTPUT_HANDLE
mov hStdOut, eax
invoke EnumWindows,ADDR EnumWndProc,0
invoke ExitProcess,0
EnumWndProc PROC hwnd:DWORD,lParam:DWORD
invoke GetWindowText,hwnd,ADDR buffer,64
invoke wsprintf,ADDR buffer2,ADDR f1,ADDR buffer
cmp eax,2
je @f
invoke WriteFile, hStdOut, ADDR buffer2, eax, 0, 0
@@:
mov eax,1
ret
EnumWndProc ENDP
END start
Page created in 0.063 seconds with 15 queries.