2016-03-25 50 views
0

我編寫了一個AHK腳本,用於在按F9時從Adobe Acrobat複製文本。然後它根據正則表達式更改它並在工具提示中顯示覆制的文本。此外,我添加了代碼以自動關閉Acrobat在處理文本時顯示的令人討厭的窗口,臭名昭着的There was an error while copying to Clipboard. An internal error occurred.當此窗口未顯示時,腳本不斷顯示工具提示,該工具提示旨在在指定時間後關閉。我一直在撞牆,但我不知道如何解決這個問題。AHK:每當它彈出時關閉一個窗口

;#NoTrayIcon 
#Persistent 
#SingleInstance 
F9:: 
#If WinActive("ahk_exe Acrobat.exe") 
{ 
Clipboard:="" 
send,^c 
ClipWait, 1 
Clipboard := RegExReplace(Clipboard, "\r\n", " ") 
SetTimer,CheckForMsgBox,100 
CheckForMsgBox: 
    IfWinExist, Adobe Acrobat 
    { 
     Send {Enter} 
     SetTimer,CheckForMsgBox,Off 
    } 
;Return 
If (StrLen(Clipboard) < 120) 
ToolTip % Clipboard 
Else 
ToolTip Copied 
SetTimer, ToolTipOff, -1000 
return 
} 
#If 

ToolTipOff: 
ToolTip 
return 
+0

請澄清什麼是所需的行爲和問題是什麼。在腳本中間的「CheckForMsgBox」的目的是什麼? – 2501

回答

2
;#NoTrayIcon 
; #Persistent ; (1) 
#SingleInstance 
SetTimer,CheckForMsgBox,100 ; (2) 
return 

#If WinActive("ahk_exe Acrobat.exe") ; (3) 

F9::  
clipboard:="" 
send,^c 
ClipWait, 1 
Clipboard := RegExReplace(Clipboard, "\r\n", " ") 
If (StrLen(Clipboard) < 120) 
    ToolTip %Clipboard% 
Else 
    ToolTip Copied 
SetTimer, ToolTipOff, -1000 
return 

#If ; turn off context sensitivity 

ToolTipOff: 
ToolTip 
return 

CheckForMsgBox: 
; ControlSend, Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText 
ControlSend, , {Enter}, Adobe Acrobat ; Close this unwanted window whenever it appears 
return 

(1)含有熱鍵,熱字串,或任何使用的onMessage()或GUI的腳本自動持久是。

(2)SetTimer導致子程序(Label)以指定的時間間隔自動重複啓動。

https://autohotkey.com/docs/commands/SetTimer.htm

(3)像#IfWin指令,#如果是位置:它會影響所有熱鍵和熱字串物理它下面的腳本。

https://autohotkey.com/docs/commands/_If.htm

+0

工程很棒。我非常感謝你的回答和你的評論! – menteith

相關問題