找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4238|回复: 0

[其它源码] Check其他的window是否有开启IME,前题是已取得该window的hwnd

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2010-8-8 14:59:43 | 显示全部楼层 |阅读模式
Check其他的window是否有开启IME,前题是已取得该window的hwnd

Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function ImmIsIME Lib "imm32.dll" (ByVal hkl As Long) As Long
Private Declare Function GetKeyboardLayout Lib "user32" _
        (ByVal dwLayout As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" _
        (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private hwnd5 As Long

Private Sub Command1_Click()
Dim hthr As Long
Dim pid As Long, hkb5 As Long
hthr = GetWindowThreadProcessId(hwnd5, pid) '取得hwnd5所在的threadId
hkb5 = GetKeyboardLayout(hthr) '取得该threadId的keyboardLayout
If ImmIsIME(hkb5) = 1 Then
   Debug.Print "IME is Open"
Else
   Debug.Print "Ime is Close"
End If
End Sub

Private Sub Form_Load()
Me.Show
Shell "c:\windows\notepad.exe", vbNormalFocus
hwnd5 = GetForegroundWindow()
End Sub
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表