專利名稱:多輸入焦點(diǎn)的軟鍵盤輸入裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種多輸入焦點(diǎn)的軟鍵盤輸入裝置和方法。
背景技術(shù):
鍵盤監(jiān)視和窗口文本截取是常見的兩種竊取密碼的攻擊手段。
為了解決鍵盤監(jiān)視的問題,可以使用軟鍵盤進(jìn)行輸入。軟鍵盤是以軟件方式模擬鍵盤行 為,通過鼠標(biāo)點(diǎn)擊輸入字符的程序。軟鍵盤可以用于防止木馬記錄通過物理鍵盤輸入的密碼。 然而,用戶通過軟鍵盤輸入字符時(shí),鼠標(biāo)必然點(diǎn)擊在軟鍵盤上,會(huì)導(dǎo)致輸入控件失去焦點(diǎn), 無法接受輸入的字符,因此,使用軟鍵盤必須預(yù)先確定焦點(diǎn)位置,這給使用帶來了不便。 WindowsXP中系統(tǒng)自帶的一個(gè)軟鍵盤不會(huì)導(dǎo)致控件失去焦點(diǎn),但它使用的是鍵盤碼,和物理 鍵盤完全一致,不具備防木馬功能。
為了增加窗口文本截取的難度,使用以不具有輸入焦點(diǎn)的非輸入控件為基類的自繪控件 進(jìn)行輸出顯示,與軟鍵盤一起完成人機(jī)交互。由于所述輸出控件自身沒有焦點(diǎn),當(dāng)存在多個(gè) 輸出時(shí)(如修改PIN碼的界面),需要一種方法來確定當(dāng)前輸入對(duì)應(yīng)的輸出控件。常規(guī)的做法 是根據(jù)鼠標(biāo)點(diǎn)擊的落點(diǎn)所在的位置來判斷,但與軟鍵盤配合使用時(shí),每當(dāng)需要判斷當(dāng)前輸出 位置時(shí),鼠標(biāo)的落點(diǎn)總是在軟鍵盤上,因此無法使用常規(guī)做法。
發(fā)明內(nèi)容
為了提高軟鍵盤輸入的安全性,本發(fā)明實(shí)施例提供了一種多輸入焦點(diǎn)的軟鍵盤輸入裝置
和方法。所述技術(shù)方案如下
一種多輸入焦點(diǎn)的軟鍵盤輸入裝置,所述裝置包括主控模塊和軟鍵盤模塊; 所述主控模塊包括
標(biāo)準(zhǔn)輸入/輸出單元,用于接收鼠標(biāo)點(diǎn)擊消息和用戶通過標(biāo)準(zhǔn)鍵盤輸入的字符; 模擬輸入/輸出單元,用于接收鼠標(biāo)點(diǎn)擊消息和用戶通過軟鍵盤輸入的字符; 輸入焦點(diǎn)標(biāo)志設(shè)置單元,用于當(dāng)所述標(biāo)準(zhǔn)輸入/輸出單元被鼠標(biāo)點(diǎn)擊時(shí),將當(dāng)前輸入焦點(diǎn) 標(biāo)志設(shè)置為所述標(biāo)準(zhǔn)輸入/輸出單元的焦點(diǎn)標(biāo)志,當(dāng)所述模擬輸入/輸出單元被鼠標(biāo)點(diǎn)擊時(shí),將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述模擬輸入/輸出單元的焦點(diǎn)標(biāo)志;
軟鍵盤消息處理單元,用于收到所述軟鍵盤模塊發(fā)來的軟鍵盤消息后,根據(jù)當(dāng)前輸入焦 點(diǎn)標(biāo)志,通知對(duì)應(yīng)的模擬輸入/輸出單元接收所述軟鍵盤模塊緩存的鍵盤字符;
存儲(chǔ)單元,用于存儲(chǔ)用戶通過標(biāo)準(zhǔn)鍵盤或軟鍵盤輸入的字符;
顯示單元,用于在標(biāo)準(zhǔn)鍵盤輸入模式下,顯示標(biāo)準(zhǔn)輸入/輸出單元,在軟鍵盤輸入模式下,
顯示軟鍵盤和模擬輸入/輸出單元;
所述軟鍵盤模塊包括 ' 映射單元,用于存儲(chǔ)坐標(biāo)與字符之間的映射關(guān)系,模擬輸入/輸出單元與焦點(diǎn)標(biāo)志的對(duì)應(yīng)
關(guān)系,以及標(biāo)準(zhǔn)輸入/輸出單元與焦點(diǎn)標(biāo)志的對(duì)應(yīng)關(guān)系,并在有鼠標(biāo)點(diǎn)擊消息時(shí),根據(jù)鼠標(biāo)點(diǎn)
擊的位置輸出相應(yīng)的字符;
緩存單元,用于當(dāng)所述映射單元輸出的為鍵盤字符時(shí),緩存所述鍵盤字符; 軟鍵盤消息發(fā)送單元,用于當(dāng)所述緩存單元緩存有鍵盤字符時(shí),向所述主控模塊發(fā)送軟
鍵盤消息;
狀態(tài)處理單元,用于當(dāng)所述映射單元輸出的為狀態(tài)字符時(shí),對(duì)所述軟鍵盤進(jìn)行相應(yīng)的狀 態(tài)處理。
所述主控模塊還包括
切換單元,用于當(dāng)所述模擬輸入/輸出單元接收的鼠標(biāo)點(diǎn)擊消息為輸入模式切換消息時(shí), 將當(dāng)前軟鍵盤輸入模式更改為標(biāo)準(zhǔn)鍵盤輸入模式;當(dāng)所述標(biāo)準(zhǔn)輸入/輸出單元接收的鼠標(biāo)點(diǎn)擊 消息為輸入模式切換消息時(shí),將當(dāng)前標(biāo)準(zhǔn)鍵盤輸入模式更改為軟鍵盤輸入模式。
所述主控模塊還包括
判斷單元,用于判斷當(dāng)前輸入模式是否為軟鍵盤輸入模式;
第一通知單元,用于當(dāng)所述判斷單元判斷出當(dāng)前輸入模式為軟鍵盤輸入模式時(shí),通知所 述顯示單元顯示所述軟鍵盤和模擬輸入/輸出單元;
第二通知單元,用于當(dāng)所述判斷單元判斷出當(dāng)前輸入模式為標(biāo)準(zhǔn)鍵盤輸入模式時(shí),通知
所述顯示單元顯示所述標(biāo)準(zhǔn)輸入/輸出單元。
所述主控模塊還包括
第一標(biāo)準(zhǔn)鍵盤字符接收單元,用于在所述顯示單元根據(jù)所述第二通知單元發(fā)來的通知顯 示所述標(biāo)準(zhǔn)輸入/輸出單元后,接收用戶通過物理鍵盤輸入的字符,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志, 通知對(duì)應(yīng)的標(biāo)準(zhǔn)輸入/輸出單元接收所述字符。
所述第二通知單元具體用于當(dāng)所述判斷單元判斷出當(dāng)前輸入模式為標(biāo)準(zhǔn)鍵盤輸入模式時(shí),通知所述顯示單元顯示所述標(biāo)準(zhǔn)輸入/輸出單元,并顯示所述軟鍵盤; 所述軟鍵盤模塊還包括
軟鍵盤字符發(fā)送單元,用于在標(biāo)準(zhǔn)鍵盤輸入模式下,將所述映射單元輸出的鍵盤字符發(fā) 送給所述主控模塊;
所述主控模塊還包括
軟鍵盤字符接收單元,用于接收到所述軟鍵盤模塊發(fā)來的所述鍵盤字符后,根據(jù)當(dāng)前輸 入焦點(diǎn)標(biāo)志,將所述鍵盤字符發(fā)送給對(duì)應(yīng)的標(biāo)準(zhǔn)輸入/輸出單元。 所述主控模塊還包括
第二標(biāo)準(zhǔn)鍵盤字符接收單元,用于在軟鍵盤輸入模式下,接收用戶通過物理鍵盤輸入的 字符,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì)應(yīng)的模擬輸入/輸出單元接收所述字符。 所述主控模塊還包括
檢査單元,用于定期檢査當(dāng)前的輸入焦點(diǎn),并根據(jù)所述當(dāng)前的輸入焦點(diǎn)所在的輸入/輸出 單元,將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述輸入/輸出單元的焦點(diǎn)標(biāo)志。 所述軟鍵盤模塊還包括
置亂單元,用于隨機(jī)修改所述映射單元存儲(chǔ)的坐標(biāo)和字符的映射關(guān)系。 所述標(biāo)準(zhǔn)輸入/輸出單元為具有字符輸入功能的MFC控件。 所述模擬輸入/輸出單元還包括 光標(biāo)計(jì)算子單元,用于計(jì)算光標(biāo)的位置。
所述模擬輸入/輸出單元還包括
繪圖子單元,用于繪制所述模擬輸入/輸出單元的外觀。 一種多輸入焦點(diǎn)的軟鍵盤輸入方法,所述方法包括
在軟鍵盤輸入模式下,在指定的區(qū)域內(nèi),顯示軟鍵盤和多個(gè)模擬輸入/輸出單元,并為每 個(gè)模擬輸入/輸出單元設(shè)置對(duì)應(yīng)的焦點(diǎn)標(biāo)志;
主控模塊接收到用戶點(diǎn)擊所述模擬輸入/輸出單元的鼠標(biāo)點(diǎn)擊消息,將當(dāng)前輸入焦點(diǎn)標(biāo)志 設(shè)置為所述模擬輸入/輸出單元的焦點(diǎn)標(biāo)志;
軟鍵盤模塊接收到用戶點(diǎn)擊所述軟鍵盤的鼠標(biāo)點(diǎn)擊消息,根據(jù)鼠標(biāo)點(diǎn)擊的位置確定對(duì)應(yīng) 的字符,并判斷所述字符是鍵盤字符還是狀態(tài)字符;
如果所述字符為鍵盤字符,則所述軟鍵盤模塊緩存所述鍵盤字符,并向所述主控模塊發(fā) 送軟鍵盤消息,所述主控模塊收到所述軟鍵盤消息后,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì)應(yīng)的 模擬輸入/輸出單元從所述緩存接收所述鍵盤字符;如果所述字符為狀態(tài)字符,則所述軟鍵盤模塊對(duì)所述軟鍵盤進(jìn)行相應(yīng)的狀態(tài)處理。 所述方法還包括
當(dāng)所述主控模塊接收到鼠標(biāo)點(diǎn)擊消息,且所述鼠標(biāo)點(diǎn)擊消息為輸入模式切換消息時(shí),所 述主控模塊將當(dāng)前軟鍵盤輸入模式更改為標(biāo)準(zhǔn)鍵盤輸入模式。
所述在指定的區(qū)域內(nèi),顯示軟鍵盤和多個(gè)模擬輸入/輸出單元之前,還包括-
主控模塊判斷當(dāng)前輸入模式是否為軟鍵盤輸入模式;
如果是,則執(zhí)行在軟鍵盤輸入模式下,在指定的區(qū)域內(nèi),顯示軟鍵盤和多個(gè)模擬輸入/輸 出單元的步驟;
否則,所述主控模塊顯示多個(gè)標(biāo)準(zhǔn)輸入/輸出單元并接收鼠標(biāo)點(diǎn)擊消息,并判斷鼠標(biāo)點(diǎn)擊 的是否為所述標(biāo)準(zhǔn)輸入/輸出單元,如果是,則所述主控模塊將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述 標(biāo)準(zhǔn)輸入/輸出單元的焦點(diǎn)標(biāo)志。
所述主控模塊將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述標(biāo)準(zhǔn)輸入/輸出單元的焦點(diǎn)標(biāo)志之后,還包
括
所述主控模塊接收用戶通過物理鍵盤輸入的字符,根據(jù)所述當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì) 應(yīng)的標(biāo)準(zhǔn)輸入/輸出單元接收所述字符。
所述主控模塊將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述標(biāo)準(zhǔn)輸入/輸出單元的焦點(diǎn)標(biāo)志之后,還包
括
所述主控模塊顯示軟鍵盤,并且用戶通過鼠標(biāo)點(diǎn)擊所述軟鍵盤;
所述軟鍵盤模塊根據(jù)鼠標(biāo)點(diǎn)擊的位置確定對(duì)應(yīng)的字符,并判斷所述字符是鍵盤字符還是 狀態(tài)字符;
如果所述字符為鍵盤字符,則所述軟鍵盤模塊將所述鍵盤字符發(fā)送給所述主控模塊,所 述主控模塊收到后,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,將所述鍵盤字符發(fā)送給對(duì)應(yīng)的標(biāo)準(zhǔn)輸入/輸出單
元;
如果所述字符為狀態(tài)字符,則所述軟鍵盤模塊對(duì)所述軟鍵盤進(jìn)行相應(yīng)的狀態(tài)處理。
所述判斷鼠標(biāo)點(diǎn)擊的是否為標(biāo)準(zhǔn)輸入/輸出單元之后,還包括
如果所述鼠標(biāo)點(diǎn)擊消息為輸入模式切換消息,則所述主控模塊將當(dāng)前標(biāo)準(zhǔn)鍵盤輸入模式 更改為軟鍵盤輸入模式。
所述將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述模擬輸入/輸出單元的焦點(diǎn)標(biāo)志之后,還包括 所述主控模塊接收所述用戶通過物理鍵盤輸入的字符,根據(jù)所述當(dāng)前輸入焦點(diǎn)標(biāo)志,通 知對(duì)應(yīng)的模擬輸入/輸出單元接收所述字符。所述方法還包括-
所述主控模塊定期檢査當(dāng)前的輸入焦點(diǎn),并根據(jù)所述當(dāng)前的輸入焦點(diǎn)所在的輸入/輸出單 元,將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述輸入/輸出單元的焦點(diǎn)標(biāo)志。 所述方法還包括
所述軟鍵盤模塊隨機(jī)修改已有的鼠標(biāo)點(diǎn)擊位置與字符的映射關(guān)系。
本發(fā)明實(shí)施例提供的技術(shù)方案的有益效果是解決了現(xiàn)有技術(shù)的不足,多個(gè)輸出控件共 用一個(gè)軟鍵盤,結(jié)構(gòu)更簡(jiǎn)單,運(yùn)行更穩(wěn)定,從而更好地滿足實(shí)際需要,提供更完善而安全的 人機(jī)交互體驗(yàn)。
圖1是本發(fā)明實(shí)施例1提供的多輸入焦點(diǎn)的軟鍵盤輸入方法流程圖; 圖2是本發(fā)明實(shí)施例2提供的多輸入焦點(diǎn)的軟鍵盤輸入裝置結(jié)構(gòu)圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn) 一步地詳細(xì)描述。
本發(fā)明實(shí)施例提供了一種多輸入焦點(diǎn)的軟鍵盤輸入方法,包括
在軟鍵盤輸入模式下,在指定的區(qū)域內(nèi),顯示軟鍵盤和多個(gè)模擬輸入/輸出單元,并為每 個(gè)模擬輸入/輸出單元設(shè)置對(duì)應(yīng)的焦點(diǎn)標(biāo)志;
主控模塊接收到用戶點(diǎn)擊模擬輸入/輸出單元的鼠標(biāo)點(diǎn)擊消息,將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置 為模擬輸入/輸出單元的焦點(diǎn)標(biāo)志;
軟鍵盤模塊接收到用戶點(diǎn)擊軟鍵盤的鼠標(biāo)點(diǎn)擊消息,根據(jù)鼠標(biāo)點(diǎn)擊的位置確定對(duì)應(yīng)的字 符,并判斷字符是鍵盤字符還是狀態(tài)字符;
如果字符為鍵盤字符,則軟鍵盤模塊緩存鍵盤字符,并向主控模塊發(fā)送軟鍵盤消息,主 控模塊收到軟鍵盤消息后,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì)應(yīng)的模擬輸入/輸出單元從緩存接 收鍵盤字符;
如果字符為狀態(tài)字符,則軟鍵盤模塊對(duì)軟鍵盤進(jìn)行相應(yīng)的狀態(tài)處理。 實(shí)施例1
參見圖1,本發(fā)明實(shí)施例提供了一種多輸入焦點(diǎn)的軟鍵盤輸入方法,
步驟101:主控模塊判斷當(dāng)前輸入模式是否為軟鍵盤輸入模式,如果是,則執(zhí)行步驟102,否則,執(zhí)行步驟110;
步驟102:在指定的區(qū)域內(nèi),主控模塊顯示軟鍵盤和多個(gè)模擬輸入/輸出單元,并且軟鍵 盤模塊為每個(gè)模擬輸入/輸出單元設(shè)置對(duì)應(yīng)的焦點(diǎn)標(biāo)志;通常,軟鍵盤以子窗口的形式顯示在 指定的區(qū)域內(nèi),而且在軟鍵盤輸入模式下,還可以隱藏標(biāo)準(zhǔn)輸入/輸出單元,即不顯示標(biāo)準(zhǔn)輸 入/輸出單元給用戶; 、
其中,模擬輸入/輸出單元通常具有繪制功能,可以繪制模擬輸入/輸出單元的外觀,在用 戶向模擬輸入/輸出單元內(nèi)輸入字符時(shí),該模擬輸入/輸出單元還可以在顯示框內(nèi)繪制符號(hào),如 圓點(diǎn)或者*,來模擬字符輸入;另外,還可以在光標(biāo)區(qū)指定的位置畫一條反色豎線,模擬輸入 光標(biāo);以固定的時(shí)間間隔在光標(biāo)區(qū)指定的位置,輪流繪制反色豎線和同色豎線,模擬光標(biāo)的 閃爍等等。
另外,模擬輸入/輸出單元還具有計(jì)算光標(biāo)位置的功能,隨著輸入的字符移動(dòng),可以自動(dòng) 計(jì)算光標(biāo)的位置,如輸入字符增加時(shí),計(jì)算出光標(biāo)向右移動(dòng)的位置,刪除輸入字符時(shí),計(jì)算 出光標(biāo)向左移動(dòng)等等,當(dāng)鼠標(biāo)點(diǎn)擊到模擬輸入/輸出單元時(shí),計(jì)算出光標(biāo)移動(dòng)到鼠標(biāo)點(diǎn)擊的位 置等等。
步驟103:主控模塊接收鼠標(biāo)點(diǎn)擊消息,并判斷鼠標(biāo)點(diǎn)擊的是模擬輸入Z輸出單元、輸入 模式切換鍵還是操作結(jié)束鍵,如果鼠標(biāo)點(diǎn)擊的是上述多個(gè)模擬輸入/輸出單元中的一個(gè)模擬輸 入/輸出單元,則執(zhí)行步驟104;如果鼠標(biāo)點(diǎn)擊的是輸入模式切換鍵,則執(zhí)行步驟108;如果 鼠標(biāo)點(diǎn)擊的是操作結(jié)束鍵,則執(zhí)行109;
歩驟104:主控模塊將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為鼠標(biāo)點(diǎn)擊的模擬輸入/輸出單元的焦點(diǎn)標(biāo)
j志;
步驟105:軟鍵盤模塊接收鼠標(biāo)點(diǎn)擊消息,并根據(jù)鼠標(biāo)點(diǎn)擊的位置確定對(duì)應(yīng)的字符,并
判斷字符是鍵盤字符還是狀態(tài)字符,如果為鍵盤字符,則執(zhí)行步驟106,如果為狀態(tài)字符,
則執(zhí)行步驟107;
其中,軟鍵盤模塊預(yù)先存儲(chǔ)有當(dāng)前軟鍵盤的坐標(biāo)和字符的映射關(guān)系,即鼠標(biāo)點(diǎn)擊屏幕上 的不同坐標(biāo)時(shí),對(duì)應(yīng)輸入不同的字符,該字符包括鍵盤字符和狀態(tài)字符。鍵盤字符包括字母
和數(shù)字,狀態(tài)字符是指除鍵盤字符以外的其它字符,如shift鍵、CapsLock鍵等等。
步驟106:軟鍵盤模塊緩存鍵盤字符,并向主控模塊發(fā)送軟鍵盤消息,主控模塊收到后,
根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì)應(yīng)的模擬輸入/輸出單元從緩存接收鍵盤字符,然后返回步驟
103;
步驟107:軟鍵盤模塊根據(jù)該狀態(tài)字符,對(duì)軟鍵盤進(jìn)行相應(yīng)的狀態(tài)處理,然后返回步驟103;
例如,狀態(tài)字符為CapsLock鍵,則軟鍵盤模塊重新繪制軟鍵盤,其中顯示的字母均為大 寫字母,通常新繪制的軟鍵盤的坐標(biāo)和字符的映射關(guān)系,與原來的軟鍵盤的坐標(biāo)和字符的映 射關(guān)系不同,繪制新的軟鍵盤后,后續(xù)的處理均根據(jù)該新軟鍵盤的坐標(biāo)和字符的映射關(guān)系進(jìn) 行處理。
步驟108:主控模塊將當(dāng)前軟鍵盤輸入模式更改為標(biāo)準(zhǔn)鍵盤輸入模式,然后返回步驟101。 步驟109:主控模塊和軟鍵盤模塊停止操作,流程結(jié)束。
步驟110:當(dāng)前為標(biāo)準(zhǔn)鍵盤輸入模式,主控模塊顯示多個(gè)標(biāo)準(zhǔn)輸入/輸出單元,并接收鼠
標(biāo)點(diǎn)擊消息,并判斷鼠標(biāo)點(diǎn)擊的是標(biāo)準(zhǔn)輸入/輸出單元、輸入模式切換鍵還是操作結(jié)束鍵,如
果是標(biāo)準(zhǔn)輸入/輸出單元,則執(zhí)行步驟111;如果是輸入模式切換鍵,則執(zhí)行步驟113;如果
是操作結(jié)束鍵,則執(zhí)行步驟109;
通常,在標(biāo)準(zhǔn)鍵盤輸入模式下,也可以隱藏模擬輸入/輸出單元,即不顯示模擬輸入/輸出 單元給用戶。
本實(shí)施例中,標(biāo)準(zhǔn)輸入/輸出單元和模擬輸入/輸出單元均為多個(gè),且數(shù)目相同, 一一對(duì)應(yīng), 而且每對(duì)具有對(duì)應(yīng)關(guān)系的標(biāo)準(zhǔn)輸入/輸出單元和模擬輸入/輸出單元,都具有共用的存儲(chǔ)區(qū),該 共用的存儲(chǔ)區(qū)用米存儲(chǔ)標(biāo)準(zhǔn)輸入/輸出單元和模擬輸入/輸出單元接收的字符,無論是標(biāo)準(zhǔn)輸入 /輸出單元,還是模擬輸入/輸出單元接收到用戶輸入的字符,都會(huì)保存在該共用的存儲(chǔ)區(qū)中。
例如,用戶通過標(biāo)準(zhǔn)鍵盤輸入了字符AB,然后又通過軟鍵盤輸入了字符CD,則該共用的存 儲(chǔ)區(qū)中會(huì)保存有字符ABCD。
步驟111:主控模塊將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為標(biāo)準(zhǔn)輸入/輸出單元的焦點(diǎn)標(biāo)志;
步驟112:主控模塊接收用戶通過物理鍵盤輸入的字符,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知 對(duì)應(yīng)的標(biāo)準(zhǔn)輸入/輸出單元接收該字符,然后返回步驟110;
本實(shí)施例中,除了上述在標(biāo)準(zhǔn)輸入模式下,主控模塊通知標(biāo)準(zhǔn)輸入/輸出單元接收用戶通 過物理鍵盤輸入字符的方式外,還可以采用在標(biāo)準(zhǔn)輸入模式下,軟鍵盤模塊接收用戶通過軟 鍵盤輸入的字符并發(fā)送給標(biāo)準(zhǔn)輸入/輸出單元的方式,即步驟U2可以由以下步驟替換
主控模塊顯示軟鍵盤,用戶通過鼠標(biāo)點(diǎn)擊該軟鍵盤,軟鍵盤模塊根據(jù)鼠標(biāo)點(diǎn)擊的位置確 定對(duì)應(yīng)的字符,并判斷對(duì)應(yīng)的字符是鍵盤字符還是狀態(tài)字符;如果對(duì)應(yīng)的字符為鍵盤字符, 則軟鍵盤模塊將鍵盤字符發(fā)送給主控模塊,主控模塊收到后,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,將鍵 盤字符發(fā)送給對(duì)應(yīng)的標(biāo)準(zhǔn)輸入/輸出單元;如果對(duì)應(yīng)的字符為狀態(tài)字符,則軟鍵盤模塊對(duì)軟鍵 盤進(jìn)行相應(yīng)的狀態(tài)處理;然后返回步驟110。步驟113:主控模塊將當(dāng)前標(biāo)準(zhǔn)鍵盤輸入模式更改為軟鍵盤輸入模式,然后返回步驟101。 進(jìn)一步地,上述方法還包括
主控模塊定期檢査當(dāng)前的輸入焦點(diǎn),并根據(jù)當(dāng)前的輸入焦點(diǎn)所在的輸入/輸出單元,將當(dāng) 前輸入焦點(diǎn)標(biāo)志設(shè)置為輸入/輸出單元的焦點(diǎn)標(biāo)志。例如,以預(yù)設(shè)的時(shí)間間隔觸發(fā)MFC定時(shí) 消息(WMjriMER),主控模塊收到該消息后,檢查當(dāng)前的輸入焦點(diǎn),并根據(jù)當(dāng)前的輸入焦 點(diǎn)所在的輸入/輸出單元,將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為輸入/輸出單元的焦點(diǎn)標(biāo)志。
另外,本實(shí)施例中,軟鍵盤模塊還可以隨時(shí)隨機(jī)修改已存儲(chǔ)的坐標(biāo)與字符的映射關(guān)系, 從而可以進(jìn)一步提高安全性。
本實(shí)施例中,主控模塊和軟鍵盤模塊可以分別由兩個(gè)MFC窗口類實(shí)現(xiàn),輸入模式的切換 可以由主控模塊窗口中的CheckBox控件來實(shí)現(xiàn),標(biāo)準(zhǔn)輸入/輸出單元可以為主控模塊窗口中 的Edit控件,模擬輸入/輸出單元可以是以不具有輸入功能的Button控件為基礎(chǔ)的自繪控件, 由于Button控件不具備輸入功能,因此模擬輸入/輸出單元不存在MFC所定義的輸入焦點(diǎn)。
另外,本實(shí)施例中,在軟鍵盤輸入模式下,除了上述軟鍵盤模塊接收用戶通過軟鍵盤輸 入字符的方式外,還可以采用在軟鍵盤輸入模式下,由主控模塊接收用戶通過物理鍵盤輸入 字符的方式,即步驟105 107還可以由以下步驟替換
主控模塊接收用戶通過物理鍵盤輸入的字符,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì)應(yīng)的模擬 輸入/輸出單元接收該字符。
本實(shí)施例中,主控模塊和軟鍵盤模塊可以處理的MFC消息有很多種,例如
OnMylnitDialog(); 〃對(duì)話框初始化,響應(yīng)WM—INITDIALOG:
OnMyOK(); /點(diǎn)擊"確定",響應(yīng)WM—COMMAND+IDOK
OnMyCancel(); 〃點(diǎn)擊"取消",響應(yīng)WM—COMMAND+ IDCANCEL
OnMyCheck(); 〃切換輸入模式,響應(yīng)WM—COMMAND+IDC—CHECK
OnMyChangeEdit(): 〃輸入密碼,響應(yīng)WM_COMMAND+IDC—EDIT:+EN_CHANGE
OnMyDrawItem(wParam,lParam); 〃控件自繪,用于模擬輸入輸出單元的繪制
OnMyLButtonDo職(wParam,lParam); 〃鼠標(biāo)點(diǎn)擊
OnMyShowWindow(); 〃界面刷新
OnMyPaint(); 〃界面繪制
OnMyDestroy 0; 〃界面銷毀,模塊停lh運(yùn)行
OnMyPowerBroadcast(); 〃系統(tǒng)休眠/喚醒
實(shí)施例2參見圖2,本發(fā)明實(shí)施例還提供了一種多輸入焦點(diǎn)的軟鍵盤輸入裝置,包括主控模塊200 和軟鍵盤模塊300;
主控模塊200包括-
標(biāo)準(zhǔn)輸入/輸出單元201,用于接收鼠標(biāo)點(diǎn)擊消息和用戶通過標(biāo)準(zhǔn)鍵盤輸入的字符; 模擬輸入/輸出單元202,用于接收鼠標(biāo)點(diǎn)擊消息和用戶通過軟鍵盤輸入的字符; 輸入焦點(diǎn)標(biāo)志設(shè)置單元203,用于當(dāng)標(biāo)準(zhǔn)輸入/輸出單元201被鼠標(biāo)點(diǎn)擊時(shí),將當(dāng)前輸入
焦點(diǎn)標(biāo)志設(shè)置為標(biāo)準(zhǔn)輸入/輸出單元201的焦點(diǎn)標(biāo)志,當(dāng)模擬輸入/輸出單元202被鼠標(biāo)點(diǎn)擊時(shí),
將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為模擬輸入/輸出單元202的焦點(diǎn)標(biāo)志;
軟鍵盤消息處理單元204,用于收到軟鍵盤模塊發(fā)來的軟鍵盤消息后,根據(jù)當(dāng)前輸入焦
點(diǎn)標(biāo)志,通知對(duì)應(yīng)的模擬輸入/輸出單元202接收軟鍵盤模塊緩存的鍵盤字符; 存儲(chǔ)單元205,用于存儲(chǔ)用戶通過標(biāo)準(zhǔn)鍵盤或軟鍵盤輸入的字符;
顯示單元206,用于在標(biāo)準(zhǔn)鍵盤輸入模式下,顯示標(biāo)準(zhǔn)輸入/輸出單元201,在軟鍵盤輸 入模式下,顯示軟鍵盤和模擬輸入/輸出單元202; 軟鍵盤模塊300包括
映射單元3(H,用于存儲(chǔ)坐標(biāo)與字符之間的映射關(guān)系,模擬輸入/輸出單元202與焦點(diǎn)標(biāo) 志的對(duì)應(yīng)關(guān)系,以及標(biāo)準(zhǔn)輸入/輸出單元201與焦點(diǎn)標(biāo)志的對(duì)應(yīng)關(guān)系,并在有鼠標(biāo)點(diǎn)擊消息時(shí), 根據(jù)鼠標(biāo)點(diǎn)擊的位置輸出相應(yīng)的字符;
緩存單元302,用于當(dāng)映射單元301輸出的為鍵盤字符時(shí),緩存鍵盤字符; 軟鍵盤消息發(fā)送單元303,用于當(dāng)緩存單元302緩存有鍵盤字符時(shí),向主控模塊200發(fā) 送軟鍵盤消息;
狀態(tài)處理單元304,用于當(dāng)映射單元301輸出的為狀態(tài)字符時(shí),對(duì)軟鍵盤進(jìn)行相應(yīng)的狀 態(tài)處理。
其中,模擬輸入/輸出單元202通常具有繪制功能,在用戶向模擬輸入/輸出單元202內(nèi)輸 入字符時(shí),該模擬輸入/輸出單元202還可以在顯示框內(nèi)繪制符號(hào),如圓點(diǎn)或者*,來模擬字 符輸入;另外,還可以在光標(biāo)區(qū)指定的位置畫一條反色豎線,模擬輸入光標(biāo);以固定的時(shí)間 間隔在光標(biāo)區(qū)指定的位置,輪流繪制反色豎線和同色豎線,模擬光標(biāo)的閃爍等等。
進(jìn)一步地,主控模塊200還包括
切換單元,用于當(dāng)模擬輸入/輸出單元202接收的鼠標(biāo)點(diǎn)擊消息為輸入模式切換消息時(shí), 將當(dāng)前軟鍵盤輸入模式更改為標(biāo)準(zhǔn)鍵盤輸入模式;當(dāng)標(biāo)準(zhǔn)輸入/輸出單元201接收的鼠標(biāo)點(diǎn)擊 消息為輸入模式切換消息時(shí),將當(dāng)前標(biāo)準(zhǔn)鍵盤輸入模式更改為軟鍵盤輸入模式。本實(shí)施例中,主控模塊200還包括
判斷單元,用于判斷當(dāng)前輸入模式是否為軟鍵盤輸入模式;
第一通知單元,用于當(dāng)判斷單元判斷出當(dāng)前輸入模式為軟鍵盤輸入模式時(shí),通知顯示單 元206顯示軟鍵盤和模擬輸入/輸出單元202;
第二通知單元,用于當(dāng)判斷單元判斷出當(dāng)前輸入模式為標(biāo)準(zhǔn)鍵盤輸入模式時(shí),通知顯示 單元206顯示標(biāo)準(zhǔn)輸入/輸出單元201 。
本實(shí)施例中,當(dāng)主控模塊200包括判斷單元、第一通知單元和第二通知單元時(shí),主控模 塊200可以在標(biāo)準(zhǔn)鍵盤輸入模式下,接收用戶通過物理鍵盤輸入的字符,即主控模塊200還 可以包括
第一標(biāo)準(zhǔn)鍵盤字符接收單元,用于在顯示單元206根據(jù)第二通知單元發(fā)來的通知顯示標(biāo) 準(zhǔn)輸入/輸出單元201后,接收用戶通過物理鍵盤輸入的字符,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知 對(duì)應(yīng)的標(biāo)準(zhǔn)輸入/輸出單元201接收輸入的字符。
本實(shí)施例中的第二通知單元可以具體用于當(dāng)判斷單元判斷出當(dāng)前輸入模式為標(biāo)準(zhǔn)鍵盤輸 入模式時(shí),通知顯示單元206顯示標(biāo)準(zhǔn)輸入/輸出單元201,并顯示軟鍵盤;相應(yīng)地,軟鍵盤 模塊300還包括
軟鍵盤字符發(fā)送單元,用于在標(biāo)準(zhǔn)鍵盤輸入模式下,將映射單元301輸出的鍵盤字符發(fā)
送給主控模塊200;
并且,主控模塊200還包括
軟鍵盤字符接收單元,用于接收到軟鍵盤模塊300發(fā)來的所述鍵盤字符后,根據(jù)當(dāng)前輸 入焦點(diǎn)標(biāo)志,將該鍵盤字符發(fā)送給對(duì)應(yīng)的標(biāo)準(zhǔn)輸入/輸出單元201 。
另外,本實(shí)施例中,在軟鍵盤輸入模式下,主控模塊200還可以接收用戶通過物理鍵盤 輸入的字符,即主控模塊200還包括-
第二標(biāo)準(zhǔn)鍵盤字符接收單元,用于在軟鍵盤輸入模式下,接收用戶通過物理鍵盤輸入的 字符,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì)應(yīng)的模擬輸入/輸出單元202接收該字符。
本實(shí)施例中,主控模塊200還包括
檢查單元,用于定期檢査當(dāng)前的輸入焦點(diǎn),并根據(jù)當(dāng)前的輸入焦點(diǎn)所在的輸入/輸出單元, 將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為輸入/輸出單元的焦點(diǎn)標(biāo)志。例如,以預(yù)設(shè)的時(shí)間間隔觸發(fā)MFC 定時(shí)消息(WMjriMER),檢査單元收到該消息后,檢查當(dāng)前的輸入焦點(diǎn),并根據(jù)當(dāng)前的輸 入焦點(diǎn)所在的輸入/輸出單元,將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為輸入/輸出單元的焦點(diǎn)標(biāo)志。
進(jìn)一步地,軟鍵盤模塊300還包括置亂單元,用于隨機(jī)修改映射單元301存儲(chǔ)的坐標(biāo)和字符的映射關(guān)系。 本實(shí)施例中的標(biāo)準(zhǔn)輸入/輸出單元201可以為具有字符輸入功能的MFC控件。 進(jìn)一步地,模擬輸入A俞出單元202還包括
光標(biāo)計(jì)算子單元,用于計(jì)算光標(biāo)的位置。如隨著輸入的字符移動(dòng),自動(dòng)計(jì)算光標(biāo)的位置, 輸入字符增加時(shí),計(jì)算出光標(biāo)向右移動(dòng)的位置,刪除輸入字符時(shí),'計(jì)算出光標(biāo)向左移動(dòng)的位 置等等,當(dāng)鼠標(biāo)點(diǎn)擊到模擬輸入/輸出單元202時(shí),計(jì)算出光標(biāo)移動(dòng)到鼠標(biāo)點(diǎn)擊的位置等等。
本實(shí)施例中,模擬輸入/輸出單元202還包括
繪圖子單元,用于繪制模擬輸入/輸出單元202的外觀。
本實(shí)施例中,主控模塊200和軟鍵盤模塊300可以分別由兩個(gè)MFC窗口類實(shí)現(xiàn),切換單 元可以由主控模塊200窗口中的CheckBox控件來實(shí)現(xiàn),標(biāo)準(zhǔn)輸入/輸出單元201可以為主控 模塊200窗口中的Edit控件,模擬輸入/輸出單元202可以是以不具有輸入功能的Button控 件為基礎(chǔ)的自繪控件,由于Button控件不具備輸入功能,因此模擬輸入/輸出單元202不存在 MFC所定義的輸入焦點(diǎn)。
本發(fā)明實(shí)施例解決了現(xiàn)有技術(shù)的不足,多個(gè)輸出控件共用一個(gè)軟鍵盤,結(jié)構(gòu)更簡(jiǎn)單,運(yùn) 行更穩(wěn)定,從而更好地滿足實(shí)際需要,提供更完善而安全的人機(jī)交互體驗(yàn)。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之 內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述裝置包括主控模塊和軟鍵盤模塊;所述主控模塊包括標(biāo)準(zhǔn)輸入/輸出單元,用于接收鼠標(biāo)點(diǎn)擊消息和用戶通過標(biāo)準(zhǔn)鍵盤輸入的字符;模擬輸入/輸出單元,用于接收鼠標(biāo)點(diǎn)擊消息和用戶通過軟鍵盤輸入的字符;輸入焦點(diǎn)標(biāo)志設(shè)置單元,用于當(dāng)所述標(biāo)準(zhǔn)輸入/輸出單元被鼠標(biāo)點(diǎn)擊時(shí),將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述標(biāo)準(zhǔn)輸入/輸出單元的焦點(diǎn)標(biāo)志,當(dāng)所述模擬輸入/輸出單元被鼠標(biāo)點(diǎn)擊時(shí),將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述模擬輸入/輸出單元的焦點(diǎn)標(biāo)志;軟鍵盤消息處理單元,用于收到所述軟鍵盤模塊發(fā)來的軟鍵盤消息后,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì)應(yīng)的模擬輸入/輸出單元接收所述軟鍵盤模塊緩存的鍵盤字符;存儲(chǔ)單元,用于存儲(chǔ)用戶通過標(biāo)準(zhǔn)鍵盤或軟鍵盤輸入的字符;顯示單元,用于在標(biāo)準(zhǔn)鍵盤輸入模式下,顯示標(biāo)準(zhǔn)輸入/輸出單元,在軟鍵盤輸入模式下,顯示軟鍵盤和模擬輸入/輸出單元;所述軟鍵盤模塊包括映射單元,用于存儲(chǔ)坐標(biāo)與字符之間的映射關(guān)系,模擬輸入/輸出單元與焦點(diǎn)標(biāo)志的對(duì)應(yīng)關(guān)系,以及標(biāo)準(zhǔn)輸入/輸出單元與焦點(diǎn)標(biāo)志的對(duì)應(yīng)關(guān)系,并在有鼠標(biāo)點(diǎn)擊消息時(shí),根據(jù)鼠標(biāo)點(diǎn)擊的位置輸出相應(yīng)的字符;緩存單元,用于當(dāng)所述映射單元輸出的為鍵盤字符時(shí),緩存所述鍵盤字符;軟鍵盤消息發(fā)送單元,用于當(dāng)所述緩存單元緩存有鍵盤字符時(shí),向所述主控模塊發(fā)送軟鍵盤消息;狀態(tài)處理單元,用于當(dāng)所述映射單元輸出的為狀態(tài)字符時(shí),對(duì)所述軟鍵盤進(jìn)行相應(yīng)的狀態(tài)處理。
2. 根據(jù)權(quán)利要求l所述的多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述主控模塊還 包括切換單元,用于當(dāng)所述模擬輸入/輸出單元接收的鼠標(biāo)點(diǎn)擊消息為輸入模式切換消息時(shí), 將當(dāng)前軟鍵盤輸入模式更改為標(biāo)準(zhǔn)鍵盤輸入模式;當(dāng)所述標(biāo)準(zhǔn)輸入/輸出單元接收的鼠標(biāo)點(diǎn)擊 消息為輸入模式切換消息時(shí),將當(dāng)前標(biāo)準(zhǔn)鍵盤輸入模式更改為軟鍵盤輸入模式。
3. 根據(jù)權(quán)利要求l所述的多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述主控模塊還 包括判斷單元,用于判斷當(dāng)前輸入模式是否為軟鍵盤輸入模式;第一通知單元,用于當(dāng)所述判斷單元判斷出當(dāng)前輸入模式為軟鍵盤輸入模式時(shí),通知所 述顯示單元顯示所述軟鍵盤和模擬輸入/輸出單元;第二通知單元,用于當(dāng)所述判斷單元判斷出當(dāng)前輸入模式為標(biāo)準(zhǔn)鍵盤輸入模式時(shí),通知 所述顯示單元顯示所述標(biāo)準(zhǔn)輸入/輸出單元。
4. 根據(jù)權(quán)利要求3所述的多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述主控模塊還 包括第一標(biāo)準(zhǔn)鍵盤字符接收單元,用于在所述顯示單元根據(jù)所述第二通知單元發(fā)來的通知顯 示所述標(biāo)準(zhǔn)輸入/輸出單元后,接收用戶通過物理鍵盤輸入的字符,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志, 通知對(duì)應(yīng)的標(biāo)準(zhǔn)輸入/輸出單元接收所述字符。
5. 根據(jù)權(quán)利要求3所述的多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述第二通知單 元具體用于當(dāng)所述判斷單元判斷出當(dāng)前輸入模式為標(biāo)準(zhǔn)鍵盤輸入模式時(shí),通知所述顯示單元 顯示所述標(biāo)準(zhǔn)輸入/輸出單元,并顯示所述軟鍵盤;所述軟鍵盤模塊還包括-軟鍵盤字符發(fā)送單元,用于在標(biāo)準(zhǔn)鍵盤輸入模式下,將所述映射單元輸出的鍵盤字符發(fā) 送給所述主控模塊;所述主控模塊還包括軟鍵盤字符接收單元,用于接收到所述軟鍵盤模塊發(fā)來的所述鍵盤字符后,根據(jù)當(dāng)前輸 入焦點(diǎn)標(biāo)志,將所述鍵盤字符發(fā)送給對(duì)應(yīng)的標(biāo)準(zhǔn)輸入/輸出單元。
6. 根據(jù)權(quán)利要求l所述的多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述主控模塊還 包括第二標(biāo)準(zhǔn)鍵盤字符接收單元,用于在軟鍵盤輸入模式下,接收用戶通過物理鍵盤輸入的 字符,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì)應(yīng)的模擬輸入/輸出單元接收所述字符。
7. 根據(jù)權(quán)利要求1所述的多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述主控模塊還 包括檢查單元,用于定期檢查當(dāng)前的輸入焦點(diǎn),并根據(jù)所述當(dāng)前的輸入焦點(diǎn)所在的輸入/輸出 單元,將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述輸入/輸出單元的焦點(diǎn)標(biāo)志。
8. 根據(jù)權(quán)利要求1所述的多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述軟鍵盤模塊 還包括置亂單元,用于隨機(jī)修改所述映射單元存儲(chǔ)的坐標(biāo)和字符的映射關(guān)系。
9. 根據(jù)權(quán)利要求1所述的多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述標(biāo)準(zhǔn)輸入/ 輸出單元為具有字符輸入功能的MFC控件。
10. 根據(jù)權(quán)利要求1所述的多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述模擬輸入/ 輸出單元還包括-光標(biāo)計(jì)算子單元,用于計(jì)算光標(biāo)的位置。
11. 根據(jù)權(quán)利要求1所述的多輸入焦點(diǎn)的軟鍵盤輸入裝置,其特征在于,所述模擬輸入/ 輸出單元還包括繪圖子單元,用于繪制所述模擬輸入/輸出單元的外觀。
12. —種多輸入焦點(diǎn)的軟鍵盤輸入方法,其特征在于,所述方法包括 在軟鍵盤輸入模式下,在指定的區(qū)域內(nèi),顯示軟鍵盤和多個(gè)模擬輸入/輸出單元,并為每個(gè)模擬輸入/輸出單元設(shè)置對(duì)應(yīng)的焦點(diǎn)標(biāo)志;主控模塊接收到用戶點(diǎn)擊所述模擬輸入/輸出單元的鼠標(biāo)點(diǎn)擊消息,將當(dāng)前輸入焦點(diǎn)標(biāo)志 設(shè)置為所述模擬輸入/輸出單元的焦點(diǎn)標(biāo)志;軟鍵盤模塊接收到用戶點(diǎn)擊所述軟鍵盤的鼠標(biāo)點(diǎn)擊消息,根據(jù)鼠標(biāo)點(diǎn)擊的位置確定對(duì)應(yīng) 的字符,并判斷所述字符是鍵盤字符還是狀態(tài)字符;如果所述字符為鍵盤字符,則所述軟鍵盤模塊緩存所述鍵盤字符,并向所述主控模塊發(fā) 送軟鍵盤消息,所述主控模塊收到所述軟鍵盤消息后,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì)應(yīng)的 模擬輸入/輸出單元從所述緩存接收所述鍵盤字符;如果所述字符為狀態(tài)字符,則所述軟鍵盤模塊對(duì)所述軟鍵盤進(jìn)行相應(yīng)的狀態(tài)處理。
13. 根據(jù)權(quán)利要求12所述的多輸入焦點(diǎn)的軟鍵盤輸入方法,其特征在于,所述方法還包括當(dāng)所述主控模塊接收到鼠標(biāo)點(diǎn)擊消息,且所述鼠標(biāo)點(diǎn)擊消息為輸入模式切換消息時(shí),所 述主控模塊將當(dāng)前軟鍵盤輸入模式更改為標(biāo)準(zhǔn)鍵盤輸入模式。
14. 根據(jù)權(quán)利要求12所述的多輸入焦點(diǎn)的軟鍵盤輸入方法,其特征在于,所述在指定的區(qū)域內(nèi),顯示軟鍵盤和多個(gè)模擬輸入/輸出單元之前,還包括 主控模塊判斷當(dāng)前輸入模式是否為軟鍵盤輸入模式 ,如果是,則執(zhí)行在軟鍵盤輸入模式下,在指定的區(qū)域內(nèi),顯示軟鍵盤和多個(gè)模擬輸入/輸 出單元的步驟;否則,所述主控模塊顯示多個(gè)標(biāo)準(zhǔn)輸入/輸出單元并接收鼠標(biāo)點(diǎn)擊消息,并判斷鼠標(biāo)點(diǎn)擊 的是否為所述標(biāo)準(zhǔn)輸入/輸出單元,如果是,則所述主控模塊將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述 標(biāo)準(zhǔn)輸入/輸出單元的焦點(diǎn)標(biāo)志。
15. 根據(jù)權(quán)利要求14所述的多輸入焦點(diǎn)的軟鍵盤輸入方法,其特征在于,所述主控模塊將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述標(biāo)準(zhǔn)輸入/輸出單元的焦點(diǎn)標(biāo)志之后,還包括所述主控模塊接收用戶通過物理鍵盤輸入的字符,根據(jù)所述當(dāng)前輸入焦點(diǎn)標(biāo)志,通知對(duì) 應(yīng)的標(biāo)準(zhǔn)輸入/輸出單元接收所述字符。
16. 根據(jù)權(quán)利要求14所述的多輸入焦點(diǎn)的軟鍵盤輸入方法,其特征在于,所述主控模塊將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述標(biāo)準(zhǔn)輸入/輸出單元的焦點(diǎn)標(biāo)志之后,還包括 所述主控模塊顯示軟鍵盤,并且用戶通過鼠標(biāo)點(diǎn)擊所述軟鍵盤;所述軟鍵盤模塊根據(jù)鼠標(biāo)點(diǎn)擊的位置確定對(duì)應(yīng)的字符,并判斷所述字符是鍵盤字符還是 狀態(tài)字符;如果所述字符為鍵盤字符,則所述軟鍵盤模塊將所述鍵盤字符發(fā)送給所述主控模塊,所 述主控模塊收到后,根據(jù)當(dāng)前輸入焦點(diǎn)標(biāo)志,將所述鍵盤字符發(fā)送給對(duì)應(yīng)的標(biāo)準(zhǔn)輸入/輸出單 元;如果所述字符為狀態(tài)字符,則所述軟鍵盤模塊對(duì)所述軟鍵盤進(jìn)行相應(yīng)的狀態(tài)處理。
17. 根據(jù)權(quán)利要求14所述的多輸入焦點(diǎn)的軟鍵盤輸入方法,其特征在于,所述判斷鼠標(biāo) 點(diǎn)擊的是否為標(biāo)準(zhǔn)輸入/輸出單元之后,還包括 '如果所述鼠標(biāo)點(diǎn)擊消息為輸入模式切換消息,則所述主控模塊將當(dāng)前標(biāo)準(zhǔn)鍵盤輸入模式 更改為軟鍵盤輸入模式。
18. 根據(jù)權(quán)利要求12所述的多輸入焦點(diǎn)的軟鍵盤輸入方法,其特征在于,所述將當(dāng)前輸 入焦點(diǎn)標(biāo)志設(shè)置為所述模擬輸入/輸出單元的焦點(diǎn)標(biāo)志之后,還包括:所述主控模塊接收所述用戶通過物理鍵盤輸入的字符,根據(jù)所述當(dāng)前輸入焦點(diǎn)標(biāo)志,通 知對(duì)應(yīng)的模擬輸入/輸出單元接收所述字符。
19. 根據(jù)權(quán)利要求12所述的多輸入焦點(diǎn)的軟鍵盤輸入方法,其特征在于,所述方法還包括所述主控模塊定期檢査當(dāng)前的輸入焦點(diǎn),并根據(jù)所述當(dāng)前的輸入焦點(diǎn)所在的輸入/輸出單 元,將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為所述輸入/輸出單元的焦點(diǎn)標(biāo)志。
20. 根據(jù)權(quán)利要求12所述的多輸入焦點(diǎn)的軟鍵盤輸入方法,其特征在于,所述方法還包括所述軟鍵盤模塊隨機(jī)修改已有的鼠標(biāo)點(diǎn)擊位置與字符的映射關(guān)系。
全文摘要
本發(fā)明公開了一種多輸入焦點(diǎn)的軟鍵盤輸入裝置和方法,屬于信息安全領(lǐng)域。所述裝置包括主控模塊和軟鍵盤模塊。所述方法包括軟鍵盤輸入模式下,顯示軟鍵盤和多個(gè)模擬輸入/輸出單元,并設(shè)置對(duì)應(yīng)的焦點(diǎn)標(biāo)志;用戶點(diǎn)擊模擬輸入/輸出單元,主控模塊將當(dāng)前輸入焦點(diǎn)標(biāo)志設(shè)置為該單元的焦點(diǎn)標(biāo)志;用戶點(diǎn)擊軟鍵盤,軟鍵盤模塊根據(jù)光標(biāo)位置確定對(duì)應(yīng)的字符,如果為鍵盤字符,則軟鍵盤模塊緩存該鍵盤字符,并向主控模塊發(fā)送軟鍵盤消息,主控模塊收到后通知當(dāng)前輸入焦點(diǎn)標(biāo)志對(duì)應(yīng)的模擬輸入/輸出單元接收該鍵盤字符;如果為狀態(tài)字符,則軟鍵盤模塊對(duì)軟鍵盤進(jìn)行相應(yīng)的狀態(tài)處理。本發(fā)明提高了軟鍵盤輸入的安全性。
文檔編號(hào)G06F3/048GK101414242SQ20081022688
公開日2009年4月22日 申請(qǐng)日期2008年11月19日 優(yōu)先權(quán)日2008年11月19日
發(fā)明者于華章, 舟 陸 申請(qǐng)人:北京飛天誠信科技有限公司