如果1个EXECL在使用程序前已经打开,我如何去对他操作?

解决方案 »

  1.   

    ::CoInitialize(NULL);//Attach to the running instance...
    CLSID clsid;
    CLSIDFromProgID(L"Excel.Application", &clsid);
    IUnknown *pUnk = NULL;
    IDispatch *pDisp = NULL;for(int i=1;i<=5;i++) //try attaching for up to 5 attempts
    {
       HRESULT hr = GetActiveObject(clsid, NULL, (IUnknown**)&pUnk);
       if(SUCCEEDED(hr))
       {
           hr = pUnk->QueryInterface(IID_IDispatch, (void **)&pDisp);
           break;
       }
       ::Sleep(1000);
    }if (!pDisp) {
        ::MessageBox(NULL, "Failed to find instance!!", "Error",
                     MB_ICONHAND);
    }
    else {
        ::MessageBox(NULL, "Got instance of Excel!", "Success", MB_OK);
    }
      

  2.   

    哦!~~~恩恩.....这个时候.我定义
    _Application ExcelApp; 
    以前都是用ExcelApp.CreateDispatch(_T("Excel.Application"),NULL)
    但现在要让ExcelApp指向找到的这个Excel.Application用什么方法呢?