W-ZERO3[es] で、入力モードを _1 に変更する方法。
W-ZERO3[es] で、入力モードを _1 に変更する方法は?と、MSDNフォーラムで質問があったので答えてみた。ちなみに、moneymemoの金額入力にも使ってる方法(W-ZERO3[es]かどうかの判定にも使ってる)。
他にも需要があるかもしれないので、こっちにも転載してみる。
なお、レジストリいじると変更できる、ってのは偉大なる先達の力に寄る物。感謝してもしきれない。
具体的には HKEY_CURRENT_USER\Software\Sharp\PhoneStatus の Status22 の値を変更するとよいみたい。「あ」から「_1」まで、0〜7で設定する。
HKEY_CURRENT_USER\Software\Sharp\PhoneStatus周りは色々と楽しいことができるようなので、検索とかしてみると良いかも。
…ところで、HT1110とか出たら、またこの辺りの方法が別の物になってるんだろうか。なってるだろうなあ。
Private org_mode As Integer <Runtime.InteropServices.DllImport("coredll")> _ Private Shared Function ImmGetContext( _ ByVal hWnd As IntPtr) As IntPtr End Function <Runtime.InteropServices.DllImport("coredll")> _ Private Shared Function ImmReleaseContext( _ ByVal hWnd As IntPtr, _ ByVal hIMC As IntPtr) As Boolean End Function <Runtime.InteropServices.DllImport("coredll")> _ Private Shared Function ImmSetOpenStatus( _ ByVal himc As IntPtr, _ ByVal fOpen As Integer) As Integer End Function Private Sub changeImeModeNum() Dim context As IntPtr = ImmGetContext(Handle) Try org_mode = CInt(Microsoft.Win32.Registry.GetValue("HKEY_CURRENT_USER\Software\Sharp\PhoneStatus", "Status22", Nothing)) Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Software\Sharp\PhoneStatus", "Status22", 7) Dim conv As Integer = 0 Dim sentence As Integer = 0 ImmSetOpenStatus(context, 0) Finally ImmReleaseContext(handle, context) End Try End Sub Private Sub restoreImeMode() Dim context As IntPtr = ImmGetContext(Handle) Try Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Software\Sharp\PhoneStatus", "Status22", org_mode) Dim conv As Integer = 0 Dim sentence As Integer = 0 ImmSetOpenStatus(context, 1) Finally ImmReleaseContext(Handle, context) End Try End Sub Private Sub TextBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.GotFocus changeImeModeNum() End Sub Private Sub TextBox2_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.LostFocus restoreImeMode() End Sub