Показать полную графическую версию : [решено] (скрипт)Нажатие клавиш
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
Но оно не правильно, помогите правильно написать.
$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?
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]")
Я не понял, почему здесь обсуждаются разные вопросы, и при чём разными авторами?
Тема решена и закрыта.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.