天天加油 - 助您成才
汇编中的管道操作方法(三)
您正在看的汇编语言是:汇编中的管道操作方法(三)。

    invoke PeekNamedPipe,hRead2,addr szBuffer,511,addr @dwBytesRead,NULL,NULL
    .if @dwBytesRead != 0
     invoke RtlZeroMemory,addr szBuffer,512
     invoke ReadFile,hRead2,addr szBuffer,@dwBytesRead,\
      addr @dwBytesRead,NULL
     mov @stRange.cpMin,-1
     mov @stRange.cpMax,-1
     invoke SendMessage,hWinText,EM_EXSETSEL,0,addr @stRange
     invoke SendMessage,hWinText,EM_REPLACESEL,FALSE,addr szBuffer
     invoke SendMessage,hWinText,EM_SCROLLCARET,NULL,NULL
     invoke SendMessage,hWinText,WM_SETFONT,hFont,0
    .endif
   .endw
   invoke CloseHandle,stProcInfo.hProcess
   invoke CloseHandle,stProcInfo.hThread
  .else
   invoke MessageBox,hWinMain,addr szExcuteError,NULL,MB_OK or MB_ICONERROR
  .endif
;********************************************************************
; 关闭管道
;********************************************************************
  invoke CloseHandle,hRead1
  invoke CloseHandle,hWrite1
  invoke CloseHandle,hRead2
  invoke CloseHandle,hWrite2
;********************************************************************
; 把“结束”菜单改为“执行”
;********************************************************************
  invoke EnableMenuItem,hMenu,IDM_EXEC,MF_ENABLED
  invoke EnableMenuItem,hMenu,IDM_EXIT,MF_ENABLED
  invoke EnableWindow,hWinText,FALSE
  and dwFlag,not F_RUNNING
  ret

_RunThread endp

;********************************************************************
; 窗口程序
;********************************************************************
WndMainProc proc uses ebx edi esi, \
  hWnd:DWORD,wMsg:DWORD,wParam:DWORD,lParam:Dword

  mov eax,wMsg
;********************************************************************
  .if eax == WM_CREATE
   mov eax,hWnd
   mov hWinMain,eax
   call _Init
;********************************************************************
  .elseif eax == WM_SIZE
   mov edx,lParam
   mov ecx,edx
   shr ecx,16
   and edx,0ffffh
   invoke MoveWindow,hWinText,0,0,edx,ecx,TRUE
   invoke PostMessage,hWinText,WM_SIZE,wParam,lParam
;********************************************************************
  .elseif eax == WM_CLOSE
   test dwFlag,F_RUNNING
   .if ZERO?
    invoke DestroyWindow,hWinMain
    invoke PostQuitMessage,NULL
   .endif
;********************************************************************
  .elseif eax == WM_COMMAND
   mov eax,wParam
   .if ax == IDM_EXEC
;********************************************************************
; 如果没有在执行中(dwFlag 没有置位) 则建立线程,在线程中执行程序
; 如果已经在执行中,则用 TerminateProcess 终止执行
;********************************************************************
    test dwFlag,F_RUNNING

1 2 3 下一页

排行

  1. VC防止窗口和控件闪烁的方法
  2. 基于Winsock API的VC网络编程实战
  3. 用VC实现动态改变Windows的显示特
  4. VC中利用MFC设计绘图程序初步
  5. Delphi存取图像完整解决方案
  6. 听说过WinZip软件也可以“杀毒”
  7. 利用Delphi开发旅游景点微机售票
  8. 在DBGrid组件中显示和编辑MEMO字
  9. 配置Oracle Enterprise Manager过
  10. Oracle与MSSQL过程之间的转化
  11. Oracle字符集子集与超级的对应关
  12. Oracle触发器详细介绍
  13. 设置Linux的服务自动启动Oracle服
  14. 学习java的一些好的书籍介绍
  15. 怎样用Java实现MSN Messager的功
  16. 用java完全控制图形显示
  1. VC防止窗口和控件闪烁的方法
  2. 基于Winsock API的VC网络编程实战
  3. 用VC实现动态改变Windows的显示特
  4. VC中利用MFC设计绘图程序初步
  5. Delphi存取图像完整解决方案
  6. vb的属性、方法和事件(二)
  7. vb的属性、方法和事件(一)
  8. vb控件的使用
  9. vb的控件数据
  10. vb控件简介
  11. vb程序设计
  12. vb的工具栏、对话框
  13. vb菜单在应用程序中的使用
  14. vb的用户界面
  15. vb对象的使用
  16. vb的datagrid控件的使用
  1. VB的程序加密方法
  2. FlexGrid控件的使用
  3. vb的CommonDialog控件的使用
  4. vb的FlexGrid控件
  5. vb的按钮控件
  6. Delphi存取图像完整解决方案
  7. VC防止窗口和控件闪烁的方法
  8. 基于Winsock API的VC网络编程实战
  9. 用VC实现动态改变Windows的显示特
  10. VC中利用MFC设计绘图程序初步
  11. 听说过WinZip软件也可以“杀毒”
  12. 利用Delphi开发旅游景点微机售票
  13. 在DBGrid组件中显示和编辑MEMO字
  14. 学好VC++的十大良好习惯
  15. DELPHI数据库应用程序的开发环境
  16. 汇编DEBUG全过程跟踪

最近更新

  • 推荐阅读
  • 汇编语言《汇编中的管道操作方法(三)》汇编中的管道操作方法(三)
    关于我们 | 版权申明 | 广告服务 | 友情链接 | 网站地图 | 使用帮助 | ©2006-2008 TTADD.COM