그것을 보낼 수 WM_QUERYENDSESSION 메시지 창에서 다른 프로세스?

StackOverflow https://stackoverflow.com/questions/77133

  •  09-06-2019
  •  | 
  •  

문제

내가 원하는 디버깅하 windows C++응용 프로그램 작성하세요 응답하지 않을 WM_QUERYENDSESSION 방법을 기대합니다.분명히 그것은 작은 까다로운 이렇게 하여 그냥한 시스템을 종료.이 있습 유틸리티 또는 코드는 나를 보내는 데 사용할 수 있는 가짜 WM_QUERYENDSESSION 내 응용 프로그램 윈도우냐?

도움이 되었습니까?

해결책

Win32::GuiTest 펄 모듈의 이런 종류의 작업을 수행 할 것이다.

다른 팁

Windows API SendMessage 작업을 수행하는 데 사용될 수 있습니다.http://msdn.microsoft.com/en-us/library/ms644950(VS.85).aspx

Ti 가능한 그것은 응답하지 않기 때문에 다른 실행하는 프로세스가 응답이 제로(만드는 시스템을 기다립니다.)

네 물론 그것이 가능합니다.내가 직면 유사한 문제는 몇 달 전에 일(알 수없는,하지만 아마 광산)응용 프로그램를 방지하고 종료,그래서 내가 쓴 일부는 빠른하는 코드 사용 EnumWindows 을 열거한 모든 최고 수준의 윈도우,전송되는 각 하나 WM_QUERYENDSESSION 메시지,무엇을 주목에서 반환된 값을 SendMessage 지 열거하면 사람이 반환되는 거짓입니다.에 분 C++/MFC.이 용기의 it:

void CQes_testDlg::OnBtnTest()  
{  
   // enumerate all the top-level windows.  
   m_ctrl_ListMsgs.ResetContent();  
   EnumWindows (EnumProc, 0);  
}  


BOOL CALLBACK EnumProc (HWND hTarget, LPARAM lParam)  
{  
   CString csTitle;  
   CString csMsg;  
   CWnd *  pWnd = CWnd::FromHandle (hTarget);  
   BOOL    bRetVal = TRUE;  
   DWORD   dwPID;  

   if (pWnd)  
   {  
      pWnd->GetWindowText (csTitle);  
      if (csTitle.GetLength() == 0)  
      {  
         GetWindowThreadProcessId (hTarget, &dwPID);  
         csTitle.Format ("<PID=%d>", dwPID);  
      }  

      if (pWnd->SendMessage (WM_QUERYENDSESSION, 0, ENDSESSION_LOGOFF))  
      {  
         csMsg.Format ("window 0x%X (%s) returned TRUE", hTarget, csTitle);  
      }  
      else   
      {    
         csMsg.Format ("window 0x%X (%s) returned FALSE", hTarget, csTitle);  
         bRetVal = FALSE;  
      }  

      mg_pThis->m_ctrl_ListMsgs.AddString (csMsg);
   }
   else  
   {  
      csMsg.Format ("Unable to resolve HWND 0x%X to a CWnd", hTarget);  
      mg_pThis->m_ctrl_ListMsgs.AddString (csMsg);  
   }  
   return bRetVal;  
}

mg_pThis 그냥 지역의 복사본을 대화의 이 포인터는,그래서 도우미는 콜백에 액세스할 수 있습니다.나는 당신을 말한 그것은 빠르고 더러운:-)

그렇습니다.을 얻을 수 있다면 창 핸들(어쩌면 사용하 FindWindow())할 수 있습을 보내/글 어떤 메시지를 그 만큼 WPARAM&LPARAM 지 않은 포인터입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top