S60 發送按鍵事件:
//類比一個按鍵<br />bool CTools::SendEventL(TUint aCode, TInt aScanCode)<br />{<br />RWsSession aWsSession;<br />aWsSession.Connect();<br />const TUid KMyAppUid =<br />{<br />0x101f875a<br />};<br />TApaTaskList taskList(aWsSession);<br />TApaTask task = taskList.FindApp(KMyAppUid);<br />TInt aWgId = task.WgId();</p><p>TInt err = KErrNone;<br />TWsEvent event;<br />TKeyEvent& key = *(event.Key());</p><p>key.iCode = 0;<br />key.iScanCode = aScanCode;<br />key.iRepeats = 0;<br />key.iModifiers = EModifierNumLock;<br />event.SetTimeNow();<br />event.SetType(EEventKeyDown);<br />err = aWsSession.SendEventToWindowGroup(aWgId, event);<br />if(err != KErrNone)<br />{<br />aWsSession.Close();<br />return false;<br />}</p><p>key.iCode = aCode;<br />key.iScanCode = aScanCode;<br />key.iRepeats = 0;<br />key.iModifiers = EModifierNumLock|EModifierAutorepeatable;<br />event.SetTimeNow();<br />event.SetType(EEventKey);<br />err = aWsSession.SendEventToWindowGroup(aWgId, event);<br />if(err != KErrNone)<br />{<br />aWsSession.Close();<br />return false;<br />}</p><p>key.iCode = 0;<br />key.iScanCode = aScanCode;<br />key.iRepeats = 0;<br />key.iModifiers = EModifierNumLock;<br />event.SetTimeNow();<br />event.SetType(EEventKeyUp);<br />err = aWsSession.SendEventToWindowGroup(aWgId, event);<br />if(err != KErrNone)<br />{<br />aWsSession.Close();<br />return false;<br />}<br />aWsSession.Close();<br />return true;<br />}<br />