作者Rituximab (Rituximab)
看板EzHotKey
標題Re: [AHK-] 標點符號全形半形會影響到熱字串嗎
時間Mon Apr 3 12:16:44 2023
原本是很陽春的hotstring
adhdr原版
https://pastebin.com/w6DqH9PL
asdr原版
https://pastebin.com/dMDHXAge
剪貼簿
https://pastebin.com/0G4dsT4m
從硬碟叫出來
https://pastebin.com/DvZxEjry
後來有人建議我改成貼到剪貼簿的作法
:X:ADHDr::
str := "
(
上面那些字串
)"
SendString(str)
return
SendString(String) {
bak := ClipboardAll
Clipboard := ""
Clipboard := String
ClipWait 1
if (ErrorLevel) {
MsgBox 0x10, Error, Couldn't set Clipboard text.
} else {
Send ^v
Sleep 1000
}
Clipboard := bak
}
或是先把字串存在硬碟裡在叫出來
:X:ASDr::UseTemplate("ASDr")
:X:ADHDr::UseTemplate("ADHDr")
UseTemplate(Filename) {
bak := ClipboardAll
Clipboard := ""
FileRead CLipboard, % "D:\Templates\" Filename ".txt"
ClipWait 1
if (ErrorLevel) {
MsgBox 0x10, Error, Couldn't set template text.
} else {
Send ^v
Sleep 1000
}
Clipboard := bak
}
但兩種做法只要能觸發就能跑出完整字串,但大概十次只能成功觸發一兩次
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.131.146 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/EzHotKey/M.1680495406.A.673.html
1F:推 mkz6: 我測試還是一樣,逐字輸出只在中文輸入模式時衝突, 04/03 13:04
2F:→ mkz6: 剪貼簿輸出在任何模式都沒問題, 04/03 13:04
3F:→ mkz6: 看腳本寫入剪貼簿有clipwait和error msg, 04/03 13:04
4F:→ mkz6: 但你使用時沒跳錯誤視窗,也無法貼上? 04/03 13:04
5F:→ Rituximab: 對,都沒有跳出錯誤視窗,就是字串出不來 04/03 13:08
6F:推 mkz6: 在這個情況下你手動^v貼上有東西嗎? 04/03 13:09
7F:→ Rituximab: 目前還沒失敗後再這樣試過 04/03 13:09
8F:推 mkz6: 試了才知道是沒寫入剪貼簿所以沒東西貼, 04/03 13:16
9F:→ mkz6: 還是卡在沒有送出^v貼上… 04/03 13:16
11F:→ Rituximab: 非常感謝 收假後用辦公室電腦來試試看 04/03 13:22
我亂改把sleep改成4000以上
在原本沒事的桌機就開始會遇到跟辦公室電腦一樣卡住的狀況
但辦公室電腦,如果把sleep調長一點(例如2000),
在卡住後的2秒內趕快按^v就可以把字串貼出來 2秒後剪貼簿就變回原樣
12F:推 ides13: 把Clipboard := bak刪掉就可以了 04/09 13:19
請問這個不把剪貼簿還原,字串輸出就不會卡住的解法想法是甚麼? 詳細希望
※ 編輯: Rituximab (111.250.131.146 臺灣), 04/09/2023 20:40:19
13F:推 ides13: 我不太清楚卡住的原因。不過,原先的程式碼,在2秒內未按^ 04/10 01:27
14F:→ ides13: v的話,剪貼簿會還原,但刪除該行後,就再也不會還原了。 04/10 01:27
15F:→ ides13: 對於不在乎原本的剪貼簿內容的情況,這樣是一種作法。 04/10 01:27
16F:→ Rituximab: 謝謝 可能卡住的問題還是要換輸入法 04/10 15:03