问两个简单的问题........
一 .OpenDialog 和 SaveDialog 如果在打开和保存时单击的是取消按钮...要如何让程序放弃以后的所有操作?好像可以用异常可不会写....
二. ShellExecute(Handle, nil,PChar(ChangeFileExt(TextFilePath, '.bat ')), nil, nil, SW_SHOW);
sleep(5000); //若不延时则无法进行备份
deletefile(ChangeFileExt(TextFilePath, '.bat '));
Application.MessageBox( '操作成功 ', '系统提示 ',MB_OK+MB_ICONINFORMATION);
这边是调用一个BAT文件执行InterBase 数据库的备份和还原的操作..由于数据库大小不一致,在执行CMD命令时需要的时间不确定,要怎么判断CMD已经执行完毕?否则会还在执行备份或还原操作时程序却提示操作已经完成.....
谢谢各位
[解决办法]
OpenDialog或SaveDialog的Execute方法会返回一个Boolean值, 这个值是False表示按了取消按钮
[解决办法]
1)SaveDialog1.Execute 函数有返回值的,True就执行,你可以判断
if SaveDialog1.Execute then
.....
[解决办法]
1、if not OpenDialog1.Execute then Exit;
2、
var
vProcessInfo: TProcessInformation;
vStartUpInfo: TStartupInfo;
begin
FillChar(vStartUpInfo, SizeOf(vStartUpInfo), #0);
vStartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
vStartUpInfo.wShowWindow := SW_HIDE;
if CreateProcess(nil, PChar(ChangeFileExt(TextFilePath, '.bat ')), nil, nil,
False, IDLE_PRIORITY_CLASS, nil, nil, vStartUpInfo,
vProcessInfo) then
begin
WaitForSingleObject(vProcessInfo.hProcess, INFINITE);
CloseHandle(vProcessInfo.hThread);
CloseHandle(vProcessInfo.hProcess);
end;
end;