改寫AutoHotkey輸出中文字串的寫法
由PTT看到Lumania (小糠榔)寫的輸出中文Unicode字串的AutoHotkey腳本,簡潔清楚(腳本裡使用了較新的函數,因此你的AutoHotkey必須是1.0.47+以上的版本):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | SendBig5(xx) { if (i:=StrLen(xx)) =0 return loop { j:=1 if((tmp1 := NumGet(xx, 0, 'UChar')) & 0x80) { tmp1:= (tmp1 < < 8) | NumGet(xx, 1, 'UChar') j:=2 } sendinput, {ASC %tmp1%} stringtrimleft, xx, xx, j if (i-=j)=0 break } } |
再用F12按來鍵來測試:
1 2 3 | f12:: sendBig5('中文測試') return |
程式主要的邏輯是用{ASC nnnnn}輸出Unicode。依據官網文件的說明,nnnnn為1到255是ASCII碼,0128到0255是ANSI碼,而256到65535就是Unicode碼。 可惜有部份程式無法接受256~65535轉Unicode的作法,例如PSPad Unicode版本和Word 2003 SP3都不行(怪異的是PowerPoint 2003、Excel 2003卻又可以),因此我再修改了一下,用剪貼簿的方法解決此問題:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | SendBig5(xx) { WinGetClass,sClass,A ;;MsgBox %sClass% ;; PSPad Unicode || Word 2003 if (sClass='TfPSPad.UnicodeClass' || sClass='OpusApp') { send_symbol_clp(xx) return } if (i:=StrLen(xx)) =0 return loop { j:=1 if((tmp1 := NumGet(xx, 0, 'UChar')) & 0x80) { tmp1:= (tmp1 < < 8) | NumGet(xx, 1, 'UChar') j:=2 } sendinput, {ASC %tmp1%} stringtrimleft, xx, xx, j if (i-=j)=0 break } } ; 透過剪貼簿送出一組中文符號,如send_symbol_clp('。') send_symbol_clp(symbol) { oldClip := ClipboardAll ;;%Clipboard% Clipboard = Clipboard = %symbol% ClipWait Send ^v ;;sleep 1000 Clipboard = %oldClip% ;;oldClip = return '' } |
##
相關文章
留言-您的隻字片言對作者都是莫大的鼓勵
Thx for sharing; but
code無法直接run
<8
‘
似乎應該改為
<<8
"
[回應]
sorry, again for 同樣的主題
我上一篇寫的是 (at line #3 #4)
& l t ; 8 和 單引號
結果呈現
<8 和 ‘
所以此站會作一些有時候反而壞事的自動轉換 站主可考慮處理一下
[回應]
撰寫留言
隨機文章
- [WM6] 自動再次提醒未接來電等事件:ReRemind (3 人次, 2009-04-19)
- [轉貼] 利用Wood Workshop自製木頭質感的底圖素材 (3 人次, 2005-06-14)
- 用DeskView讓桌面變清爽 (3 人次, 2008-01-24)
- 接聽電話後重新顯示螢幕的偵測軟體:Touch InCall Screen Tweak (3 人次, 2009-03-12)
- 在Blog裡顯示隨機文章的簡單作法 (2 人次, 2007-10-14)
- ls -d 的用途 (2 人次, 2004-12-26)
- WinMerge檔案濾鏡的使用方法 (2 人次, 2006-09-10)
- Linus談Git與TortoiseGit (2 人次, 2008-12-19)
- [NetBeans] 安裝與設定NetBeans內的Subversion (2 人次, 2006-01-21)
- [Tools] 為硬碟做健康檢查:HDDlife; 硬碟測試:HD_Speed、HD Tune (2 人次, 2005-03-18)
- 搖手機啟動指定的程式:G-Trigger (2 人次, 2009-03-19)
- [轉貼] Me Media——個人媒體時代來臨! (2 人次, 2005-04-10)
- 又一個Java寫的資料庫前端工具:Execute Query 3.0 (2 人次, 2006-09-21)
- 如何組成強固又容易記憶的密碼? (2 人次, 2009-01-07)
- OpenOffice.org擴充的集中站 (2 人次, 2008-01-31)
- [Blog] 刪除del.icio.us的張貼網站 (2 人次, 2005-03-05)
- [Xuite] 文章分類後面的小圖示代表什麼意義? (2 人次, 2005-03-16)
- Spb Mobile Shell設定備忘 (2 人次, 2009-02-19)
- Windows Mobile使用的完美聯絡人軟體:Inesoft Phone [修訂] (2 人次, 2009-02-28)
- (2 人次, 2004-12-15)
- 能與Google Reader同步的Windows Mobile RSS reader? (2 人次, 2009-03-09)
- [轉貼] 全球掀熱潮 桃太郎最愛玩部落格 (2 人次, 2007-04-09)
- 讓手機永保清醒的DontSleep Wifi (2 人次, 2009-03-13)
- [轉貼] 千千靜聽:自動抓歌詞+詞曲同步的KTV播放器 (2 人次, 2005-07-22)
- [工具] Xuite人氣統計網頁 (2 人次, 2007-09-16)
- Xuite網址的正規運算式測試 (2 人次, 2007-04-30)
- 常見的收錄書籤網址寫法之彙總表格 V1.1 (2 人次, 2007-04-01)
- [SVN] Hook scripts的使用方法 (2 人次, 2005-12-09)
- [Subversion] 尋找Subversion Client工具 (2 人次, 2005-09-01)
- [創作] 字型工具產生器:動態變更Blog網頁的字型大小 (2 人次, 2007-04-29)
- 關閉所有視窗的小工具:CloseAll.exe (2 人次, 2010-05-22)
- 用樣式控制Google AdSense廣告顯示的位置 (2 人次, 2007-05-03)
- [Tools] 快速搜尋檔案:Locate32 (2 人次, 2005-07-16)
- 用tag2find幫你的文件隨處貼標籤 (2 人次, 2008-01-11)
- [轉貼Toget] iColorfolder:為資料夾圖示換上繽紛色彩 (2 人次, 2005-08-09)
- 亞洲電腦巨擘之間的博弈 (1 人次, 2007-09-24)
- 網頁程式碼美化程式 Google Code Prettify (1 人次, 2007-05-27)
- 方便但常會忘了的指令 (1 人次, 2004-12-15)
- Picasa 圖片整理工具 (1 人次, 2005-01-19)
- 把VMWare丟掉! Free的x86模擬器: QEMU (1 人次, 2004-12-16)
- FireFox 1.0必備的擴充套件 (1 人次, 2004-12-09)
- 我常用的軟體工具彙整清單 (1 人次, 2007-03-31)
- 在字裡行間發出嗡嗡聲:LineBuzz--線上註解服務 (1 人次, 2007-05-20)
- 快速啟動「服務」、「新增/刪除程式」視窗的方法 (1 人次, 2005-01-20)
- DOS (命令提示字元) 的巨集功能 (1 人次, 2005-01-18)
- Thunderbird的「標籤」功能 (1 人次, 2005-01-14)
- IDEA的編輯web.xml的圖形介面 (1 人次, 2005-06-06)
- 語系/地區碼 zh-TW與zh-CN 中的zh代表什麼? (1 人次, 2005-06-07)
- Secrets of Firefox 1.0 (1 人次, 2005-01-15)
- Firefox: 使用者自訂檔 (1 人次, 2005-01-08)







簡睿 回應:
二月 12th, 2010 at 14:11:09
感謝。WordPress在存檔時自動做了轉換…傷腦筋…
[回應]