我编了一程序,批量生成自解压的安装文件,用shell启动winrar后无法控制时序!!
是用WaitForInputIdle控制吗??
已知进程名(如winrar),如何获得进程句柄?? 如何等待指定进程结束后,再运行下面程序??
是用WaitForInputIdle控制吗??
已知进程名(如winrar),如何获得进程句柄?? 如何等待指定进程结束后,再运行下面程序??
解决方案 »
- 请教:查找进程中的句柄与用findwindow查找的结果不一致的原因
- grid的問題
- COM组件如何改名字
- 简单问题:ADOQuery查询到数据后怎么样才能把值复制出来?
- 判断网络是否连接问题
- 有没有函数:输入年和月,输出这月的最后一天的日数?是31号还是30,还是28,29?
- 一个关于GetTextBuf的问题?
- delphi 字符串加密问题,大牛们帮帮忙!!!!
- 三层架构中怎样处理数据同步?我每到一个公司面试都会问这个问题,怎么回答!?
- 一个程序有三个窗体,一为主窗体。我在二中调用三。现在我想在三中关闭二应该怎么办?
- 求求大家了,要是再找不出原因,老板就要吵了我啊,,,,谢谢各位大虾
- Midas Socket服务端源码试用或出售
var
hwd,hProcess : THandle;
PID,Code : DWORD;
begin
hwd :=FindWindow('WinRarWindow',0);
if hwd>0 then
hwd := GetWindowThreadProcessId(hwd,@PID); hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, PID); if hProcess>0 then
begin
waitforsingleobject(hProcess,INFINITE);
GetExitCodeProcess(hProcess,Code);
end;
if Code=0 then
ShowMessage('WinRAR结束了');
end;
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;
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;
感觉这个象以前我贴的:)