当然是要将其释放到WIDOWS的一个比如临时文件夹中再运行了。

解决方案 »

  1.   

    procedure ExtractRes(ResType, ResName, ResNewName : String);
    var 
    Res : TResourceStream; 
    begin
       Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
       Res.SavetoFile(ResNewName);//得到exe
       Res.Free; 
    end;
    再用winexec 来调用ResNewName
      

  2.   

    function GetTempFileName:String;
    var
     TempPath:array[0..MAX_PATH] of Char;
     TempFile:array[0..MAX_PATH] of char;
    begin
     GetTempPath(MAX_PATH,TempPath);
     GetTempFileName(TempPath,PChar('Sys'),0,TempFile);{here 'Sys'  can   be replaced with your own prehead}
     Result:=TempFile;
    end;
      

  3.   

     to kuangning:
    为什么我调用此过程说找不到资源名为某某
    我是这样建立资源文件的:
    1:在记事本里输入如下内容:
    exe1 exe preload fixed pure "C:\PWIN98SE\Desktop\lee.exe"
    然后保存为foo.rc
    再用d:\brcc32 C:\PWIN98SE\Desktop\foo.rc生成foo.res文件
    可是我调用extractres('exe','exe1','C:\PWIN98SE\Desktop\leebons.exe')时
    却提示‘resource exe1 not found’
    why?
      

  4.   

     to kuangning:
    你试过吗?
      

  5.   

    真是另类需求
    资源文件一般是来保存数据而不是代码的, exe读到内存里面操作系统会对它进行地址定位的,不是简单的将代码读入就可以运行的,所以你这个想法虽然不错,但没有捷径可以搞定你在执行程序中将该资源写如一个临时exe文件, 然后执行它, 然后删除它, 否则会很麻烦的
      

  6.   

    市上有DELPHI资源大全(2CD)35元,上面有两段例程。
      

  7.   

    在uses中加入shellapi
    在触发事件中加入shellexcu(application.handle,'可执行文件地址‘’‘’);便可以了
      

  8.   

     to xiangti:
          可执行文件地址怎么得到啊?
    能否详细说明一个,如果分数不够的话我还可以加分啊。
      

  9.   

    在uses中加入shellapi
    然后加入以下代码:
    shellexecute(handle,'open','打开的文件','','',sw_shownormal);