อยากทราบวิธีกำหนดhotkey สำหรับโปรแกรมครับ
ต้องการกำหนด hotkey สำหรับโปรแกรม เวลาที่เปิดโปรแกรมอยู่ แล้ว switch ไปทำงานโปรแกรมอื่น เมื่อต้องการเรียกใช้โปรแกรมเราให้กดปุ่ม hotkey แล้วจะ switch กลับมาที่โปรแกรมเรา หรือถ้าไม่ใช้ hotkey เรากำหนดให้โปรแกรมเราดักจับการกดปุ่มที่เรากำหนด เมื่อมีการกดปุ่มที่เรากำหนดแล้ว จะ switch กลับมาที่โปรแกรมเรา แบบนี้พอมีวิธีไหมครับ
Re: อยากทราบวิธีกำหนดhotkey สำหรับโปรแกรมครับ
งง... ครับ
คือใช้วิธีการ CaptureKey เพื่อดักจับปุ่มกดหรือเปล่าครับ เมื่อมีการกดปุ่มนั้น ก็ให้โปรแกรมเรา ฺBringToForeground ใช่ไหม
ถ้าแบบนี้ก็พอมีอยู่อะครับ
คือก่อนอื่นก็ต้องดักจับปุ่มกดก่อน
ยกตัวอย่างเช่นต้องการดักจับปุ่มกด ดินสอ+C
ประกาศไว้ใน handle file ว่า
TInt32 iCallBackHandle;
ใน source cpp ในส่วนของ ConstructL
TUint aModifierMask=EModifierShift|EModifierCtrl;
TUint aModifier=EModifierShift;
RWindowGroup iWindowGroup=iCoeEnv->RootWin();
iCallBackHandle = iWindowGroup.CaptureKey(EKeyBackspace,aModifierMask,aModifier));
เมื่อต้องการยกเลิกดักจับ
RWindowGroup iWindowGroup=iCoeEnv->RootWin();
iWindowGroup.CancelCaptureKey(iCallBackHandle);
เมื่อมีการกดปุ่ม แล้วจะไปเรียก funtion OfferKeyEventL มาเองครับ
ผมจำไม่ได้ว่าต้อง include หรือเพิ่ม library อะไรบ้างนะครับ ลองหาเอานะครับ :wob:
ส่วนการทำให้โปรแกรม switch กลับมาง่ายมากๆ
iCoeEnv->RootWin().SetOrdinalPosition(0);
หรือจะใช้วิธีนี้
RWsSession ws;
User::LeaveIfError( ws.Connect() );
TApaTaskList taskList( ws );
TApaTask task = taskList.FindByApp(_L("AppName")); //AppName คือชื่อโปรแกรมเรา
task.BringToForeground();
Re: อยากทราบวิธีกำหนดhotkey สำหรับโปรแกรมครับ
ถ้างั้นคงต้องให้โปรแกรมเราเริ่มทำงานตั้งแต่เริ่มเปิดเครื่อง
ซึ่งสามารถทำได้โดยใช้ Recognizer
อ่านได้ที่นี่ http://www.newlc.com/article.php3?id_article=221