shell.asm

来自「工欲善其事」· 汇编 代码 · 共 42 行

ASM
42
字号
; #########################################################################

    .486                      ; create 32 bit code
    .model flat, stdcall      ; 32 bit memory model
    option casemap :none      ; case sensitive

    include \masm32\include\windows.inc
    include \masm32\include\kernel32.inc

    .code

; ########################################################################

shell proc lpfilename:DWORD

    LOCAL xc :DWORD         ; exit code

    .data
      st_info STARTUPINFO <0>
      pr_info PROCESS_INFORMATION <0>
    .code

    invoke CreateProcess,NULL,lpfilename,NULL,NULL,
                         NULL,NULL,NULL,NULL,
                         ADDR st_info,
                         ADDR pr_info

  ; -------------------------------------------
  ; loop while created process is still active
  ; -------------------------------------------
  @@:
    invoke GetExitCodeProcess,pr_info.hProcess,ADDR xc
    cmp xc, STILL_ACTIVE
    je @B

    ret

shell endp

; ########################################################################

    end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?