我要在程序中执行一个udl文件以连接数据库,连接完毕后,才作下面的连接操作。我原来是这么作的:
ShellExecuteA( this->m_hWnd, "Open", "1.udl", "", "", SW_SHOWMAXIMIZED );
cnn->Open( "File Name=1.udl", "", "", NULL );但我的配置还没完,程序就已经走下来了,我希望 ShellExecuteA 这一步是阻塞式的,该怎么做呢?
ShellExecuteA( this->m_hWnd, "Open", "1.udl", "", "", SW_SHOWMAXIMIZED );
cnn->Open( "File Name=1.udl", "", "", NULL );但我的配置还没完,程序就已经走下来了,我希望 ShellExecuteA 这一步是阻塞式的,该怎么做呢?
解决方案 »
- 请教:vc编程时突然出现编译时鸣叫,然后xp系统点击某些按钮弹出对话框也是鸣叫,怎么消除?????
- 往EXCEL中增加几个字段会显示“字段定义语法错误”,急!!!
- 为什么IDC_EXPLORER1只能调用一次ShowWindow()?求解
- 有没有办法向子窗口发送自定义消息? 和向父窗口发送自定义消息一样吗?
- SOCKET的问题,我的客户端发送接受1250次就死了,是什么原因,请高手帮忙?
- 关于延时的问题,百思不得其解
- BSTR类型的传递!
- 关于版本和bug管理的rule(规则)的编写
- 这儿有谁懂视频流吗?我想把采集的图像以视频流的格式传输,应该怎么办?
- 開不到rc 檔T^T
- 用VC做一个串口采集的程序,想编一个数据显示的界面,X轴是时间轴(具体到每分钟),Y轴是数据轴,用chart控件好还是用其他的类的方便.
- 超级菜鸟,几个VC的简单问题。
那么如何知道配置窗口关闭了呢?不会是用FindWindow之类的吧。
SHELLEXECUTEINFO sei;
ShellExecuteEx(&sei);
cnn->Open( "File Name=1.udl", "", "", NULL );
WaitForSingleObject(sei.hProcess,-1),具体ShellExecuteEx的用法你看一下msdn,我就不赘述了
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "1.udl";
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);