怎么把一个(已装入资源中)EXE文件直接释放到内存而非磁盘,然后由VB调用(如Shell函数)

如何把一个(已装入资源中)EXE文件直接释放到内存而非磁盘,然后由VB调用(如Shell函数)
并非要做坏事,而是想“封装”Keil C51的编译环境,给客户一个由我定值的项目编译界面。
------解决思路----------------------
通常会被当作病毒报警的...........
------解决思路----------------------
在内存中释放exe是很危险的。看看shell有语法,只能调用外部程序文件,而非字节数组:
 
Shell 函数
      

执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。

语法

Shell(pathname[,windowstyle])

Shell 函数的语法含有下面这些命名参数:

部分 描述 
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。 
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。 


windowstyle 命名参数有以下这些值:

常量 值 描述 
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。 
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。 
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。 
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。 
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。 
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。 


说明

如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。

注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。

------解决思路----------------------
不可能。
每个独立程序有自己的线程。
你“直接释放到内存”仅仅是当前线程的内存,哪来供exe运行的线程?
------解决思路----------------------
Shell函数办不到,需要用CreateRemoteThread执行,不过实现过程很复杂,不是VB能做的。
------解决思路----------------------
可以插入其他进程中,让其他进程执行。(自身运行就没必要什么搞什么释放了,直接运行代码就OK)
------解决思路----------------------
使用第三方编辑环境挺时尚的,不用偷偷摸摸的放内存里。
------解决思路----------------------
那请问你这个程序未启动的时候, 这个文件是保存在哪里的?
------解决思路----------------------
感觉是楼主的项目架构设计有问题
------解决思路----------------------
使用RamDisk即可。
------解决思路----------------------
楼主的要求是可以用vb实现的,不过需要一个“壳程序”。这个VB代码我见过,但是不知道现在还找不找得到。并且,这样做有很大的报毒风险,且不稳定。