﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-.NETの場所-随笔分类-代码转载</title><link>http://www.cnitblog.com/tsorgy/category/5132.html</link><description>( ゜- ゜)つロ 乾杯~</description><language>zh-cn</language><lastBuildDate>Wed, 28 Sep 2011 11:38:45 GMT</lastBuildDate><pubDate>Wed, 28 Sep 2011 11:38:45 GMT</pubDate><ttl>60</ttl><item><title>一个win32汇编程序~~可以接受键盘消息并在窗口上打印出来按下的字符~~</title><link>http://www.cnitblog.com/tsorgy/archive/2008/06/01/44691.html</link><dc:creator>Tsanie</dc:creator><author>Tsanie</author><pubDate>Sun, 01 Jun 2008 00:32:00 GMT</pubDate><guid>http://www.cnitblog.com/tsorgy/archive/2008/06/01/44691.html</guid><wfw:comment>http://www.cnitblog.com/tsorgy/comments/44691.html</wfw:comment><comments>http://www.cnitblog.com/tsorgy/archive/2008/06/01/44691.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/tsorgy/comments/commentRss/44691.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tsorgy/services/trackbacks/44691.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New">; 导入文件和导入库文件下个masm32就有了<br>; 黑色珊瑚<br>; 2008-06-01<br><br>.386<br>.model flat,stdcall<br>option casemap:none<br>include&nbsp;&nbsp;windows.inc<br>include&nbsp;&nbsp;user32.inc<br>include&nbsp;&nbsp;kernel32.inc<br>include&nbsp;&nbsp;gdi32.inc<br>includelib&nbsp;user32.lib<br>includelib&nbsp;kernel32.lib<br>includelib&nbsp;gdi32.lib</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New">WinMain proto :DWORD, :DWORD, :DWORD, :DWORD<br>.data<br>&nbsp;ClassName&nbsp;db "SimpleWinClass",0<br>&nbsp;AppName&nbsp;&nbsp;db "The First Window",0<br>&nbsp;OurText&nbsp;&nbsp;db "欢迎来到 Win32 汇编!",0<br>&nbsp;char&nbsp;&nbsp;WPARAM 20h<br>.data?<br>&nbsp;hInstance&nbsp;HINSTANCE ?<br>&nbsp;CommandLine&nbsp;LPSTR ?<br>.code<br>start:<br>&nbsp;invoke GetModuleHandle,NULL<br>&nbsp;mov hInstance,eax<br>&nbsp;invoke GetCommandLine<br>&nbsp;mov CommandLine,eax<br>&nbsp;invoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT<br>&nbsp;invoke ExitProcess,eax<br>&nbsp;WinMain proc hInst:HINSTANCE, hPrevInst:HINSTANCE, CmdLine:LPSTR, CmdShow:DWORD<br>&nbsp;&nbsp;local&nbsp;wc:WNDCLASSEX<br>&nbsp;&nbsp;local&nbsp;msg:MSG<br>&nbsp;&nbsp;local&nbsp;hwnd:HWND<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.cbSize,sizeof WNDCLASSEX<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.style,CS_HREDRAW or CS_VREDRAW<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.lpfnWndProc,offset WndProc<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.cbClsExtra,NULL<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.cbWndExtra,NULL<br>&nbsp;&nbsp;push&nbsp;hInstance<br>&nbsp;&nbsp;pop&nbsp;&nbsp;wc.hInstance<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.hbrBackground,COLOR_WINDOW+1<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.lpszMenuName,NULL<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.lpszClassName,offset ClassName<br>&nbsp;&nbsp;invoke&nbsp;LoadIcon,NULL,IDI_APPLICATION<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.hIcon,eax<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.hIconSm,eax<br>&nbsp;&nbsp;invoke&nbsp;LoadCursor,NULL,IDC_ARROW<br>&nbsp;&nbsp;mov&nbsp;&nbsp;wc.hCursor,eax<br>&nbsp;&nbsp;invoke&nbsp;RegisterClassEx,addr wc<br>&nbsp;&nbsp;invoke&nbsp;CreateWindowEx,NULL,\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addr ClassName,\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addr AppName,\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WS_OVERLAPPEDWINDOW,\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100,\&nbsp;&nbsp;;x<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100,\&nbsp;&nbsp;;y<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;200,\&nbsp;&nbsp;;width<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;150,\&nbsp;&nbsp;;height<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hInst,\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL<br>&nbsp;&nbsp;mov&nbsp;&nbsp;hwnd,eax<br>&nbsp;&nbsp;invoke&nbsp;ShowWindow,hwnd,CmdShow<br>&nbsp;&nbsp;invoke&nbsp;UpdateWindow,hwnd<br>&nbsp;&nbsp;.while TRUE<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;GetMessage,addr msg,NULL,0,0<br>&nbsp;&nbsp;&nbsp;.break .if (!eax)<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;TranslateMessage,addr msg<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;DispatchMessage,addr msg<br>&nbsp;&nbsp;.endw<br>&nbsp;&nbsp;mov&nbsp;&nbsp;eax,msg.wParam<br>&nbsp;&nbsp;ret<br>&nbsp;WinMain endp<br>&nbsp;WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM<br>&nbsp;&nbsp;local&nbsp;hdc:HDC<br>&nbsp;&nbsp;local&nbsp;ps:PAINTSTRUCT<br>&nbsp;&nbsp;local&nbsp;rect:RECT<br>&nbsp;&nbsp;.if&nbsp;&nbsp;uMsg==WM_DESTROY<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;PostQuitMessage,NULL<br>&nbsp;&nbsp;.elseif&nbsp;uMsg==WM_PAINT<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;BeginPaint,hWnd,addr ps<br>&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;hdc,eax<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;TextOut,hdc,0,0,addr char,1<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;GetClientRect,hWnd,addr rect<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;DrawText,hdc,addr OurText,-1,addr rect,\<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DT_SINGLELINE or DT_CENTER or DT_VCENTER<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;EndPaint,hWnd,addr ps<br>&nbsp;&nbsp;.elseif&nbsp;uMsg==WM_CHAR<br>&nbsp;&nbsp;&nbsp;push&nbsp;wParam<br>&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;char<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;InvalidateRect,hWnd,NULL,TRUE<br>&nbsp;&nbsp;.else<br>&nbsp;&nbsp;&nbsp;invoke&nbsp;DefWindowProc,hWnd,uMsg,wParam,lParam<br>&nbsp;&nbsp;&nbsp;ret<br>&nbsp;&nbsp;.endif<br>&nbsp;&nbsp;xor&nbsp;&nbsp;eax,eax<br>&nbsp;&nbsp;ret<br>&nbsp;WndProc endp<br>end start<br></p>
<img src ="http://www.cnitblog.com/tsorgy/aggbug/44691.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tsorgy/" target="_blank">Tsanie</a> 2008-06-01 08:32 <a href="http://www.cnitblog.com/tsorgy/archive/2008/06/01/44691.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>