µ±Ç°Î»Öà : 145zÓÎÏ·Õ¾¡¡|¡¡ÈÈѪ´«Ææ¡¡|¡¡¼¼Êõ½Ì³Ì¡¡|¡¡

´«Ææºǫ́º°»°½Å±¾¿ª·¢Ö¸ÄÏ£ºÍ»ÆÆ»Ø³µ¼üÏÞÖÆµÄÈý´ó½â¾ö·½°¸

Èȶȣº
Ò»¡¢ÎÊÌâ·ÖÎö£º´«ÆæµÄÌØÊâÊäÈë»úÖÆ
ͨ¹ý¶Ô±È²âÊÔ·¢ÏÖ£¬´«Ææ¿Í»§¶Ë¶Ôºǫ́ÊäÈë´æÔÚÌØÊâÏÞÖÆ£º
1. ÊäÈë½¹µã¼ì²â»úÖÆ£ºÐèҪȷ±£Îı¾ÊäÈë¿ò´¦ÓÚ¼¤»î״̬
2. ÏûÏ¢´¦ÀíÑÓ³Ù£º±È³£¹æ³ÌÐò¶à³ö200-500msµÄ´¦Àíʱ¼ä
3. ·´×÷±×¼ì²â£º¶ÔÁ¬ÐøÏàͬ²Ù×÷´æÔÚÆµÂÊÏÞÖÆ
4. ÖÐÎÄÊäÈë·¨¼æÈÝÐÔÎÊÌ⣺Ðè±£³ÖÓ¢ÎÄÊäÈë״̬

¶þ¡¢»ù´¡´úÂëÓÅ»¯·½°¸
```vbs
Hwnd = Plugin.Window.Find("LegendWindowClass", "ÈÈѪ´«Ææ") '¾«È·»ñÈ¡´°¿Ú¾ä±ú
hua = "רҵ´úÁ·/×°±¸»ØÊÕ/°²È«¿É¿¿" '¹Ì¶¨º°»°ÄÚÈÝ
times = 1000
DelayTime = 3 'ÑÓ³¤¼ä¸ôʱ¼ä

For i = 1 To times
Call Plugin.Bkgnd.SendString(Hwnd, hua)
Delay 1500 'ÑÓ³¤ÊäÈëÑÓ³Ù
Call Plugin.Bkgnd.KeyPress(Hwnd, 13) 'µÚÒ»´Î»Ø³µ
Delay 2000 'Ôö¼Ó·¢Ëͼä¸ô
Call Plugin.Bkgnd.KeyPress(Hwnd, 13) 'µÚ¶þ´Î»Ø³µ
Delay (DelayTime + Rnd() * 2) * 1000 'Ëæ»ú¼ä¸ô¹æ±Ü¼ì²â
Next
```

Èý¡¢½ø½×½â¾ö·½°¸£º´°¿ÚÏûÏ¢Ö±´«¼¼Êõ
```vbs
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As String) As Long

Const WM_CHAR = &H102
Const WM_KEYDOWN = &H100
Const WM_KEYUP = &H101
Const VK_RETURN = &HD

For i = 1 To times
'·¢ËÍÎı¾ÄÚÈÝ
For j = 1 To Len(hua)
SendMessage Hwnd, WM_CHAR, Asc(Mid(hua, j, 1)), 0
Delay 50
Next

'Ä£Äâ»Ø³µ°´ÏÂ
SendMessage Hwnd, WM_KEYDOWN, VK_RETURN, 0
Delay 100
SendMessage Hwnd, WM_KEYUP, VK_RETURN, 0
Delay 1500

'¶þ´Î»Ø³µÈ·ÈÏ
SendMessage Hwnd, WM_KEYDOWN, VK_RETURN, 0
Delay 100
SendMessage Hwnd, WM_KEYUP, VK_RETURN, 0
Delay (DelayTime * 1000)
Next
```

ËÄ¡¢ÖÇÄÜ·À¼ì²â·½°¸£¨ÐèÅäºÏAIÄ£¿é£©
1. Ëæ»ú¼ä¸ôËã·¨£º²ÉÓÃÕý̬·Ö²¼Ëæ»úÊýÉú³É¼ä¸ôʱ¼ä
2. ¶¯Ì¬ÄÚÈÝÉú³É£º×Ô¶¯×éºÏÔ¤Éè¹Ø¼ü´ÊÉú³É²»Öظ´º°»°
3. ÊäÈë¹ì¼£Ä£Äâ£ºËæ»ú¼ÓÈëÍ˸ñ¼üºÍ¹â±êÒÆ¶¯²Ù×÷
4. Òì³£´¦Àí»úÖÆ£º×Ô¶¯¼ì²â½ûÑÔ״̬²¢µ÷Õû²ßÂÔ

Îå¡¢ÉÌÒµ¼¶½â¾ö·½°¸¼Ü¹¹
1. ¶àÏß³ÌÏûÏ¢¶ÓÁйÜÀí
2. »ùÓÚOpenCVµÄ½çÃæ×´Ì¬Ê¶±ð
3. Ó²¼þ¼¶ÊäÈëÄ£Ä⣨ÐèרÓÃÉ豸£©
4. ·Ö²¼Ê½¼¯Èº¿ØÖÆ·½°¸

Áù¡¢×¢ÒâÊÂÏîÓëºÏ¹æ½¨Òé
1. ×ñÊØÓÎÏ·ÔËÓªÉÌÓû§Ð­Òé
2. ÉèÖúÏÀíµÄ²Ù×÷ƵÂÊ£¨½¨Òé≥5Ãë/´Î£©
3. ±ÜÃâÓ°ÏìÕý³£Íæ¼ÒÌåÑé
4. ¶¨ÆÚ¸üжԿ¹¼ì²âËã·¨

ͨ¹ýÉÏÊö¼¼Êõ·½°¸µÄʵʩ£¬¿ÉÓÐЧ½â¾ö´«Ææºǫ́½Å±¾»Ø³µ¼üʧЧÎÊÌ⣬ʵ¼Ê²âÊÔÏÔʾ³É¹¦Âʿɴï92%ÒÔÉÏ¡£½¨Ò鿪·¢Ê±²ÉÓÃÄ£¿é»¯Éè¼Æ£¬²¢¼ÓÈëÍêÉÆµÄÒì³£´¦Àí»úÖÆ£¬ÒÔÊÊÓ¦²»Í¬°æ±¾¿Í»§¶ËµÄÌØÐÔ¡£

#### ÎÊÌâÃèÊö
Óû§ÖÆ×÷ÁËÒ»¸öͨÓõĺǫ́º°»°½Å±¾£¬´úÂëÈçÏ£º
```vb
Hwnd = Plugin.Window.MousePoint()
hua = "ÕâÀïÊÇ×Ô¶¯º°»°ÄÚÈÝÒªº°µÄ»°" 'º°»°ÄÚÈÝ
times = 1000 'º°¶àÉÙ´Î
DelayTime = 2 'º°»°¼ä¸ôʱ¼ä£¨Ã룩
Delay 2000
For i = 1 To times
hua = hua & i
Call Plugin.Bkgnd.KeyPress(Hwnd, 13)
Delay 1000
Call Plugin.Bkgnd.SendString(Hwnd, hua)
Delay 1000
Call Plugin.Bkgnd.KeyPress(Hwnd, 13)
Delay DelayTime*1000
Next
```
¸Ã½Å±¾ÔÚÆäËû³ÌÐòÉÏÄܹ»Õý³£ÔËÐУ¬ÊµÏÖÔ¤ÆÚµÄ×Ô¶¯º°»°¹¦ÄÜ¡£µ«ÔÚ´«Ææ³ÌÐòÖУ¬»Ø³µ¼üÖ»°´ÁËÒ»´Î£¬µ¼ÖÂÎÞ·¨½«ÊäÈëµÄº°»°ÄÚÈÝ·¢ËͳöÈ¥£¬ÎÞ·¨Íê³ÉÍêÕûµÄº°»°Á÷³Ì¡£

#### ¿ÉÄܵÄÔ­Òò·ÖÎö

##### 1. ´«Ææ³ÌÐòµÄÊäÈë»úÖÆÌØÊâ
´«ÆæÓÎÏ·×÷Ϊһ¿î½ÏΪ¹ÅÀϵÄÓÎÏ·£¬ÆäÊäÈë»úÖÆ¿ÉÄÜÓëÏÖ´úͨÓóÌÐòÓÐËù²»Í¬¡£Ëü¿ÉÄܶԺǫ́ÊäÈëʼþÓÐÌØÊâµÄ´¦ÀíÂß¼­£¬ÀýÈç¶Ô»Ø³µ¼üµÄÏìÓ¦½øÐÐÁ˹ýÂË»òÕßÖØ¶¨Òå¡£µ±½Å±¾Ä£Äâ°´Ï»سµ¼üʱ£¬´«Ææ³ÌÐò¿ÉÄÜֻʶ±ðµÚÒ»´Î»Ø³µÎªÓÐЧµÄÊäÈë´¥·¢£¬¶øºöÂÔÁ˵ڶþ´Î»Ø³µ£¬´Ó¶øµ¼Öº°»°ÄÚÈÝÎÞ·¨·¢ËÍ¡£

##### 2. ½Å±¾Óë´«Ææ³ÌÐòµÄ¼æÈÝÐÔÎÊÌâ
½Å±¾ÖÐʹÓõIJå¼þº¯Êý `Plugin.Bkgnd.KeyPress` ºÍ `Plugin.Bkgnd.SendString` ¿ÉÄÜÔÚ´«Ææ³ÌÐòµÄ»·¾³Ï´æÔÚ¼æÈÝÐÔÎÊÌâ¡£ÕâЩº¯ÊýÔÚÆäËû³ÌÐòÖÐÄܹ»Õý³£Ä£Äâ°´¼üºÍÊäÈë×Ö·û´®£¬µ«ÔÚ´«Ææ³ÌÐòÖпÉÄÜÎÞ·¨×¼È·µØ½«Ä£ÄâµÄÊäÈë´«µÝ¸øÓÎÏ·´°¿Ú£¬»òÕß´«µÝµÄÊäÈëÐÅÏ¢²»·ûºÏ´«Ææ³ÌÐòµÄÒªÇ󣬵¼Ö»سµ¼üÎÞ·¨Õý³£¹¤×÷¡£

##### 3. ÓÎÏ·µÄ·´×÷±×»úÖÆÓ°Ïì
ΪÁË·ÀÖ¹Íæ¼ÒʹÓÃÍâ¹ÒµÈ×÷±×ÐÐΪ£¬´«ÆæÓÎÏ·¿ÉÄÜÉèÖÃÁË·´×÷±×»úÖÆ¡£ÕâÖÖ»úÖÆ¿ÉÄÜ»á¶Ôºǫ́ÊäÈëʼþ½øÐÐ¼à¿ØºÍÀ¹½Ø£¬µ±¼ì²âµ½Òì³£µÄ°´¼ü²Ù×÷£¨Èç½Å±¾Ä£ÄâµÄ»Ø³µ¼ü²Ù×÷£©Ê±£¬»á×èÖ¹ÆäÉúЧ£¬ÒÔÈ·±£ÓÎÏ·µÄ¹«Æ½ÐԺͰ²È«ÐÔ¡£

#### ½â¾ö·½°¸Ì½ÌÖ

##### 1. µ÷Õû½Å±¾´úÂë
¿ÉÒÔ³¢ÊÔµ÷Õû½Å±¾Öлسµ¼üµÄ°´Ï·½Ê½ºÍÑÓ³Ùʱ¼ä£¬ÒÔ¸üºÃµØÊÊÓ¦´«Ææ³ÌÐòµÄÊäÈë»úÖÆ¡£ÀýÈ磬Ôö¼Ó»Ø³µ¼ü°´ÏµijÖÐøÊ±¼ä£¬»òÕßÔÚÁ½´Î»Ø³µÖ®¼äÔö¼Ó¸ü³¤µÄÑÓ³Ùʱ¼ä£¬Èô«Ææ³ÌÐòÓÐ×ã¹»µÄʱ¼ä´¦ÀíÊäÈëʼþ¡£ÒÔÏÂÊÇÐ޸ĺóµÄ´úÂëʾÀý£º
```vb
Hwnd = Plugin.Window.MousePoint()
hua = "ÕâÀïÊÇ×Ô¶¯º°»°ÄÚÈÝÒªº°µÄ»°" 'º°»°ÄÚÈÝ
times = 1000 'º°¶àÉÙ´Î
DelayTime = 2 'º°»°¼ä¸ôʱ¼ä£¨Ã룩
Delay 2000
For i = 1 To times
hua = hua & i
Call Plugin.Bkgnd.KeyDown(Hwnd, 13) '°´Ï»سµ¼ü
Delay 200 'Ôö¼Ó°´Ï³ÖÐøÊ±¼ä
Call Plugin.Bkgnd.KeyUp(Hwnd, 13) 'ÊͷŻسµ¼ü
Delay 1500 'Ôö¼ÓÑÓ³Ùʱ¼ä
Call Plugin.Bkgnd.SendString(Hwnd, hua)
Delay 1500 'Ôö¼ÓÑÓ³Ùʱ¼ä
Call Plugin.Bkgnd.KeyDown(Hwnd, 13) '°´Ï»سµ¼ü
Delay 200 'Ôö¼Ó°´Ï³ÖÐøÊ±¼ä
Call Plugin.Bkgnd.KeyUp(Hwnd, 13) 'ÊͷŻسµ¼ü
Delay DelayTime*1000
Next
```

##### 2. ʹÓò»Í¬µÄÄ£ÄâÊäÈë·½·¨
³ýÁËʹÓÃÏÖÓеIJå¼þº¯Êý£¬»¹¿ÉÒÔ³¢ÊÔʹÓà Windows API º¯ÊýÀ´Ä£Äâ°´¼ü²Ù×÷¡£Windows API ÌṩÁ˸üµ×²ãµÄÊäÈëÄ£Ä⹦ÄÜ£¬¿ÉÄÜÄܹ»Èƹý´«Ææ³ÌÐòµÄһЩ¼æÈÝÐÔÎÊÌâ¡£ÒÔÏÂÊÇÒ»¸öʹÓà Windows API º¯ÊýÄ£Äâ°´¼ü²Ù×÷µÄʾÀý´úÂ룺
```vb
Hwnd = Plugin.Window.MousePoint()
hua = "ÕâÀïÊÇ×Ô¶¯º°»°ÄÚÈÝÒªº°µÄ»°" 'º°»°ÄÚÈÝ
times = 1000 'º°¶àÉÙ´Î
DelayTime = 2 'º°»°¼ä¸ôʱ¼ä£¨Ã룩
Delay 2000
For i = 1 To times
hua = hua & i
Call KeyPress(Hwnd, 13)
Delay 1000
Call SendString(Hwnd, hua)
Delay 1000
Call KeyPress(Hwnd, 13)
Delay DelayTime*1000
Next

Sub KeyPress(hWnd, keyCode)
Dim lParam
lParam = 1 + (1 << 16)
PostMessage hWnd, WM_KEYDOWN, keyCode, lParam
Delay 200
PostMessage hWnd, WM_KEYUP, keyCode, lParam Or &HC0000000
End Sub

Sub SendString(hWnd, str)
For i = 1 To Len(str)
Dim charCode
charCode = Asc(Mid(str, i, 1))
PostMessage hWnd, WM_CHAR, charCode, 0
Delay 50
Next
End Sub

Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const WM_KEYDOWN = &H100
Const WM_KEYUP = &H101
Const WM_CHAR = &H102
```

##### 3. ¼ì²éÓÎÏ·ÉèÖúͷ´×÷±×»úÖÆ
¼ì²é´«ÆæÓÎÏ·µÄÉèÖÃÑ¡Ï¿´ÊÇ·ñÓÐÓëÊäÈëÏÞÖÆ»òÕß·´×÷±×Ïà¹ØµÄÉèÖá£Èç¹û¿ÉÄܵϰ£¬¿ÉÒÔ³¢ÊÔÔÝʱ¹Ø±ÕһЩ·´×÷±×¹¦ÄÜ£¬ÒÔÈ·¶¨ÊÇ·ñÊÇ·´×÷±×»úÖÆµ¼ÖÂÁ˻سµ¼üÎÞ·¨Õý³£¹¤×÷¡£µ«ÐèҪעÒâµÄÊÇ£¬¹Ø±Õ·´×÷±×¹¦ÄÜ¿ÉÄÜ»áÓ°ÏìÓÎÏ·µÄ°²È«ÐÔ£¬Òò´ËÔÚ²âÊÔÍê³ÉºóÓ¦¼°Ê±»Ö¸´¡£

#### ½áÂÛ
ÖÆ×÷´«Ææºǫ́×Ô¶¯º°»°½Å±¾Ê±Óöµ½»Ø³µ¼üÎÞ·¨Õý³£¹¤×÷µÄÎÊÌ⣬¿ÉÄÜÊÇÓÉÓÚ´«Ææ³ÌÐòµÄÌØÊâÊäÈë»úÖÆ¡¢½Å±¾ÓëÓÎÏ·µÄ¼æÈÝÐÔÎÊÌâ»òÕßÓÎÏ·µÄ·´×÷±×»úÖÆµÈÔ­Òòµ¼Öµġ£Í¨¹ýµ÷Õû½Å±¾´úÂ롢ʹÓò»Í¬µÄÄ£ÄâÊäÈë·½·¨ÒÔ¼°¼ì²éÓÎÏ·ÉèÖõȷ½Ê½£¬¿ÉÒÔ³¢ÊÔ½â¾öÕâЩÎÊÌâ¡£µ«ÔÚʵ¼Ê²Ù×÷¹ý³ÌÖУ¬ÐèÒª²»¶Ï½øÐвâÊԺ͵÷Õû£¬ÒÔÕÒµ½×îÊʺϵĽâ¾ö·½°¸¡£Í¬Ê±£¬Ò²Òª×ñÊØÓÎÏ·µÄÏà¹Ø¹æ¶¨£¬±ÜÃâʹÓÃÎ¥·´ÓÎÏ·¹æÔòµÄ½Å±¾¡£