打开一样可以用winexec();
关闭就用handle吧!

解决方案 »

  1.   

    1.启动
    var
       wnd:HWND; 
    begin
       wnd:=ShellExecute(self.handle, 'Open', 'D:\游戏\AgeIICON\empire2.exe',
    nil, nil, SW_SHOWNORMAL);
      if wnd<32 then
         showmessage'error ,failure to run');
    2。关闭
        SendMessage(wnd,WM_Close);//把1中的wnd定义为全局变量
      

  2.   

    楼上的对dos下关闭好像有点问题
    我的方法是
    先找到dos窗口句柄(command窗口)
    然后发送wm_close
    一般它会弹出是否强制关闭的提示
    发送消息wm_enter
      

  3.   

    winexec可以
    关闭就发消息,用sendmessage
      

  4.   

    我按照yang6130(月明@沧海) 的方法做,关闭不了。打开的结果是长时间的黑屏后出现“已完成”的DOS窗口,其错误提示如下:
    Shutting down Allegro
    Exiting due to signal SIGFPE
    Division by Zero at eip=00013077
    eax=00000000  ebx=000e30c0  pcx=00000000  dex=00000000   esi=000e2e7c  edi=000a2fd8
    ebp=000e2d58  esp=000e2d48   program=C:\mydocu~1\GAME\SNOOD\SNOOD.EXE
    cs:  sel=00af    base=83c2c000   limit=fff47fff
    ds:  sel=00b7   base=83c2c000   limit=fff47fff
    es:  sel=00b7   base=83c2c000   limit=fff47fff
    fs:   sel=00c7   base=00000000  limit=ffffffff
    gs:  sel=00c7   base=00000000  limit=ffffffff
    ss:   sel=00b7   base=83c2c000   limit=fff47fffCall  frame  traceback  EIPs:
         0×00013077
         0×000048ad
         0×00004532
         0×00010e29
         0×0005f416
      

  5.   

    麻烦哪位高手回答我吧。
    其实我所说的“泡泡龙”是名为"snood.exe"的游戏。
      

  6.   

    2.procedure TForm1.Button1Click(Sender: TObject);
    var
     hCurrentWindow: HWnd;
     szText: array[0..254] of char;
    begin
     hCurrentWindow := GetWindow(GetDesktopWindow, GW_Child);
     while hCurrentWindow <> 0 do
     begin
     if GetWindowText(hCurrentWindow, @szText[0], 255)>0 then
      Memo1.Lines.Add(StrPas(@szText));
      if pos('MS-DOS',szText)>0 then//MS-DOS程序
    SendMessage(hCurrentWindow,WM_close,0,0);//关闭
     hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT);
     end;
    end;