解决方案 »

  1.   

    你用createprocess启动的就有那个应用程序的句柄,如果用winexec的话,只能用findwindow这个老土的办法了
      

  2.   

    FindWindow可以根据窗口名或者窗口类名找句柄
      

  3.   

    FindWindow可以根据窗口名或者窗口类名找句柄
      

  4.   

    FindWindow可以根据窗口名或者窗口类名找句柄
      

  5.   

    同意javanew(我是java新手) 我的代码:
      //启动mvcs
      //进程方式
      STARTUPINFO StartInfo;
      PROCESS_INFORMATION ProcessInfo;
      StartInfo.cb=sizeof(STARTUPINFO);
      StartInfo.lpReserved=0;
      StartInfo.lpDesktop=NULL;
      StartInfo.lpTitle=NULL;
      StartInfo.dwX=0;
      StartInfo.dwY=0;
      StartInfo.dwXSize=90;
      StartInfo.dwYSize=90;
      StartInfo.dwXCountChars=0;
      StartInfo.dwXCountChars=0;
      StartInfo.dwFillAttribute=0;
      StartInfo.dwFlags=STARTF_USEPOSITION|STARTF_USESIZE|STARTF_USESHOWWINDOW;
      StartInfo.wShowWindow=SW_SHOWNORMAL;
      StartInfo.cbReserved2=0;
      StartInfo.lpReserved2=NULL;
      StartInfo.hStdInput=0;
      StartInfo.hStdOutput=0;
      StartInfo.hStdError=0;
      if(!::CreateProcess(NULL,XVCS.c_str(),NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&StartInfo,&ProcessInfo))
      {
              Application->MessageBox("启动扫描程序时出错!","Error",MB_OK+MB_ICONERROR);
              ErrorInfo(teErr,"启动扫描程序时出错!");
              return;
      }
      hProcess=ProcessInfo.hProcess;
      ThreadID=ProcessInfo.dwThreadId;
      if(ThreadID==0)
      {
        ShowMessage("启动MVCS时出错!");
        return;
      }
      

  6.   

    AfxGetApp()->m_pMainWnd->SetWindowText("Main");
    //设 置 的 应 用 程 序 的 名 称 

    CWnd* m_Wnd=CWnd::FindWindow(NULL,"Main");
    //的 到 应 用 程 序 的 句 柄
      

  7.   

    用OpenProcess函数,看看MSDN!如果你在程序中启动,用CreateProcess就可以了,在返回的结构中有进程及主线程名柄!