EVC的小技巧

//---------------------------------------------------------------------------
//屏蔽CE系统桌面,每个窗体在初始化的时候调用
//EnableDesktop(FALSE);
//仅一个主窗体在退出时恢复屏蔽EnableDesktop(TRUE);
//注:其他辅助窗体均不能恢复屏蔽!!仅主窗体恢复一次即可
void EnableDesktop(BOOL bEnable)
{
 HWND hTaskBarWnd=NULL,hMenuBarWnd=NULL,hSipBtnWnd=NULL;
 hTaskBarWnd = ::FindWindow(_T("HHTaskBar"), NULL);
 hMenuBarWnd = ::FindWindow(_T("menu_worker"), NULL);
 hSipBtnWnd = ::FindWindow(_T("MS_SIPBUTTON"), NULL);
 
 if(NULL==hTaskBarWnd || NULL==hMenuBarWnd ) return;

 if(TRUE == bEnable)
 {
  ::EnableWindow(hTaskBarWnd, TRUE);
  ::ShowWindow(hTaskBarWnd, SW_SHOW);
  ::EnableWindow(hMenuBarWnd, TRUE);
  ::ShowWindow(hMenuBarWnd, SW_SHOW);
  ::EnableWindow(hSipBtnWnd, TRUE);
  ::ShowWindow(hSipBtnWnd, SW_SHOW);
  
 }
 else
 {
  ::EnableWindow(hTaskBarWnd, FALSE);
  ::ShowWindow(hTaskBarWnd, SW_HIDE);
  ::EnableWindow(hMenuBarWnd, FALSE);
  ::ShowWindow(hMenuBarWnd, SW_HIDE);
  ::EnableWindow(hSipBtnWnd, FALSE);
  ::ShowWindow(hSipBtnWnd, SW_HIDE);
 }
  
}
//---------------------------------------------------------------------------
//设置系统键盘CAPSLOCK按下和恢复
//bState=TRUE  : 模拟按下(大写)
//bState=FALSE : 模拟恢复(小写)
void SetCapsLock( BOOL bState )

 EnableDesktop(FALSE);

 SHORT b;
 b = GetKeyState(VK_CAPITAL);

 /*
 if( (TRUE==bState && (LOWORD(b)==1)) ||
  (FALSE==bState && (LOWORD(b)==0)) ) 
 {
 */ //AfxMessageBox(TEXT("down"));
  keybd_event( VK_CAPITAL,
      0x45,
      KEYEVENTF_EXTENDEDKEY | 0,
      0 );

  keybd_event( VK_CAPITAL,
           0x45,
     KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
     0);
  

 //}
 
 
}
//---------------------------------------------------------------------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值