Помогите разобраться. Хочу перехватить нажатие кнопки выключения и отправить его обратно в систему.
Code:void CKeyCapturer::ConstructL() { User::LeaveIfError(iWsSession.Connect()); iWg = RWindowGroup(iWsSession); User::LeaveIfError(iWg.Construct((TUint32)&iWg, EFalse)); iWg.SetOrdinalPosition(-1, ECoeWinPriorityNormal+2 ); iWg.EnableReceiptOfFocus(EFalse); CApaWindowGroupName* wn = CApaWindowGroupName::NewLC(iWsSession); wn->SetHidden(ETrue); wn->SetWindowGroupName(iWg); CleanupStack::PopAndDestroy(); User::LeaveIfError(iWg.CaptureKey(EKeyDevice2, 0,0)); CActiveScheduler::Add(this); Listen(); }При запуске программы кнопка выключения перестает работать. При нажатии на нее RunL вызывается, но проверка условий не проходит, т.е. до строчка WriteLog(KPower()); не выполняется.Code:void CKeyCapturer::RunL() { TWsEvent e; iWsSession.GetEvent(e);. TInt type = e.Type(); if (type == EEventKeyDown) { if (e.Key()->iScanCode == EStdKeyDevice2 || e.Key()->iCode == EKeyDevice2) { WriteLog(KPower()); } } TInt wgId = iWsSession.GetFocusWindowGroup(); iWsSession.SendEventToWindowGroup( wgId, e ); Listen(); }
Почему не работает SendEventToWindowGroup и проверка условий возвращает false?

Reply With Quote

