[AutoIt] 設定視窗的寬度與高度
在痞客邦上發表文章時,因為我的文章版面寬度是設成 600,
因此如果有附上抓圖的圖片時,
通常會需要先把圖片寬度設成 600,不然就會被自動縮小~
問題是縮圖的話,視窗裡的有些東西就看不清楚了…
舉例來說,我抓了一個 Everything 的視窗,大小是 938×544,
當傳到痞客邦選擇寬度 600 時,可以看到視窗的字都被縮小了…
為了避免這個問題,通常我會自己先把視窗的寬度調到 600 再來抓圖~
可是要把視窗調整到 600 很困難,我都是先抓圖看看大小,
不對就調整一下視窗再抓一次圖,直到大小正確為止,
是非常麻煩的工作…
因此決定用 AutoIt 寫一個小程式,
讓它自動在按下熱鍵時,就幫我把視窗設成指定的大小!~^^
在 AutoIt script 設定熱鍵的話,只要使用 HotKeySet 就可以了,
按下熱鍵後就會去執行指定的函式~
下面附上完整的程式供參考:
Opt(“TrayIconHide”, 1)
Const $CONST_SCRIPT_TITLE = StringReplace(StringReplace(@ScriptName, “.au3”, “”), “.exe”, “”)
; Check if width/height is provided
If $CmdLine[0] < 1 Then
ConsoleWrite(“Syntax: “ & $CONST_SCRIPT_TITLE & ” {width} [height]” & @CRLF & @CRLF & “Use 0 for width/height if you don’t want to change it.”)
Exit
EndIf
; When Ctrl-Alt-R hotkey is pressed, resize current window
HotKeySet(“^!r”, “ResizeCurrentWindow”)
; Print out help messages
ConsoleWrite(“Press Ctrl-Alt-R to resize current window.” & @CRLF)
ConsoleWrite(“Press Ctrl-C to terminate this program…” & @CRLF & @CRLF)
; Wait for hotkey or Ctrl-C to break
While True
Sleep(100)
WEnd
Func ResizeCurrentWindow()
; Get current window position
Local $posWin = WinGetPos(“[ACTIVE]”)
; Use the desired width from command line parameter, if valid
If $CmdLine[0] >= 1 And $CmdLine[1] <> 0 Then
$posWin[2] = $CmdLine[1]
EndIf
; Use the desired height from command line parameter, if valid
If $CmdLine[0] >= 2 And $CmdLine[2] <> 0 Then
$posWin[3] = $CmdLine[2]
EndIf
; Resize window
WinMove(“[ACTIVE]”, “”, Default, Default, $posWin[2], $posWin[3])
ConsoleWrite(“Window [“ & WinGetTitle(“[ACTIVE]”) & “] is resized to “ & $posWin[2] & “x” & $posWin[3] & @CRLF)
程式執行的語法是 AutoSetWindowSize.exe {寬度} [高度],
若不想改變的部分就設 0 就可以了~
執行結果如下:
當我開啟剛剛的 Everything 視窗,再按下 Ctrl-Alt-R 之後,視窗就被縮成 600×544 了,
可以看見因為圖片沒有被縮小,因此視窗的內容可以比較清楚~
我們剛寫的程式也會印出哪些視窗被我們改變大小囉~
如果你想要自己編譯這個程式的話,記得用 Console mode 來編譯~
你也可以點這裡下載原始碼和執行檔~