STARTUPINFO si;
PROCESS_INFORMATION pi; 
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
si.wShowWindow = SW_HIDE;
do{
   if(!CreateProcess("my.exe", NULL , NULL,NULL,FALSE, NORMAL_PRIORITY_CLASS |       
                      CREATE_NO_WINDOW,NULL,NULL,&si,&pi))
   { 
return 0;
   }
  WaitForSingleObject( pi.hProcess, INFINITE);
}while(true);现在想,根据句柄,做守护,句柄已获得:CWnd *pWnd = FindWindow("my.exe", NULL);
HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND
你懂得--------------------------帖子只能给100分,问题解决,再++++200 ,回帖有分,打酱油的呢,送酱油,灌水的送水

解决方案 »

  1.   

    http://download.csdn.net/detail/piaozhou_cd/275307
      

  2.   

    创建一个Service,和你的进程关联起来
      

  3.   

    void
    wait( HWND hwnd )
    {
    DWORD processid;
    HANDLE process_handle;
    GetWindowThreadProcessId( hwnd, &processid );
    process_handle = OpenProcess( PROCESS_ALL_ACCESS, FALSE, processid );
    if( process_handle )
    {
    ::WaitForSingleObject( process_handle, INFINITE );
    AfxMessageBox( "wait is ok" );
    }
    else
    {
    AfxMessageBox( "wait is error" );
    }
    }void CHold_notepadDlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    HWND notepad; notepad = ::FindWindow( _T( "Notepad" ), NULL );
    if( notepad )
    {
    wait( notepad );
    }
    else
    {
    AfxMessageBox( "not found notepad.exe" );
    }
    }先运行一个 记事本, 然后就点击按钮,就进行wait了,记事本退出,弹出 "wait is ok"