@@ -433,51 +433,52 @@ VOID CScreenManager::ProcessCommand(LPBYTE szBuffer, ULONG ulLength)
case WM_KEYUP :
return ;
case WM_CHAR :
case WM_KEYDOWN : {
m_point = m_lastPoint ;
hWnd = WindowFromPoint ( m_point ) ;
break ;
}
case WM_RBUTTONDOWN : {
// <20> <> ¼<EFBFBD> Ҽ<EFBFBD> <D2BC> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
m_rmouseDown = TRUE ;
m_rclickPoint = msg - > pt ;
break ;
}
case WM_RBUTTONUP : {
m_rmouseDown = FALSE ;
m_rclickWnd = WindowFromPoint ( m_rclickPoint ) ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ<EFBFBD> Ϊϵͳ<CFB5> ˵<EFBFBD> <CBB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
char szClass [ 256 ] ;
GetClassNameA ( m_rclickWnd , szClass , sizeof ( szClass ) ) ;
Mprintf ( " Right click on '%s' %s[%p] \n " , szClass , GetTitle ( hWnd ) . c_str ( ) , hWnd ) ;
if ( strcmp ( szClass , " Shell_TrayWnd " ) = = 0 ) {
// <20> <> <EFBFBD> <EFBFBD> ϵͳ<CFB5> <CDB3> <EFBFBD> Ҽ<EFBFBD> <D2BC> ˵<EFBFBD> <CBB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
PostMessage ( m_rclickWnd , WM_CONTEXTMENU , ( WPARAM ) m_rclickWnd ,
MAKELPARAM ( m_rclickPoint . x , m_rclickPoint . y ) ) ;
}
else {
// <20> <> ͨ<EFBFBD> <CDA8> <EFBFBD> ڵ<EFBFBD> <DAB5> Ҽ<EFBFBD> <D2BC> ˵<EFBFBD>
if ( ! PostMessage ( m_rclickWnd , WM_RBUTTONUP , msg - > wParam ,
MAKELPARAM ( m_rclickPoint . x , m_rclickPoint . y ) ) ) {
// <20> <> <EFBFBD> ӣ<EFBFBD> ģ<EFBFBD> <C4A3> <EFBFBD> <EFBFBD> <EFBFBD> ̰<EFBFBD> <CCB0> <EFBFBD> Shift+F10<31> <30> <EFBFBD> <EFBFBD> <EFBFBD> ò˵<C3B2> <CBB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <CABD>
keybd_event ( VK_SHIFT , 0 , 0 , 0 ) ;
keybd_event ( VK_F10 , 0 , 0 , 0 ) ;
keybd_event ( VK_F10 , 0 , KEYEVENTF_KEYUP , 0 ) ;
keybd_event ( VK_SHIFT , 0 , KEYEVENTF_KEYUP , 0 ) ;
}
}
break ;
}
default :
{
msg - > pt = { LOWORD ( msg - > lParam ) , HIWORD ( msg - > lParam ) } ;
m_ScreenSpyObject - > PointConversion ( msg - > pt ) ;
msg - > lParam = MAKELPARAM ( msg - > pt . x , msg - > pt . y ) ;
mouseMsg = TRUE ;
m_point = msg - > pt ;
hWnd = WindowFromPoint ( m_point ) ;
lastPointCopy = m_lastPoint ;
m_lastPoint = m_point ;
if ( msg - > message = = WM_L BUTTONUP ) {
if ( msg - > message = = WM_R BUTTONDOWN ) {
// <20> <> ¼<EFBFBD> Ҽ<EFBFBD> <D2BC> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
m_rmouseDown = TRUE ;
m_rclickPoint = msg - > pt ;
}
else if ( msg - > message = = WM_RBUTTONUP ) {
m_rmouseDown = FALSE ;
m_rclickWnd = WindowFromPoint ( m_rclickPoint ) ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ<EFBFBD> Ϊϵͳ<CFB5> ˵<EFBFBD> <CBB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
char szClass [ 256 ] = { } ;
GetClassNameA ( m_rclickWnd , szClass , sizeof ( szClass ) ) ;
Mprintf ( " Right click on '%s' %s[%p] \n " , szClass , GetTitle ( hWnd ) . c_str ( ) , hWnd ) ;
if ( strcmp ( szClass , " Shell_TrayWnd " ) = = 0 ) {
// <20> <> <EFBFBD> <EFBFBD> ϵͳ<CFB5> <CDB3> <EFBFBD> Ҽ<EFBFBD> <D2BC> ˵<EFBFBD> <CBB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
PostMessage ( m_rclickWnd , WM_CONTEXTMENU , ( WPARAM ) m_rclickWnd ,
MAKELPARAM ( m_rclickPoint . x , m_rclickPoint . y ) ) ;
}
else {
// <20> <> ͨ<EFBFBD> <CDA8> <EFBFBD> ڵ<EFBFBD> <DAB5> Ҽ<EFBFBD> <D2BC> ˵<EFBFBD>
if ( ! PostMessage ( m_rclickWnd , WM_RBUTTONUP , msg - > wParam ,
MAKELPARAM ( m_rclickPoint . x , m_rclickPoint . y ) ) ) {
// <20> <> <EFBFBD> ӣ<EFBFBD> ģ<EFBFBD> <C4A3> <EFBFBD> <EFBFBD> <EFBFBD> ̰<EFBFBD> <CCB0> <EFBFBD> Shift+F10<31> <30> <EFBFBD> <EFBFBD> <EFBFBD> ò˵<C3B2> <CBB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <CABD>
keybd_event ( VK_SHIFT , 0 , 0 , 0 ) ;
keybd_event ( VK_F10 , 0 , 0 , 0 ) ;
keybd_event ( VK_F10 , 0 , KEYEVENTF_KEYUP , 0 ) ;
keybd_event ( VK_SHIFT , 0 , KEYEVENTF_KEYUP , 0 ) ;
}
}
}
else if ( msg - > message = = WM_LBUTTONUP ) {
if ( m_rclickWnd & & hWnd ! = m_rclickWnd )
{
PostMessageA ( m_rclickWnd , WM_LBUTTONDOWN , MK_LBUTTON , 0 ) ;