Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 2606|回复: 15
打印 上一主题 下一主题

请问要怎样测试用户有没有在打字?

[复制链接]

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

跳转到指定楼层
1#
发表于 2010-11-22 09:54 AM |只看该作者 |倒序浏览
请问什么API可以知道用户有没有在打字?(有没有 I )
打字不是有那个I这样的东西,怎样测试他有没有存在?
我不懂要怎样google!
应该说有没有focus textbox这样的东西

那个textbox不是在这个app里面,在另外一边
我想知道用户有没有在textbox打字,而且是游戏的textbox




收藏收藏0

6

主题

0

好友

397

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

2#
发表于 2010-11-22 01:58 PM |只看该作者
hook keyboard + hwnd 或许就是你要的


回复

使用道具 举报

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

3#
发表于 2010-11-23 09:13 AM |只看该作者
回复 2# weeming21


    不是探测用户在打什么!是测试用户有没有focus住像textbox这样的东西!也就是会出现 I 这样的东西


回复

使用道具 举报

6

主题

0

好友

397

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

4#
发表于 2010-11-23 11:43 AM |只看该作者
回复 3# goodhermit95

哦,那就更简单了,找出当前hwnd作对比就可以了


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

5#
发表于 2010-11-23 01:58 PM |只看该作者
回复  weeming21


    不是探测用户在打什么!是测试用户有没有focus住像textbox这样的东西!也就是会出 ...
goodhermit95 发表于 2010-11-23 09:13 AM



你該把你的 application 類型描述清楚,是在做 socket 方面的聊天軟體還是 local 性质等


回复

使用道具 举报

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

6#
发表于 2010-11-23 08:51 PM |只看该作者
他是一个你按a就会输入b的程序,但是在打字的时候会自动暂停,不然会混乱


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

7#
发表于 2010-11-23 10:35 PM |只看该作者
他是一个你按a就会输入b的程序,但是在打字的时候会自动暂停,不然会混乱
goodhermit95 发表于 2010-11-23 08:51 PM


没停在輸入框打字,那怎么會讓按 a 變成 b 呢?
不管你要寫些甚么,你的問題點就是要取得另一個應用程式是否停留在輸入框
這样就麻煩你自己去 msdn 查询了解 GetGUIThreadInfo 這個 windows api 能够提供你些甚么資訊


回复

使用道具 举报

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

8#
发表于 2010-11-24 12:12 PM |只看该作者
谢谢回答,我去试试看
不是a变b,而是输入a会直接输入b
没有打字的时候要有这样的效果,但是打字的时候就不可以了,因为你输入aaaaa就会变ababababab


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

9#
发表于 2010-11-24 12:31 PM |只看该作者
谢谢回答,我去试试看
不是a变b,而是输入a会直接输入b
没有打字的时候要有这样的效果,但是打字的时候就不 ...
goodhermit95 发表于 2010-11-24 12:12 PM



在本身的程式中就直接监听欄位是否被 focus 就好啦


回复

使用道具 举报

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

10#
发表于 2010-11-25 12:10 PM |只看该作者
我找了很多东西还是看不懂!
MSDN写得很简略
我上网找了这个


  1. Public Class Form1

  2. Private Declare Function GetForegroundWindow Lib "user32" () As Integer
  3. Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal
  4. hWnd As Integer, ByRef lpdwProcessId As Integer) As Integer
  5. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
  6. (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer,
  7. ByVal lParam As Integer) As Integer
  8. Private Declare Function GetGUIThreadInfo Lib "user32.dll" (ByVal
  9. idThread As Integer, ByRef pgui As GUITHREADINFO) As Integer
  10. Private Const WM_COPY As Integer = &H301
  11. Private Structure RECT
  12. Dim Left_Renamed As Integer
  13. Dim Top As Integer
  14. Dim Right_Renamed As Integer
  15. Dim Bottom As Integer
  16. End Structure
  17. Private Structure GUITHREADINFO
  18. Dim cbSize As Integer
  19. Dim flags As Integer
  20. Dim hwndActive As Integer
  21. Dim hwndFocus As Integer
  22. Dim hwndCapture As Integer
  23. Dim hwndMenuOwner As Integer
  24. Dim hwndMoveSize As Integer
  25. Dim hwndCaret As Integer
  26. Dim rcCaret As RECT
  27. End Structure

  28. Private Function GetFocusWindow() As Integer
  29. Dim h As Integer
  30. Dim ThreadID As Integer
  31. Dim gui As GUITHREADINFO
  32. Dim ret As Integer

  33. h = GetForegroundWindow()
  34. Console.WriteLine("GetFocusWindow: ForegroundWindow = " & Hex(h))
  35. ThreadID = GetWindowThreadProcessId(h, 0)
  36. gui.cbSize = Len(gui)
  37. ret = GetGUIThreadInfo(ThreadID, gui)
  38. If ret = 0 Then
  39. Console.WriteLine("GetFocusWindow: GetGUIThreadInfo failed.
  40. LastDllError = " & Err.LastDllError)
  41. Exit Function
  42. End If
  43. Console.WriteLine("GetFocusWindow: hwndFocus = " &
  44. Hex(gui.hwndFocus))
  45. GetFocusWindow = gui.hwndFocus
  46. End Function

  47. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
  48. System.EventArgs) Handles Timer1.Tick
  49. Me.Text = Hex(GetFocusWindow())
  50. SendCopyToWindow(GetFocusWindow())
  51. TextBox1.Text = Clipboard.GetText
  52. End Sub

  53. Private Sub SendCopyToWindow(ByVal hWnd As Integer)
  54. SendMessage(hWnd, WM_COPY, 0, 0)
  55. End Sub

  56. End Class

复制代码
GUITHREADINFO 是 GUI 的类型吗?
这个API他return boolean,true的话就是那个类型,false的话就不是?


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-29 08:17 AM , Processed in 0.105419 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部