如何限制某一程序运行完毕之后在运行其它一个程序?(100分)

  • 主题发起人 主题发起人 比尔.丐痴
  • 开始时间 开始时间

比尔.丐痴

Unregistered / Unconfirmed
GUEST, unregistred user!
我有两个独立的安装程序需要依次暗安装,但必须在第一个程序安装完毕之后才能安装第二个程序,在DELPPHI中该任何写代码?
我的意思是做一个安装程序一次完成两个安装程序,而这两个安装程序是不同系统的独立打包,必须安装完第一个安装程序之后才能安装第二个安装程序,第一个安装程序过成中会要求计算机重新启动的。
 
第一个安装成功以后写一个标致,第二个安装的程序有个查找功能。
 
似乎InstallShield本身就提供这个函数。很久以前似乎用过。还能得到ExitCode呢。
自己做嘛,可以使用CreateProcess运行程序,然后使用WaitForSingleObject等待。
?怎么和刚才那个无主题目这么相似?
 
這是別人的代碼:作用是運行一個外部程序並等待它的完成!
Function WinExecExW(cmd,workdir:pchar;visiable:integer):DWORD;
var
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin

FillChar(StartupInfo,SizeOf(StartupInfo),#0);
StartupInfo.cb:=SizeOf(StartupInfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=visiable;
if not CreateProcess(nil,cmd,nil,nil,false,Create_new_console or Normal_priority_class,nil,nil,StartupInfo,ProcessInfo) then

result:=0
else

begin

waitforsingleobject(processinfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess,Result);
end;

end;
 
ymqpc的固然好,可是他中间是要重现启动的,那时候恐怕就有问题了吧
 
ymqpc的方法我试了,不行,当系统重新启动之后就不能接着运行了,InstallShield我也试过了,我曾经做些选项,但运行之后只是拷贝文件而已,并不能安装。
 
我的老兄你想一下,你写一个小程序:在注册表HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce下写上第二个安装程序,然后就运行第一个安装程序.这样在第一个安装程序重启后就会运行第二个安装程序了!(注明写在上面字键的程序Windows只会运行一次,运行后Windows就会自运删除它了).
不会说你不会写注册表了吧?
 
TO ymqpc:
写注册表倒是没有问题,我不是很明白在RunOnce健里写的写什么东西,只是写第二个安装长许的路径吗?那么键名又取什么呢?能否说清楚点。
 
你啊,你啊…键名是想写什么就写什么,字符串的内容是第二个安装程序的完整路径(如D:/jjyykk/deki.exe)!再有问题的话我把原代码给你写一遍得了.
 
YMQPC说得很清楚了。许多安装程序都是这样干的。
 
多人接受答案了。
 
后退
顶部