Войти

Показать полную графическую версию : [решено] (скрипт)Нажатие клавиш


Desprado
07-11-2011, 23:04
Подскажите пожалуйста - нужно сделать нажатие клавиш в игре с F1 по F8 c промежутком времени до 3-4сек
То есть что бы за -3-4 секунды были нажаты клавиши F1-F2-F3-F4-F5-F6-F7-F8
Я вот так делаю

If WinWaitActive("Element Client") Then
sleep (300)
Send("{F1}")
Send("{F2}")
Send("{F3}")
Send("{F4}")
Send("{F5}")
Send("{F6}")
Send("{F7}")
Send("{F8}")

EndIf




Но оно не правильно, помогите правильно написать.

Creat0R
08-11-2011, 02:22
$iSecs = 3 ;Секунды в течений которых следует выслать все клавиши
$iNumKeys = 8 ;Число клавиш которое следует высылать

Opt (http://www.autoitscript.com/autoit3/docs/functions/Opt.htm)("SendKeyDelay", ($iSecs * 1000) / $iNumKeys)

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) WinWaitActive (http://www.autoitscript.com/autoit3/docs/functions/WinWaitActive.htm)("Element Client") Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
SendKeepActive (http://www.autoitscript.com/autoit3/docs/functions/SendKeepActive.htm)("Element Client")

For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $iKey = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $iNumKeys
Send (http://www.autoitscript.com/autoit3/docs/functions/Send.htm)("{F" & $iKey & "}")
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

Desprado
08-11-2011, 09:04
скажите пожалуйста. Как еще написать в ваш код - что бы скрипт весел в трее..
И можно ли ему дать быстрое включение?
Типа при нажатии CTR + S скрипт включался выполнялся и после выполнееия висел на паузе в трее - до тех пор пока его снова не вывозишь.

erbolking
13-11-2011, 13:04
Здравствуйте, не подскажите как реализовать в скрипте нажатие сочетаний клавиш, например при запуске скрипта, скрипт выполнял нажатие CTRL+ALT+SHIFT+A?

AZJIO
14-11-2011, 11:05
Desprado, вот
HotKeySet('!{F1}', '_My_Func') ; Alt+F1
HotKeySet('{Esc}', '_Exit') ; Esc
While 1
Sleep(100000)
WEnd

Func _My_Func()
; тут вызываемая задача, например мессага
MsgBox(0, 'Сообщение', 'Сработало ')
EndFunc

Func _Exit()
Exit
EndFunc

erbolking, оч просто Send('^!+a')

erbolking
09-12-2011, 15:25
AZJIO, Спасибо большое, а как в скрипте реализовать вот следующее. Скрипт проверяет (прочитывает какой либо текстовый файл) и в случае, если в этом файле присутствует искомый текст( например [autorun] ), то скрипт выполняет соответствующее действие, например запускает калькулятор. Буду благодарен за любую предоставленную информация, спасибо

titanium23
11-12-2011, 09:50
вот функция, надеюсь разберешься

Func _FindStringInFile($szFileName, $szSearchString, $fCaseness = 0, $fOccurance = 1)
Local $iRetVal = 0
Local $hWriteHandle, $aFileLines, $nCount, $sEndsWith, $hFile
$hFile = FileOpen($szFileName, 0)
If $hFile = -1 Then Return SetError(1, 0, -1)
Local $s_TotFile = FileRead($hFile, FileGetSize($szFileName))
If StringRight($s_TotFile, 2) = @CRLF Then
$sEndsWith = @CRLF
ElseIf StringRight($s_TotFile, 1) = @CR Then
$sEndsWith = @CR
ElseIf StringRight($s_TotFile, 1) = @LF Then
$sEndsWith = @LF
Else
$sEndsWith = ""
EndIf
$aFileLines = StringSplit(StringStripCR($s_TotFile), @LF)
FileClose($hFile)
For $nCount = 1 To $aFileLines[0]
If StringInStr($aFileLines[$nCount], $szSearchString, $fCaseness) Then
If $fOccurance = 1 Then
Run("calc.exe", "")
ExitLoop
EndIf
$iRetVal = $iRetVal + 1
EndIf
Next
EndFunc

_FindStringInFile("C:\autorun.inf", "[autorun]")

Creat0R
11-12-2011, 18:43
Я не понял, почему здесь обсуждаются разные вопросы, и при чём разными авторами?
Тема решена и закрыта.




© OSzone.net 2001-2012