运行 开始写入时和停止写入后 4 秒的命令

Run command when beginning writing and 4 seconds after stop writing

每次开始写作时我都需要运行一个程序,停止写作后 4 秒又需要一个程序。

如何操作?

我尝试过 autohotkey 但没有成功..

未经测试的脚本,但应该进行一些调整,我认为 psTools 命令不正确,我不会安装所有这些程序来为您测试它。如果您需要这里的帮助,我很乐意进一步提供帮助。

AutoHotkey:

startDwellClicker() {
    Input, key, V L1, {space}.{esc}.{shift}.{enter}.{tab}.{Ctrl} ;Waits for Anykey to be pressed
    Run, pssuspend "-r \%A_ComputerName% dwellclicker.exe" ;Resume DwellClicker
    pauseDwellClicker()
}

pauseDwellClicker() {
    Loop {
        Input, key, V L1 T4 
        if (ErrorLevel = "Timeout") ;Waits for 4 second Time Out
            Break
    }
    Run, pssuspend "\%A_ComputerName% dwellclicker.exe" ;Pause DwellClicker
    startDwellClicker()
} 

我不知道 ps 是什么或 RSI,但我知道 AutoHotkey 是专为您设计的。

#persistent

waitTime := 4   ; seconds

isWriting := false
loop {
    input, anyKey, V L1 M I T%waitTime%
    if(errorLevel=="Timeout") {
        if(isWriting) {
            goSub stoppedWriting
            isWriting := false
        }
    } else {
        if(!isWriting) {
            goSub startedWriting
            isWriting := true
        }
    }
}

return

startedWriting:
    send START
return

stoppedWriting:
    send STOP
return

你必须使用 Input 命令并将其超时时间设置为任何你想要的,在上面的示例中我将其设置为 4 秒。有关此命令的可用选项的详细信息,请参阅 Input

编辑。我误解了 ahkcoder 的回答,他会做

谢谢! 没有尝试其他代码,但看起来与我最终所做的非常相似。 我用过 autohotkey :)

顺便说一句:RSI 基本上是..因为电脑,手、腿、肩膀、手指都非常痛:(...呵呵

这是工作代码:

Loop{
  Input, SingleKey, L1 V I B, {F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Del}{BS}{WheelUp}{WheelDown}



  MouseGetPos,xpos,ypos

  stop:=0
  Run "D:\RSI\DesactivaDwell.vbs"
  While !stop {
    wait:=2500
    While wait>0{
    ;If ANY Key is pressed again, we set wait=4000. Input works as Sleep for 100ms ( Parameter T0.1)
    Input,SingleKey, L1 V I B T0.5, {F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Del}{BS}{WheelDown}{WheelUp}{RButton}
    If ErrorLevel=Timeout 
          wait-=500
    Else
    wait:=2500
    }

    Sleep,1000
    Run "D:\RSI\ActivaDwell.vbs"

    stop:=1
  }
}