怎样在一个程序运行时,自动运行另一个可执行程序?(200分)

L

liuyang

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位高手:<br>&nbsp; &nbsp;我想在自己的程序里加上另一个可执行文件,在我的程序运行的时候,自动运行这个<br>可执行文件。不知怎么实现?
 
winexec(YourFileName);<br>就是如此简单!
 
他说的不是这个意思,再说WinExec要这样用呀!<br>WinExec(PChar(ExeName), SW_MAXIMIZE);<br><br>把那个文件编译成资源文件,运行的时候用TResourceStream的SaveToFile存成文件,<br>然后用WinExec或ShellExecute运行就完了。
 
对,用SHELLEXECUTE最好,什么类型的文件都可以打开(只要在系统里注册了的),<br>比WINEXEC好多了!
 
可以这样:<br>&nbsp; 把要附加的程序用DOS COPY 附加到你的外壳程序的尾部:<br>&nbsp; &nbsp; COPY /B MYSHELL.EXE+C:/WINNT/NOTEPAD.EXE<br><br>&nbsp; 下面的函数ExtractAppendExe从MYSHELL.EXE中拷贝出NOTEPAD.EXE存为C:/MYTEMP.EXE,<br>需要运行时执行<br>&nbsp; &nbsp; WinExec(PChar(ExtractAppendExe), SW_SHOW);<br>即可。<br><br>function ExtractAppendExe:string;<br>const<br>&nbsp; StartPos=60928;//这是编译出来的EXE的实际尺寸,先随便写一个数字,编译一次,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//查看EXE,获得实际尺寸填到这里,再编译一次即可 <br>&nbsp; TempExeFileName='C:/MYTEMP.EXE';<br>//实际应用时,这些参数是通过配置信息获得,这里简化了<br>var<br>&nbsp; ExeS,TempS:TFileStream;<br>begin<br>&nbsp; Result:='';<br>&nbsp; ExeS:=TFileStream.Create(ParamStr(0),FModeForRead);<br>&nbsp; try<br>&nbsp; &nbsp; TempS:=TFileStream.Create(TempExeFileName,fmCreate);<br>&nbsp; &nbsp; try<br>&nbsp; &nbsp; &nbsp; ExeS.Position:=StartPos;<br>&nbsp; &nbsp; &nbsp; TempS.CopyFrom(ExeS,ExeS.Size-StartPos);<br>&nbsp; &nbsp; &nbsp; Result:=TempExeFileName;<br>&nbsp; &nbsp; finally<br>&nbsp; &nbsp; &nbsp; TempS.Free;<br>&nbsp; &nbsp; end;<br>&nbsp; finally<br>&nbsp; &nbsp; ExeS.Free;<br>&nbsp; end;<br>end;<br><br>
 
我真马虎。没有说清楚。我是想把另一个程序隐藏嵌入在我加得程序里。我得程序一运行,<br>他就隐藏得运行。比如我要嵌入一个木马得server端得程序。<br>不知道你们得可以办到嘛?<br>特别感谢龙舟大侠得热情帮助。还有另两位高手。谢谢拉。
 
网络上有一个这样的程序叫exebind可将两个程序捆绑运行,查一下吧,如果不行的话我给你<br>寄一个!
 
你是说类似于一个隐藏的服务或没有窗口的服务程序的方式吗.<br>或者更具体地说<br>就象没有窗体的DCOM服务器<br>
 
Faint!!!<br>原来是干这个!!!
 
“exebind可将两个程序捆绑运行”这样的功能是怎么实现的呢?有Delphi的代码吗?
 
我问你的话, 你好象根本理都不理嘛.<br>你是说类似于一个隐藏的服务或没有窗口的服务程序的方式吗.<br>或者更具体地说<br>就象没有窗体的DCOM服务器<br><br>
 
实际上,居我了解,exebind只是将两个exe文件写到一个里<br>运行时释放到temp目录再运行
 
only you :你好<br>那个程序我用了。可是和起来后图标变成dos 的图标了。能改回来吗?<br>&nbsp; &nbsp;<br>笑傲江湖 :你好<br>很抱歉,我对dcom 不是很熟,你的意思是指想b/s里的应用服务器吗?<br>好象不是那样。我的意思其实 很简单。我是想把另一个程序隐藏嵌入在我加得程序里。<br>我得程序一运行,他就隐藏得运行。比如我要嵌入一个木马得server端得程序。<br><br>
 
only you :你好<br>那个程序我用了。可是和起来后图标变成dos 的图标了。能改回来吗?<br>&nbsp; &nbsp;<br>笑傲江湖 :你好<br>很抱歉,我对dcom 不是很熟,你的意思是指想b/s里的应用服务器吗?<br>好象不是那样。我的意思其实 很简单。我是想把另一个程序隐藏嵌入在我加得程序里。<br>我得程序一运行,他就隐藏得运行。比如我要嵌入一个木马得server端得程序。<br><br><br>
 
你的意思是指想b/s里的应用服务器吗?<br>----首先纠正一个概念<br>&nbsp; &nbsp; 不要一想到DCOM/COM服务器就想到什么B/S,三阶层之类的东西<br>&nbsp; &nbsp; 不搭嘎:)
 
like unreal<br>把那个SERVER文件编译成资源文件,运行的时候用TResourceStream的SaveToFile存成文件,<br>然后用WinExec或ShellExecute运行就完了<br><br>你的SERVER程序可以作成,在状态蓝,任务列表,等地方都不显示,再最小化<br>不就找布道了吗?<br> 
 
我看delphifaq的方案可以实行
 
多人接受答案了。
 
顶部