怎么等我的外部程序完全起来,我的程序才继续执行!(50分)

  • 主题发起人 主题发起人 斯巴达克
  • 开始时间 开始时间

斯巴达克

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾请看
processId:thandle;
processid=ShellExecute(hwnd, "Open", "gis", "demo", "d:/smallworld/product/bin/x86", 0)
//gis程序起来的是我的一个外部的server,下面的代码要连接到server。如果server还没有完全起来,
那么下面的代码就会出错。我怎么才能知道gis已完全起来,那么我的下面的代码就不会连接不到server
而报错了。
conn = Pool.Connect
 

如果这个GIS server是你写的话,只要使用进程间通信就可以通知
1.程序使用SendMessage向GIS发一条自定义消息,GIS接到消息后再向程序发一个应答
程序在主窗体的WndProd函数中处理这条应答消息
例如:
if msg=应答消息
SetEvent(hWait);
hWait是在程序启动是创建的一个全局变量
HANDLE hWait;
hWait= CreateEvent(false,true,NULL);
2.ShellExec(...)//运行GIS
HANDLE hWin = findwindow();
SendMessage(hwin,自定义消息);//向GIS发消息
WaitForsingleObject(hWait,INFINITE);
//等待GIS应答
.....

 
接受答案了.
 
后退
顶部