我是很菜的了,希望大家帮忙,最好有个例子
想要达到的效果是,用winexec调用一个16位程序的过程中,原窗口处于disable状态,待所调用的16位程序结束后,该窗口又变为enable的了,不知如何实现,请大家不吝多多指点
想要达到的效果是,用winexec调用一个16位程序的过程中,原窗口处于disable状态,待所调用的16位程序结束后,该窗口又变为enable的了,不知如何实现,请大家不吝多多指点
解决方案 »
- Delphi数据处理的问题
- ParamByName和FileByName有什么不同?ParamByName怎么用?
- 关于数据库(ADO)操作的问题,请大家帮帮忙
- 请教:三维图问题
- 找了很久很久的一个新手学习Midas,WebService,Soap的问题,别见笑
- 关于数码相机的问题
- 三层,scktsrvr,集成到服务器
- 有关ADO赋值
- 綱絡主控站死了,我欲哭----無淚!
- 请教如何改变屏幕分辨率?谢谢
- 关于窗口的一个小问题
- 简单问题:怎么读取这样的数据:ADOQuery1.LockType:=ltBatchOptimistic,DBGrid1与ADOQuery1连接.在DBgrid1中写了多行数据,在保存前读取所
function WinExecAndWait32(FileName: string; Visibility: Integer): Cardinal; //integer
var
zAppName: array[0..512] of char;
zCurDir: array[0..255] of char;
WorkDir: string;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
StrPCopy(zAppName, FileName);
GetDir(0, WorkDir);
StrPCopy(zCurDir, WorkDir);
FillChar(StartupInfo, SizeOf(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(nil, zAppName, nil, nil, True, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
nil, nil, StartupInfo, ProcessInfo) then
Result := INFINITE
else begin
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess, Result);
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
end;
end;
然后用WaitForSingleObject()等待16位程序结束即可
再用FindWindow()获取16位程序的句柄,
然后用WaitForSingleObject()等待16位程序结束即可