在资源文件中有一个exe文件,如aa.exe,当我的程序运行时,想让这个aa.exe根据指定的位置显示
在我的程序窗体上最好不释放出来这个aa.exe,直接加载运行显示在我的窗体上面请问有什么办法吗?

解决方案 »

  1.   

    我记得有个源码
    以前看到过
    把别的EXE运行在自己的窗体里。LZ研究下SetWindowPos这个API
      

  2.   

    先搞清进程和模块的差别吧,你要是加载dll的话还勉强可以。新创建进程还想不创建文件,除非你能访问系统内核
    而能切换到内核态也就是ring0级别的,运行在ring3态的程序是不无法自已实现的
      

  3.   

    不可能实现的话,就释放出来吧
    释放出来,用winexec调用或其它方法,如何把它弄到自己的程序窗口显示?
    谁给个例子?
      

  4.   

    你很会说话。我现在收入尚可。你当然跟我是一个城市,让你吃饭只是看下你的态度而已。
    既然你不愿意而选择第一种,那我就信守承诺给你写出来吧,其实也很简单:
    procedure TForm1.Button1Click(Sender: TObject);
    var h:HWND;
    begin
      WinExec('calc',1);
      sleep(2000);//这里可以动态分配时间,因为配置的原因,有些机器启动exe的速度不一样。
      h:=FindWindow(0,'计算器');
      windows.SetParent(h,handle);
    end;
      

  5.   

    资源释放的代码自己写,释放后执行就可以了。把WinExec('calc',1); 这句改为执行你释放的那个exe
      

  6.   

    定位用MoveWindow函数,或者用SetWindowPos。这两个API我只是在北京工作过,并不代表我在北京,我在哪你不用管,我只要你承诺。