最新版AutoHotkey的編碼變更
真是糟糕!家裡用的筆記型電腦重新安裝Windows XP後,同時更新Autohotkey_L為2012年8月的 1.1.08.01最新版後,原有的腳本檔就發生異常無法正確讀取並執行了!
今天抽空看了一下文件,原來腳本檔的存檔編碼必須變更為「UTF-8加簽名(BOM)」,我將腳本檔和include的所有腳本檔都另存成上述編碼後才告正常。
1.1.08.00版有多項修改,如果另存編碼格式後仍有問題的話,務必先讀一下Autohotkey的Help(AutoHotkey.chm,主題:Changes & New Features)。
##
您可能也會有興趣的類似文章
- [Tools] 續:撰寫AutoHotKey指令以複製檔案 (0則留言, 2005/06/12)
- 用AutoHotkey擷取螢幕並存成檔案-簡單的截圖操作 (0則留言, 2019/11/02)
- [AutoHotkey] 寫得不錯的AutoHotkey推薦文 (5則留言, 2007/10/31)
- [AHK#57] AutoHotkey v2正式釋出,2023年學習新目標 (6則留言, 2023/01/01)
- AutoHotkey的進階剪貼簿功能:WinClip類別 (0則留言, 2019/10/26)
- 如何轉換AutoHotkey的預設分隔字元:冒號 (2則留言, 2008/03/17)
- 新版AutoHotkey轉換工具ahk2exe的圖形介面操作步驟 (2則留言, 2013/04/21)
- AutoHotkey 熱字串的常用選項與指引功能(AHK #2) (9則留言, 2019/05/17)
- 用AutoHotkey改造特殊按鍵 (5則留言, 2008/03/19)
- 使用AutoHotkey快速切換語言鍵盤,和超難用的Ctrl/Alt+Shift說再見!(AHK #9) (8則留言, 2019/06/21)
- AHK60|AutoHotkey++擴充設定詳解與Code Snippets設置;使用VS Code (0則留言, 2024/02/24)
- 輕鬆學會彈指神功-揭露AutoHotkey絕技 (63則留言, 2008/04/10)
- 使用AutoHotkey彈出對話窗,依回應執行不同動作 (0則留言, 2019/12/11)
- 由零開始寫一次關閉多個同名程式的 AutoHotkey腳本(AHK #10) (0則留言, 2019/07/14)
- 使用Autohotkey開發的熱字串替換工具:Texter (1則留言, 2007/03/06)
簡大:還有如轉成exe檔成功後.把設定檔傳到沒安裝AutoHotkey的電腦後.以後要怎開啟AutoHotkey的exe檔案.是否可教一下. 謝謝您!
簡大您好:我照您底下指示部奏輸入後.
進入命令提示字元 (cmd.exe),再輸入下列指令就能產生 你的autohotkey.exe:
cd “C:\Program Files\AutoHotkey\Compiler”
ahk2exe /in 你的autohotkey.ahk
後在命令提示字元出現這視窗:
Microsoft windows XP [版本 5.1.2600]
Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\user01>cd “C:\Program Files\AutoHotkey\Compiler”
C:\Program Files\AutoHotkey\Compiler”
ahk2exe /in 你的autohotkey.ahk(註:這有一小點一直閃)
接著要再輸入啥字可再告知嗎?
還有您說的ahk2exe /? 會顯示參數選項(我不懂要輸入啥).
實在很抱歉.要您教一個電腦白癡操作與學習.
再次向您說聲抱歉與謝謝!
關於簡大發過的如何將AutoHotkey腳本轉換成設定檔:
Ahk2Exe.exe 把腳本檔產生成執行檔的工具,以方便沒有安裝AutoHotkey系統的環境能用執行檔直接執行。
Ahk2Exe.exe是命令列指令,語法如下:
?
雙擊全選程式碼
001
Ahk2exe.exe /in “test1.ahk” /icon “test1.ico”
以上是您發的.我研究了幾天.還是看不懂又想學.是否可以請您發個轉換成設定檔的教學流程.來讓我們這些剛開始研究AutoHotkey的生手又不是本科來學學.等您有空在做.畢竟已麻煩您多次. 也再次向您說謝謝!
在C:\Program files\Autohotkey\compiler 資料夾裡有Ahk2Exe.exe,透過它可以把寫好的 .ahk 檔案變成 .exe 執行檔,有了這個.exe不用安裝AutoHotkey系統也能執行寫好的操作。如果要使用的電腦和寫Autohotkey的是同一台電腦,那直接執行.ahk檔案就可以,不必用ahk2exe來產生執行檔。
進入命令提示字元 (cmd.exe),再輸入下列指令就能產生 myfile.exe (假設你的.ahk是 c:\test\myfile.ahk):
以下每行輸入完畢後按 Enter。
myfile.exe會產生在 C:\Program Files\AutoHotkey\Compiler 資料夾裡,把myfile.exe拷貝到別台電腦(例如放到桌面或c:\windows資料夾等),用檔案總管找到myfile.exe後雙擊執行,若在右下角的系統匣區域能看到Autohotkey的綠色的H,就表示執行成功,則你的F9、F10就能操作了。
ahk2exe /? 會顯示參數選項。
另外,請先看看 輕鬆學會彈指神功-揭露AutoHotkey絕技 這篇入門文章。
簡大謝謝你的指導. 感恩!
$x::
Loop
{
If Not GetKeyState(“x”, “P”)
Break
Send {x Down}
Sleep 20
Send {x Up}
Sleep 20
}
Return
簡大您好:上面數據是我在某論壇看到的連發函數.這函數要一直用手按著x鑑才可連發.請問您如要修改成按另一個按鍵就可連發.不用手一直按著.然後要停時再按另一個按鍵即可停止.要修改哪個部分.是否可請簡大教導或幫修正. 先向您說聲謝謝!
If那行改成為 If GetKeyState(“F10″, “P”) 就可以按F10停止迴圈了。
網頁顯示的雙引號不對,請自己修改。
謝謝簡大的指導.能否再次請教.您所說的(網頁顯示的雙引號不對).
我才剛摸索.是否可以明示哪個是(網頁顯示的雙引號).要怎麼修改.
您如有空是否可大約指教一下. 感恩~
還有我剛照您所說修改成:
$F9::
Loop
{
If Not GetKeyState(“F10”, “P”)
Break
Send {x Down}
Sleep 20
Send {x Up}
Sleep 20
}
Return
本來按住F9時X就可連擊.修改後按F9.AutoHotkey的X按鍵卻完全無回應?哪出錯?可否再次向您請益?
因家裡小朋友有玩小遊戲.連擊時常要按住F9.又要操作鍵盤方向鍵.所以向您請益是否可修改成.按一下F9按鍵就可以一直自動連續射擊.這樣就可只操作方向鍵.等要停時在按F10來停止射擊.
再次說聲抱歉.望你不吝指教….也再次向你說聲謝謝!
If這行的Not要拿掉才會判斷F10。
博主你好 我用autohotkey对 VMware Player虚拟机进行 后台空格操作 我用虚拟机里面的TXT文档测试 但是不好使
不知问题出在哪里 这是我的代码
#MaxThreadsPerHotkey 3
F9::
#MaxThreadsPerHotkey 1
if KeepF9Running
{
KeepF9Running := false
return
}
KeepF9Running := true
Loop
{
ControlSend, , {Space down} , Windows XP Professional – VMware Player (Non-commercial use only),,,
sleep 600
ControlSend, , {Space up} , Windows XP Professional – VMware Player (Non-commercial use only),,,
sleep 600
if not KeepF9Running
break
}
KeepF9Running := false
return
望指正 谢谢
會否是本機無法將按鍵傳入VM? 建議先在本機試成後再到VM裡試。
博主原来的脚本我想一定是UTF-8 without BOM,所以升到 1.1.08 后出问题(Scite4AutoHotkey的UTF-8编码默认不带BOM)。
使用UTF-8才能中文输出是另一个误解,实际上使用系统默认编码也可以输出中文(这里也是直接输出,而无需用编码转换等其他方法)。
有两种情况必须使用UTF-8 带 BOM 才可确保不出编码问题:一为脚本中含有除系统默认代码页中字符外的其他字符,例如简中系统但脚本中含有德文,二为脚本需在非原来默认代码页中的系统中执行,例如某脚本需要在简中系统和日文系统中执行。当然,如果脚本中只含有英文字符(ASCII字符集),那么用什么编码我想都不会出问题。
AutoHotkey中文论坛中有一篇帖子对于编码问题讲解的比较详细,然而这几天打不开,遗憾。
博主的看法不全面,实际上脚本可以为ANSI或UTF-8编码或其他编码,但若使用UTF-8编码时则必须加上BOM。所以这样的变更对后面的情况有影响:一是使用Unicode构建且脚本为UTF-8编码但不含BOM的脚本,实际上若不含BOM的文本在大多数程序中都使用系统默认代码页,所以这种变更是合理的。此前由于编码的原因而给新手带来的大量问题也是促使进行这样变化的原因。
一些程序以UTF-8保存文件时默认不带BOM是这种问题产生的原因。
既然用了Autohotkey_L 當然就是要用UTF-8,不然中文如何輸出?
我遇到的問題是原本運作得好好的UTF-8 scripts,一升級後就出錯了,最簡單的解決方法就上再存 BOM了。