• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用VB讀取和控制Windows的中文輸入法

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 75次 | 進入軟件測試論壇討論

    領測軟件測試網 object.IMEMode [= value]  

    value 的設置值包括:  

    設置 描述  
    0 無(缺省設置)。該值表明"無 IME 控制"。當 IMEMode 屬性被設置為 0 時,可以使用  
    IMEStatus 函數確定當前的 IME 狀態。  
    1 IME 打開。該數值表明 IME 已經被打開,可以輸入漢字或日文字符。該設置僅對日文、簡體漢
    字和繁體漢字 IME 有效。  
    2 IME 關閉。該模式表明 IME 被關閉,因此對象將處于英文輸入模式。該設置僅對日文、簡體漢
    字和繁體漢字 IME 有效。  
    3 IME 被禁止。該模式類似于 IMEMode = 2,區別僅在于數值 2 沒有禁止 IME。在本設置下,用戶
    不能夠通過鍵盤將 IME 打開,而且 IME 浮動窗口被隱藏。該設置僅對日文 IME 有效。  
    4 日文平假名雙字節字符(DBC)。該設置僅對日文 IME 有效。  
    5 日文片假名 DBC. 這些設置僅對日文 IME 有效。  
    6 日文片假名單字節字符 (SBC)。這些設置僅對日文 IME 有效。  
    7 字母數字 DBC。該些設置僅對日文 IME 有效。  
    8 字母數字 SBC。該些設置僅對日文 IME 有效。  
    9 Hangeul DBC。該些設置僅對朝鮮語 IME 有效。  
    10 Hangeul SBC。該些設置僅對朝鮮語 IME 有效。  

    下面還有一篇相關內容的文章  
    資料來源:碧波山莊Visual Basic http://ctsvb.126.com  
    VB讀取和控制Windows的中文輸入法  
    在Windows中我們可以用"Ctrl+Shift"鍵來調入或切換中文輸入法,但是這樣做每次都是使位于
    輸入法列表頂端的那個輸入法首先被調用。通常我們都要連續按好幾次"Ctrl+Shift"才能將習慣
    的輸入法調出。我編制了一段小程序,通過它可以把任意一個輸入法放在輸入法列表的頂端。  
      它的原理是:使用LoadKeyboardLayout函數可以改變輸入法的順序,只要在第一個參數中傳遞
    目標輸入法的KeyboardlayoutName,第二個參數用KLF_REORDER就可以了。  
      例如,aa = LoadKeyboardLayout(″00000409″, KLF_REORDER) 使英文變成第一。那怎樣獲得
    KeyboardlayoutName呢?因為使用GetKeyboardLayoutname可以返回當前輸入法的
    KeyboardlayoutName,所以我們可以先用GetKeyboardLayoutList 函數來取得所有輸入法,再用
    activateKeyboardlayout()函數設置當前輸入法,最后就可以得到它的KeyboardlayoutName了。具體步
    驟如下:  
      打開VB后選擇標準的EXE文檔,在Form1上添加一個Combobox和一個command控件,輸
    入以下程序。  
      ′以下的API函數用于輸入法操作  
      Private Declare Function GetKeyboardLayoutList Lib ″user32″ _  
      (ByVal nBuff As Long, lpList As Long) As Long  
      Private Declare Function ImmGetDescription Lib ″imm32.dll″ _  
      Alias ″ImmGetDescriptionA″ (ByVal hkl As Long, _  
      ByVal lpsz As String, ByVal uBufLen As Long) As Long  
      Private Declare Function ImmIsIME Lib ″imm32.dll″ (ByVal hkl As Long) As Long  
      Private Declare Function ActivateKeyboardLayout Lib ″user32″ _  
      (ByVal hkl As Long, ByVal flags As Long) As Long  
      Private Declare Function GetKeyboardLayout Lib ″user32″ (ByVal dwLayout As Long)As Long  
      Private Declare Function GetKeyboardLayoutName Lib ″user32″ Alias _  
      ″GetKeyboardLayoutNameA″ (ByVal pwszKLID As String) As Long  
      Private Declare Function LoadKeyboardLayout Lib ″user32″ Alias ″LoadKeyboardLayoutA″ _  
      (ByVal pwszKLID As String, ByVal flags As Long) As Long  
      Const KLF_REORDER = &H8  
      Private NoOfKBDLayout As Long, i As Long, j As Long  
      Private hKB(24) As Long, BuffLen As Long  
      Private Buff As String  
      Private RetStr As String  
      Private RetCount As Long  
      Private kln As String  
      Private Sub Command1_Click()  
      If Combo1.ListIndex = -1 Then′如果用戶尚未選擇輸入法,顯示出錯信息  
      MsgBox ″請先選擇一個輸入法″  
      Exit Sub  
      End If  
      ′改變輸入法順序  
      kln = String(8, 0)  
      ActivateKeyboardLayout hKB(Combo1.ListIndex), 0  
      res = GetKeyboardLayoutName(kln)  
      res = LoadKeyboardLayout(kln, KLF_REORDER)  
      ActivateKeyboardLayout hCurKBDLayout, 0  
      End Sub  
      Private Sub Form_Load()  
      Buff = String(255, 0)  
      hCurKBDLayout = GetKeyboardLayout(0) ′取得目前的輸入法  
      NoOfKBDLayout = GetKeyboardLayoutList(25, hKB(0)) ′取得所有輸入法  
      ′ReDim layoutlist(NoOfKBDLayout) As String  
      For i = 1 To NoOfKBDLayout  
      If ImmIsIME(hKB(i - 1)) = 1 Then ′中文輸入法  
      BuffLen = 255  
      RetCount = ImmGetDescription(hKB(i - 1), Buff, BuffLen)  
      RetStr = Left(Buff, RetCount)  
      Combo1.AddItem RetStr  
      Else  
      RetStr = ″English (American)″ ′英文輸入法  
      Combo1.AddItem RetStr  
      End If  
      Next  
      ActivateKeyboardLayout hCurKBDLayout, 0 ′恢復原來的輸入法  
      End Sub  
      運行后,在combobox中選擇目標輸入法,按下command即可。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>