View Full Version : อยากทราบวิธีกำหนดhotkey สำหรับโปรแกรมครับ
ต้องการกำหนด hotkey สำหรับโปรแกรม เวลาที่เปิดโปรแกรมอยู่ แล้ว switch ไปทำงานโปรแกรมอื่น เมื่อต้องการเรียกใช้โปรแกรมเราให้กดปุ่ม hotkey แล้วจะ switch กลับมาที่โปรแกรมเรา หรือถ้าไม่ใช้ hotkey เรากำหนดให้โปรแกรมเราดักจับการกดปุ่มที่เรากำหนด เมื่อมีการกดปุ่มที่เรากำหนดแล้ว จะ switch กลับมาที่โปรแกรมเรา แบบนี้พอมีวิธีไหมครับ
งง... ครับ
คือใช้วิธีการ 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();
labyrinth
25-08-2004, 07:27 PM
ถ้างั้นคงต้องให้โปรแกรมเราเริ่มทำงานตั้งแต่เริ่มเปิดเครื่อง
ซึ่งสามารถทำได้โดยใช้ Recognizer
อ่านได้ที่นี่ http://www.newlc.com/article.php3?id_article=221
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.