2015-09-07 1 views
0

Мне нужно запускать программу каждый раз, когда я начинаю писать, и снова через 4 секунды после того, как я перестаю писать.Команда запуска при начале записи и через 4 секунды после прекращения записи

Любая идея о том, как это сделать?

Я tryied с AutoHotkey не повезло ..

+0

что вы пишете в? –

+0

у меня есть RSI (повторяющееся растяжение). Я пытаюсь интегрировать eViacam (программное обеспечение Camera-Mouse) и DwellClicker. проблема заключается в том, что Dwell Clicker продолжайте нажимать, пока я Я пишу.Так что я хочу использовать PsSuspend, чтобы приостанавливать его каждый раз, когда начинаю писать, и возобновляю, когда я заканчиваю писать :) – CuchoAv

+0

https: // windo ws-dwell-clicker.googlecode.com/files/DwellClicker.exe – CuchoAv

ответ

2

Непроверено сценарий, но должен работать с какой-то тонкой настройки, я не думаю, что команда 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() 
} 
+0

Спасибо! Рабочее решение :) – CuchoAv

+1

@CuchoAv, пожалуйста, отметьте его как принятый тогда! – Blauhirn

+0

@CuchoAv, пожалуйста, отметьте это ответ. Я считаю, что это вариант в верхней левой части ответа, эта опция появляется только для плаката. – errorseven

1

Я понятия не имею, что пс или 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.

Редактировать. Я неверно истолковал ответ ахкодера, его сделают

0

Спасибо! Не пробовал другие коды, но кажется очень похожим на то, что я наконец сделал. Я использовал 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 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^