一 .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已经执行完毕?否则会还在执行备份或还原操作时程序却提示操作已经完成.....
谢谢各位
二. 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已经执行完毕?否则会还在执行备份或还原操作时程序却提示操作已经完成.....
谢谢各位
解决方案 »
- 大大救命!!多线程通信中listview的数据老是被修改,如何解决呢?
- 一个关于adoquery和mysql的很奇怪的问题,能解决者百分相赠
- 如何开通windows ftp服务?
- 如何取得Windows系统的当前正在使用的用户的用户名
- [一般难度]这样的句子怎么写?
- ##高手过招## 打开数据库中存的文件(字段image 型),能不能有简单的方法?谢谢指教!
- 请教一个关于对象的问题
- DLL的瘦身办法?
- 我是delphi初学者,按照书本上说得却走不下去了,请各位高手指点迷津,急急急急急急急急急急急!!!!!!!!!!!
- 请问如何直接打印用query查询出来显示在dbgrid的数据?
- 绘制贝塞尔曲线。如何保证顶点数为3*n+1(n >0) ?不理解
- 要实现这样一功能 有一DBgrid,这时修改了数据库中某一记录的值,要求同步刷新出来,但没这么简单,进来细说
if OpenDialog.Execute then
begin
//打开文件
end;if SaveDialog.Execute then
begin
//保存文件
end;
.....
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;
可是第二个问题要怎么办??
CreateProcess(...)通过进程句柄等待该进程执行完毕
WaitForSingleObject(vProcessInfo.hProcess, INFINITE);
第二个参数表示等待的时间没啥好说的,自己查MSDN或搜吧
在Windows下编程不查MSDN咋成
vProcessInfo: TProcessInformation; //怎么在DELPHI中找不到这两个类?
vStartUpInfo: TStartupInfo;
FillChar(vStartUpInfo, SizeOf(vStartUpInfo), #0);
vStartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
vStartUpInfo.wShowWindow := SW_HIDE;