Como usar um único script em vez de dois scripts simultâneos em autohotkey?

0

amigos, eu tenho dois scripts. o primeiro script tem algumas teclas de atalho e hotstrings e o segundo script contém algum comando do temporizador para ativar a janela específica quando determinado tempo passar. Quando eu colo os códigos do segundo script no primeiro script, o primeiro script (que contém hotstrings e hotkeys) também pára de funcionar. quando ambos os scripts são executados simultaneamente, eles funcionam perfeitamente. então eu quero usar um script em vez de dois scripts. os códigos do primeiro script são assim -

!r::
Send, {SHIFT DOWN}
sleep 100
send {F3}
sleep 100
send {SHIFT UP}
sleep 3000 
send tm{ENTER}
sleep 3000
send a
sleep 100
send {ENTER 3}
sleep 100
send c
sleep 100
send nr{F4}
return

!p::
Send, {SHIFT DOWN}{F3}{SHIFT UP}
sleep 3000 
send tm{ENTER}
sleep 3000
send a{ENTER}{ENTER}{ENTER}
sleep 500
send c
sleep 500
send np{F4}
return

!a::
IfWinNotActive, Finacle - Microsoft Internet Explorer, , WinActivate,    Finacle - Microsoft Internet Explorer, 
WinWaitActive, Finacle - Microsoft Internet Explorer, 
Send, {SHIFT DOWN}{F3}{SHIFT UP}
Sleep, 3000
send acli{ENTER}
Sleep, 4000
send {ENTER}
send ^f
sleep 100
send 01.03.2015
sleep 100
send {shiftdown}{tab}{shiftup}
sleep 200
send {CTRLDOWN}v{CTRLUP}
return
;there are so many more hotkeys and hotstrings in this script

similarmente o conteúdo do segundo script é este -

#Persistent
SetTimer, forFinacle, 10000 ; check every 10 seconds
#IfWinActive, Finacle - Microsoft Internet Explorer
~F4::timeF4:=A_TickCount
~F10::timeF10:=A_TickCount

forFinacle:
If (A_TickCount-timeF4 > 800000) && (A_TickCount-timeF10 > 800000)
{
WinActivate Finacle - Microsoft Internet Explorer 
Send {F4}
timeF4:=A_TickCount
}
return

Então eu quero o conteúdo de ambos os scripts em um script e esse script deve funcionar perfeitamente. Por favor me ajude. muito obrigado.

    
por ramji 11.11.2015 / 15:07

2 respostas

0

Keeps a script permanently running (that is, until the user closes it or ExitApp is encountered).

#Persistent

If this directive is present anywhere in the script, that script will stay running after the auto-execute section (top part of the script) completes. This is useful in cases where a script contains timers and/or custom menu items but not hotkeys, hotstrings, or any use of OnMessage() or Gui.

If this directive is added to an existing script, you might want to change some or all occurrences of Exit to be ExitApp. This is because Exit will not terminate a persistent script; it terminates only the current thread.

In v1.0.16+, this directive also makes a script single-instance. To override this or change the way single-instance behaves, see

#SingleInstance.

#SingleInstance

Determines whether a script is allowed to run again when it is already running.

#SingleInstance [force|ignore|off]

    
por 11.11.2015 / 15:29
0

Certifique-se sempre de usar uma instrução #IfWinActive depois de ter definido as teclas de atalho específicas do contexto, caso contrário, todas as teclas de atalho a seguir exigirão o contexto definido anteriormente para serem executadas.

Por exemplo, se você colocar o segundo bloco de código no início de todo o script consolidado, o contexto de todas as teclas de atalho será #IfWinActive, Finacle - Microsoft Internet Explorer até que uma diretiva diferente ou uma diretiva em branco #IfWinActive seja encontrada.

Como uma questão geral de evitar erros de recortar e colar e outros problemas incômodos - por exemplo, mover uma seção do código de atalho de um local em um roteiro grande para outro local - costumo usar #IfWinActive declarações liberalmente e sempre manter um em branco após cada seção, bem como no final do arquivo (devido a problemas documentados com a implementação original).

    
por 15.11.2015 / 08:24

Tags