用ShellExecute或别的办法打开另一个可执行文件,怎么让新打开的一直显示在调用窗体之前,类似ShowModal的效果,只有关闭此程序才能将控制权返回?
up有分!
up有分!
解决方案 »
- delphi中用Qreport时如何在打印一张单据时,记录不足时表格线填充至一页,
- 初学者数据库统计的问题!
- 穷人急救,各位大歌 我拿高分求教
- 请问怎么才能知道某一个函数是在哪个单元里?我经常知道函数名,却不知道要引用哪个单元,怎么办?
- 菜鸟问题,关于DBChart!在线!
- 求一句关于Comcobox的代码!
- 我裝d7的時候出現錯誤.我忽略了不知會不會有什麼影響
- 怎么得知自己的机器上的光驱盘符?
- 分,分,分--如何对ACCESS数据库进行导入导出备份(在DELPHI5中)
- ★★★★★发现了一个Delphi的一个超级大Bug!★★★★★
- 大家看看,我这个问题怎么解决?
- 我想问一下,database Desktop与Access数据库相比,哪个容量大一点啊??
然后WaitforSingleObject()等待直到执行结束。
总在最前
让自己的程序DISABLE
先FINDHANDLE,然后将那个SHELLEXECUTE出来的窗体SETWINDOWLONG
总在最前
让自己的程序DISABLE
////////////////////////////////////////////////////////////////////////////
然后自己的程序一直FINDHANDLE(),一直FINDHANDLE()直到FIND不到再Enabled 对不对?
这种方法... 不加评论。
FindHandle没试过
WaitforSingleObject可以解决这个问题
我用WaitforSingleObject()怎么不行,麻烦你能不能贴上几句代码啊,谢谢!!!
现在可以了,但移动上面的窗口后,使下面的窗口“面目全非”,怎么刷新下面的窗口呢???
刚刚看到楼主的回复。刷新下面的窗口可以在调用结束后调用Form的刷新,或者再干脆一些在调用时把原窗口隐藏,调用后再显示,这是zhmnsw(糖醋鼻子)老兄想法的翻版。
2.在应用程序中调用其它Windows应用程序
****************************************************************
int ExecuteEXE(char * name)
{
BOOL seccessed=FALSE;
STARTUPINFO si;
PROCESS_INFORMATION pi;
BOOL flag;
TCHAR path[100];
TCHAR Error[100]="注意:\n\t安装程序没有找到指定的安装文件:";
strcat(Error,name);
strcpy(path,name);
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) ); flag=CreateProcess(NULL,path,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
if(!flag) MessageBox(NULL,Error,"安装程序错误提示",MB_OK);
else seccessed=TRUE;
//wait for Process complete.
WaitForSingleObject( pi.hProcess, INFINITE ); // Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
return seccessed;
}