Что нового

[Мышь, клавиатура] Как внести ошибку в набираемый текст

Вовчик55

Новичок
Сообщения
57
Репутация
0
Подскажите как внести ошибки в набираемый текст? Допустим печатается текст из буфера обмена и как только в тексте будет встречаться точка - чтобы Send печатал сначала запятую (ну или любой другой знак), затем жал Backspace и уже потом ставил точку как и положено.
Вот кусочек кода:
Код:
While 1
;Расчёт скорости
$Skorost=GuiCtrlRead($Input1)
$Opt=(60/$Skorost)*1000
$Zaderzh=Round($Opt)
Opt("SendKeyDelay",$Zaderzh)

;Подготовка к печати=========
;Убираем Ентеры============
$Tekst1=_ClipBoard_GetData($CF_TEXT);Возвращает текст из буфера обмена

$sText = $Tekst1         ;Текст для замены
$sPattern = @CRLF   ;Какие символы меняем
$Tekst = StringRegExpReplace($sText, $sPattern, ' ') ;На что меняем
;========================================

;ПЕЧАТЬ
Send($Tekst,1)
Sleep(3000)
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Вовчик55,
Попробуйте так.
Код:
ClipPut('Подскажите, как внести ошибки в набираемый текст? Допустим, печатается текст из буфера обмена и, как только в тексте будет ' & _
		'встречаться точка, чтобы Send печатал сначала запятую, ну, или любой другой знак, затем жал Backspace, и уже потом ставил ' & _
		'точку, как и положено.')

$sText = ClipGet()
$sCheck = '.,?абвгд'
$sError = ',.7вьышж'
$aText = StringSplit($sText, '')
Run('notepad.exe')
$hWin = WinWait('[CLASS:Notepad]', '', 5)
If Not $hWin Then Exit 13
SendKeepActive($hWin)
For $i = 1 To $aText[0]
	$iPos = StringInStr($sCheck, $aText[$i], 1)
	If $iPos Then
		Send(StringMid($sError, $iPos, 1))
		Sleep(Random(500, 1000, 1))
		Send('{BS}')
		Sleep(Random(500, 1000, 1))
	EndIf
	Send($aText[$i])
	Sleep(Random(250, 500, 1))
Next
SendKeepActive('')
 
Автор
Вовчик55

Вовчик55

Новичок
Сообщения
57
Репутация
0
Спасибо большое! Теперь всё как часы работает :laugh:
А то на сайте возникали лишние вопросы как так без ошибок печатает :D
 
Верх