批处理中激活另一窗口

wangxlyy 2008-10-07 04:04:51
我用delphi6编译了一个工具,工具中生成一批处理文件。
在调用winexec后,批处理文件的执行和这个工具是异步的,如何才能同步。
我如何才能在批处理文件开始执行时,让工具Enable:=False,而在批处理执行结束后工具Enable:=True
望大家不吝赐教,谢谢!
...全文
380 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxlyy 2008-10-07
  • 打赏
  • 举报
回复
OK,问题解决了。
使用createprocess和waitforsingle
wangxlyy 2008-10-07
  • 打赏
  • 举报
回复
工具中等待总会浪费时间,有没办法批处理去激活工具呢?
wangxlyy 2008-10-07
  • 打赏
  • 举报
回复
但是DOS批处理中执行的时间并不能确定
在选取判断的时间上可能要讲究
如果用你说的判断方法取最长时间 有可能导致工具短时间的Sleep
寻梦928 2008-10-07
  • 打赏
  • 举报
回复
没明白!帮下!!
  • 打赏
  • 举报
回复
楼上的,人家是批处理文件,你那些没有用。

可以判断DOS窗口是否存在。
yuqianyi1974 2008-10-07
  • 打赏
  • 举报
回复
用shellapi函数和WaitForSingleObject

你可以查看delphi自带的windows sdk或者msdn
yuqianyi1974 2008-10-07
  • 打赏
  • 举报
回复
DWORD WaitForSingleObject(
HANDLE hHandle, // handle of object to wait for
DWORD dwMilliseconds // time-out interval in milliseconds
);
一、操作环境 制作64位合集,现有使用系统应是WIN8.1 X64(不需要安装ADK)。如果是WIN8 X64或WIN7 X64也可以,但必须安装ADK的部署工具,批处理文件(.cmd)放在ADK安装目录的DISM文件夹,如:C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\amd64\DISM,这个目录下执行。 选择一个有30G以上空闲空间的分区作为工作分区,如,E分区,NTFS格式。 二、准备工作 以下路径不能错,否则批处理将失败。 1、下载附件,提取$OEM$-X64文件夹(32位与64位的有区别)到工作分区根目录。 2、在工作分区根目录新建一个叫做My-win8.1-X64的文件夹,将从MSDN下载的64位专业版(注:不要使用VL版的)ISO文件的全部内容提取到My-win8.1-X64目录内。 这两个是专业版VL版的,本批处理不支持。 cn_windows_8_1_pro_vl_x64_dvd_2971907.iso cn_windows_8_1_pro_vl_x86_dvd_2972620.iso 需要采用下面这两个专业版的ISO文件: cn_windows_8_1_x64_dvd_2707237.iso ------------用于制作64位的合集 cn_windows_8_1_x86_dvd_2707405.iso ------------用于制作32位的合集 3、将My-win8.1-X64\sources的install.wim移动到工作分区根目录,并改名为PRO-X64.WIM。 4、将从MSDN下载的64位企业版ISO文件的SOURCES目录内的install.wim提取工作分区根目录,并改名为ENT-X64.WIM。 工作分区根目录下必须有以下两个文件夹和两个WIM文件: $OEM$-X64 ---文件夹 My-win8.1-X64 ---文件夹 PRO-X64.WIM ---WIM文件 ENT-X64.WIM ---WIM文件 三、执行批处理 以管理员身份执行制作批处理,一站式打包制作生成Win8.1_X64_Nin1_kms.iso。 批处理执行前,最好是关闭所有浏览器窗口和其他运行软件。批处理执行期间,请不要打开工作分区一些临时产生的目录与相应的文件,或运行运行软件。 当然,如果是以内置管理员身份运行批处理那就更好了。在已经安装的系统,如何开启用内置管理员(Administrator)? WIN+X键----计算机管理----系统工具----本地用户和组---用户----双击Administrator----将“帐户已禁用”的勾去掉,注销当前用户,就可以登录内置管理员帐户了。 四、其他说明 1:制作后工作分区TEMPWIM内是临时WIM文件,自己决定要不要删除。 2:不做32位与64位的合集,因为这样将导致原生支持64位UEFI启动的功能丧失,分开制作更好。 3:内置管理员版本可以实现一站式无人值守安装,间无需人工干预,该用户管理权限也大,不过在应用上有限制。所以,使用此版本,安装后进入桌面,可以再建立一个普通管理员帐户,双用户使用比较理想。 方法:WIN+X键----计算机管理----系统工具----本地用户和组---用户--(右键,新用户)---双击新用户名--隶属于--添加--高级--立即查找---选Administrators(组)--确定---注销当前用户就可以使用新用户名登录了。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧