小屋創作

日誌2009-06-14 14:26

『翻譯工程』AUTOIT GUI 介面設計器 + 中文說明書

作者:無痕之音


========================================================

================= AUTOIT GUI 介面設計器介紹 =================
========================================================

【軟體名稱】︰AUTOIT GUI 介面設計器

【軟體語言】︰繁體中文
【繁體作者】︰WELLSS
【檔案格式】︰RAR
【作業系統】:95/98/NT/2000/ME/XP/2003/Vista

AutoIt v3 是用以編寫並生成具有 BASIC 語言類型腳本的免費軟體程式,它被設計用來在 Windows GUI (使用者界面) 中進行自動化。利用它可以模擬快速鍵、移動滑鼠和視窗/控制項的互動,而這是其它語言所無法做到或尚無可靠方法實現的 (如 VBScript 和 SendKeys)。
AutoIt 亦具備小巧、高度自我啟發性,及可以不受框架限制於所有 Windows 版本上執行,而且絕不會有煩人的 "runtimes" 的編寫需要!

AutoIt 最初是為 PC 的 "批次處理" 而設計,用於對數千台 PC 進行同樣的設定,不過隨著 V3 版本的到來至今,它已成為一套支援複雜運算式、使用者函數、迴圈,並可符合資深腳本編寫人員期待以應付各種需求的強大腳本語言。

主要特色:
類似- BASIC 語言且很容易學習
可模擬按鍵敲擊及滑鼠動作
可操作視窗及處理程式
可與所有視窗控制項互動
腳本可被編譯成獨立的單一執行檔
建立 Graphical User Interfaces (GUIs) 視窗介面
COM 的支援
規則陳述式
直接呼叫外部 DLL 及 Windows API 函式庫
可腳本化 RunAs 函數
鉅細彌遺的說明書及龐大社群論壇基礎支援
相容於 Windows 95 / 98 / ME / NT4 / 2000 / XP / 2003 / Vista / 2008 等系統
支援 Unicode 及 x64
讓人放心的數位化簽署
與 Vista 的 User Account Control (UAC) 元件的互動

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關於「Gui Designer - GUI 介面設計器」的始末,有興趣的可以到這篇討論,巴哈中我先前發表過的一篇文章底下的回覆討論:『AUTOIT』中文說明書 開工~
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1、 Gui Designer - GUI 介面設計器:
目地是用來給那些需要用 AUTOIT 撰寫視窗介面的使用者,利用 GUI 介面來進行自動化作業會更安全可靠!更可以省下許多調整介面的時間和金錢。

中文化後的 Gui Designer 我做過除錯跟界面調整:
1.修復原始英文跟簡體「工具列」顯示空間不足的問題。
2.修復原始英文跟簡體「Edit1」按 "取消" 跟 X 死當問題。
3.原本「檔案」預設的「預設視窗」是沒功能的,我已補寫上去。
Gui Designer 在載入預設界面時會自動銷毀前一個視窗,所以
別忘了要先存檔,我懶的花時間去摸索寫檢查儲存功能 @ @
4.英文版之所以有問題無法執行,是因為它底下的 "_PropertiesList.au3" 檔案裡頭有亂碼,把它改成正常字元後就能跑了...

5.Gui Designer 界面一些微不足道的小調整。
6.在關於有我的中文化 ID,並保留原漢化者的 ID ^^
7.重新檢視了原始碼 Func _OpenFile($File) 使用函數片段大致了解「開啟檔案」問題出在哪裡,而且原作者跟本把開啟檔案的 FileOpenDialog 誤植成 FileSaveDialog (依我看應該是故意留下一大堆好除錯的 BUG,教學用途吧...?)
8.視窗原本的 $WS_EX_TOPMOST 置頂屬性我去掉了,我覺得這根本就是多餘... 這樣開色彩視窗會被擋到還要去拉


GUI 介面設計器設計器下載:

SHA-1:18E6F1DF33BC93D5FDBE5C816925648DF595AC9D

Dropbox載點:https://dl.dropboxusercontent.com/u/58595124/AUTOIT_GUI_介面設計器.rar
Google載點:https://drive.google.com/uc?export=download&id=0B7OOPCwmysOoNGNRXzNVcFNybzg
==================================================
2、經歷兩三個月的好事多磨,終於是順利做完了 AUTOIT V3.3.0 說明書的中文化。

2013/10/17 更新
說明書已完成,載點:

SHA-1:5AA8F598F81409008A93A62F57B75DCD1104F9AF

Dropbox載點:
https://dl.dropboxusercontent.com/u/58595124/AutoIt3.chm
Google載點:https://drive.google.com/uc?export=download&id=0B7OOPCwmysOoN05IWlJLSTZaMEU
附註:SciTE 腳本編輯器 (SciTE.exe) 有個很棒的功能,那就是跟說明檔的完整整合!
   您只要將游標停在有興趣的陳述式或指令上按 F1 鍵,就會自動開啟說明對應內容。

  ==================================================
本來考慮過要做一份 「AUTOIT 封裝檔案+一鍵自動安裝」教學文在 AutoIt3.chm 說明書
中,不過我還是懶的做,再者考量到隨時修改的方便性,我還是決定私下放在這裡以原始碼 AU3 告訴大家如何使用,當然這是假設您已經對 AUTOIT 及組合語言有了相當的基礎。

若您看不太懂,請到 AutoIt3.chm的「入門指南」從最簡單的開始學起,我的腳本非常簡
單,沒啥米難懂的地方。主要還是在於視窗彈出什麼,我就點什麼而已...不過我實測的結果,那個詢問「有多個檔案為唯讀」的訊息框那個不太好抓,目前找到那個「有多個檔案為唯讀」訊息的自動化點選問題所在,改成 IF ...THEN 陳述式 + SLEEP 即可解決,之所以抓不到是因為腳本跑太快了,來不及等到目標視窗出現馬上跳到下一行所以沒抓到,讓腳本等個 200 毫秒就OK了。
////////////////////////////////////////////////////////////////////////////////////

圖片即為壓縮檔,自行設法打開吧:


(圖片出處:http://www.liujingdianqi.cn/k/灼眼的夏娜.html)
////////////////////////////////////////////////////////////////////////////////////

‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

後記花絮:
最近幾天翻完了 AUTOIT v3.3.0 中文版的說明書。
PS:以下的反斜線因無法顯示故以「/」替代之,
內容為我跟中文化前輩討論的對話。

我原先對於腳本在遇到意外關閉的情形下找不到對策,不過之後跟 tenhon 大討論了一下
找到了方法 ^^
Q:Originally posted by wellsss at 2009-6-11 12:27 PM:
要如何讓腳本判斷 Patch Maker 1.2g 是否已被使用者意外關閉 (如中途按 ESC 選離開),然後自行關閉腳本,目前我實在做不出來...

A:Originally posted by tenhon at 2009-6-12 08:47 AM:
wellsss 大太抬舉我了,我的功力其實很有限,提供一個經驗....
我之前也考慮過這樣的問題,我的解決方式比較笨一點,就是在 Patch Maker 每一個對話方塊出現之前先檢查 Patch Maker 的程序還在不在ProcessExists("Patch_Maker.exe")
不在的話直接ProcessClose AUTOIT 腳本主程式,能維持到最後一個視窗大概也安裝完了...
這不算好方法,否則就是不用 Patch Maker 來安裝,直接把中文化檔案包到 AUTOIT 腳本主程式內,用背景置換檔案的方式來解決。
只是這樣一來使用者比較感受不到安裝程式正在進行...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
● 以下是我找到方法後回覆的內容 (WELLSSS 是本人):
剛剛我去試了一下,很快找到方便的好辦法,不過可能會拖累一點效能,但非常有效。

那就是利用 「AdlibEnable」 函數來應付這類未知的狀況。
首先在腳本的 Run(@ProgramFilesDir & "/AutoIt3/AUTOIT3-中文化.EXE") 後面補上此行腳本前段看起來是這樣:
------------------------------------------------------------------------------------

Run(@ProgramFilesDir & "/AutoIt3/AUTOIT3-中文化.EXE")
AdlibEnable("END",800) ;每隔 800 毫秒檢查一次
------------------------------------------------------------------------------------
然後在腳本最後面補上自己定義的 「END」函數,其中的 Func 是用來自訂函數,
後面接的是我自行定義的函數,功能要怎樣由我發揮。
腳本後段看起來是這樣:
------------------------------------------------------------------------------------
Func END()
$PID = ProcessExists("AUTOIT3-中文化.EXE")
If $PID = 0 Then
   MsgBox(64, "AUTOIT3-中文化", "已完成 AUTOIT3 補綴程式安裝,或者被使用者意外中斷。")
   Sleep(1000)
   FileDelete (@ProgramFilesDir & "/AutoIt3/AUTOIT3-中文化.EXE")
   Exit
EndIf
EndFunc
AdlibDisable() ;在?本的最後位置補充此行
------------------------------------------------------------------------------------
如此一來補綴更新程式在完成或被意外中斷時,就會進行動作並自動結束腳本。
不過有個小缺點,就是每次執行完後一定會跳出訊息,也許可以考慮更 SMART 的方式來判斷要不要出現,但是有點困難,因為同樣都是把程式結束,所以必須找出不一樣的「蛛絲馬跡」做為判斷的依據。而原始碼我已更新在圖片中。


附註 - Autoit 歷史版本 FTP
https://www.autoitscript.com/autoit3/files/archive/autoit/

Autoit 中文書的中文化的範例腳本:

SHA-1:373B37D0710F4036059C6FDB7146FFA8F519C525
Dropbox載點:https://dl.dropbox.com/u/58595124/Examples.rar
Google載點:https://drive.google.com/uc?export=download&id=0B7OOPCwmysOoSXY0czQtcndrZmc
(可以自行到原安裝目錄內,將資料夾直接貼上替換)

Autoit 自 3.3.0 後變動大致如下:
AutoItSetOption 選用的 OnExitFunc 被移除→ 獨立出一函式:OnAutoItExitRegister
OnAutoItExit() →獨立出函式: OnAutoItExitRegister() 和 OnAutoItExitUnregister()
OnAutoItStart() →獨立出函式:#OnAutoItStartRegister
AdlibEnable() 和 AdlibDisable() 被移除改用: AdlibRegister() 和 AdlibUnRegister()


對 tenhon 的問題已經解決 ^^ 感謝 tenhon 大、 twh2000 () 大的熱心提供載點,

及網際論壇其它壇友熱心回覆,當然也包括巴哈的各位好友們,感謝您們 :)

7

12

LINE 分享

相關創作

[達人專欄] 《命運攥寫者》宿命上集,第二章 第一節 命運攥寫部

[達人專欄] 《十二月天物語》霜降,春暖,第一章 第九節 記念、紀念

[達人專欄] 《神明也想吃肉肉》01 初生之犢

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】