0
キーボードからキーストローク(任意のキーが押された)をリッスン/検出するようにします。約5秒間キーが押されていない場合、何かを続ける。それ以外の場合は、テキスト編集で押されたキーを記録し続けます。AppleScriptでのキーストロークの検出
ご協力いただければ幸いです。
キーボードからキーストローク(任意のキーが押された)をリッスン/検出するようにします。約5秒間キーが押されていない場合、何かを続ける。それ以外の場合は、テキスト編集で押されたキーを記録し続けます。AppleScriptでのキーストロークの検出
ご協力いただければ幸いです。
あなたの質問にTextEditを指定したので、指定した秒数以内にTextEditドキュメントの変更をチェックするスクリプトを作成しました。これは、ドキュメントに何かを入力するキーしか検出しないので、正確にはではありません。しかし、のすべてのキーが生のAppleScriptで押されていることを検出する方法はないので、これはあなたが得ることのできる最も近いものです(誰かがScripting Additionやエージェントアプリケーションを作成しない限り)。
ここでは使用のであると思い、スクリプトです:AppleScriptでは
global lastText, lastTime, startTime
on run
set lastText to application "TextEdit"'s (text of the document of the front window)
set lastTime to current date
set startTime to current date
repeat
if (checkForRecentTextUpdate given seconds:5) is true then
-- Do something while the user is typing
else
-- Do something after the user has stopped typing
exit repeat -- This is only an example
end if
end repeat
end run
to checkForRecentTextUpdate given seconds:secsRequired
tell application "TextEdit"
-- If midnight just passed, reset the last time
if (the day of (the current date)) > (the day of the lastTime) ¬
then set lastTime to current date
-- If we just started, we can't judge; give a positive
if ((the time of (the current date)) - (the time of the startTime)) < secsRequired ¬
then return true
-- If there have been changes since the last run, update info
if (the text of the document of the front window) ≠ the lastText then
set lastTime to the current date
set lastText to the text of the document of the front window
end if
-- If the specifiied number of seconds has passed without any text updates, give a negative
if ((the time of (the current date)) - (the time of the lastTime)) ≥ secsRequired ¬
then return false
-- If we got this far, there were changes in the seconds specified; give a positive
return true
end tell
end checkForRecentTextUpdate
あなたがそれを行うことはできません – vadian