請選擇 進入手機版 | 繼續訪問電腦版

微剋多資訊

 找回密碼
 註冊

Sign in with google

You know.

Login

Google帳號登入

搜索
回覆 8則 瀏覽 2987篇

[提問] AHK-GUI的單熱鍵問題

該用戶從未簽到

發表於 2017-11-12 15:04 | 顯示全部樓層 |閱讀模式
本帖最後由 daidai 於 2017-11-12 20:30 編輯

這邊有人熟AHK的程式語言嗎?
己經可以讀到INI的資料了,並把它顯示到EDIT中但要怎麼把EDIT中,修改後的資料,讓SEND 知道?

Numpad1::
{
send %EditText1%  ;如何讀到現在的資料,而不是INI中的資料%EditText1%
}
=========================================



; Generated by AutoGUI 1.4.9a
#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%

Gui Add, Text, x184 y264 w30 h20 +Center +0x200, 000
Gui Add, Text, x8 y72 w45 h20 +Right +0x200, 數字鍵 0
Gui Add, Text, x8 y120 w45 h20 +Right +0x200, 數字鍵 1
Gui Add, Text, x8 y168 w45 h20 +Right +0x200, 數字鍵 2
Gui Add, Text, x8 y216 w45 h20 +Right +0x200, 數字鍵 3
Gui Add, Text, x8 y264 w45 h20 +Right +0x200, 數字鍵 4
Gui Add, Text, x8 y312 w45 h20 +Right +0x200, 數字鍵 5
Gui Add, Text, x8 y360 w45 h20 +Right +0x200, 數字鍵 6
Gui Add, Text, x8 y408 w45 h20 +Right +0x200, 數字鍵 7
Gui Add, Text, x8 y456 w45 h20 +Right +0x200, 數字鍵 8
Gui Add, Text, x8 y504 w45 h20 +Right +0x200, 數字鍵 9
Gui Add, Text, x184 y72  w30 h20 +Center +0x200, +
Gui Add, Text, x184 y120 w30 h20 +Center +0x200, -
Gui Add, Text, x184 y168 w30 h20 +Center +0x200, *
Gui Add, Text, x184 y216 w30 h20 +Center +0x200, /
Gui Add, Text, x184 y312 w30 h20 +Center +0x200, .
Gui Add, Text, x184 y360 w30 h15 +Center +0x200, Back
Gui Add, Text, x184 y376 w30 h15 +Center +0x200, Space
Gui Add, Text, x184 y408 w30 h20 +Center +0x200, Enter
Gui Add, Text, x344 y72  w30 h20 +Center +0x200, Home
Gui Add, Text, x344 y120 w30 h20 +Center +0x200, End
Gui Add, Text, x344 y168 w30 h20 +Center +0x200, Ins
Gui Add, Text, x344 y216 w30 h20 +Center +0x200, Del
Gui Add, Text, x344 y264 w30 h20 +Center +0x200, PgUp
Gui Add, Text, x344 y312 w30 h20 +Center +0x200, PgDn
Gui Add, Text, x344 y360 w30 h20 +Center +0x200, ↑
Gui Add, Text, x344 y408 w30 h20 +Center +0x200, ↓
Gui Add, Text, x344 y456 w30 h20 +Center +0x200, ←
Gui Add, Text, x344 y504 w30 h20 +Center +0x200, →


DIR := A_WorkingDir  ;;取出目前資料夾


;從19HotKey.ini檔中讀取[區段]區段的資料進來
IniRead, EditText0, %DIR%19HotKey.ini, EXCEL, 0
IniRead, EditText1, %DIR%19HotKey.ini, EXCEL, 1
IniRead, EditText2, %DIR%19HotKey.ini, EXCEL, 2
IniRead, EditText3, %DIR%19HotKey.ini, EXCEL, 3
IniRead, EditText4, %DIR%19HotKey.ini, EXCEL, 4
IniRead, EditText5, %DIR%19HotKey.ini, EXCEL, 5
IniRead, EditText6, %DIR%19HotKey.ini, EXCEL, 6

IniRead, EditText7, %DIR%19HotKey.ini, EXCEL, 7
IniRead, EditText8, %DIR%19HotKey.ini, EXCEL, 8
IniRead, EditText9, %DIR%19HotKey.ini, EXCEL, 9

IniRead, EditTextADD, %DIR%19HotKey.ini, EXCEL, +
IniRead, EditTextSUB, %DIR%19HotKey.ini, EXCEL, -
IniRead, EditTextMUL, %DIR%19HotKey.ini, EXCEL, *
IniRead, EditTextDIV, %DIR%19HotKey.ini, EXCEL, /
IniRead, EditText000, %DIR%19HotKey.ini, EXCEL, 000
IniRead, EditTextPoint, %DIR%19HotKey.ini, EXCEL, POINT
IniRead, EditTextBS, %DIR%19HotKey.ini, EXCEL, BS
IniRead, EditTextENTER, %DIR%19HotKey.ini, EXCEL, ENTER

IniRead, EditTextHOME, %DIR%19HotKey.ini, EXCEL, HOME
IniRead, EditTextEND, %DIR%19HotKey.ini, EXCEL, END
IniRead, EditTextINS, %DIR%19HotKey.ini, EXCEL, INS
IniRead, EditTextDEL, %DIR%19HotKey.ini, EXCEL, DEL
IniRead, EditTextPGUP, %DIR%19HotKey.ini, EXCEL, PGUP
IniRead, EditTextPGDN, %DIR%19HotKey.ini, EXCEL, PGDN
IniRead, EditTextUp, %DIR%19HotKey.ini, EXCEL, _UP
IniRead, EditTextDown, %DIR%19HotKey.ini, EXCEL, _DOWN
IniRead, EditTextLeft, %DIR%19HotKey.ini, EXCEL, _LEFT
IniRead, EditTextRight, %DIR%19HotKey.ini, EXCEL, _RIGHT


;顯示INI的資料
Gui Add, Edit, x56 y72  w120 h45 +Multi,%EditText0%
Gui Add, Edit, x56 y120 w120 h45 +Multi,%EditText1%
Gui Add, Edit, x56 y168 w120 h45 +Multi,%EditText2%
Gui Add, Edit, x56 y216 w120 h45 +Multi,%EditText3%
Gui Add, Edit, x56 y264 w120 h45 +Multi,%EditText4%
Gui Add, Edit, x56 y312 w120 h45 +Multi,%EditText5%
Gui Add, Edit, x56 y360 w120 h45 +Multi,%EditText6%
Gui Add, Edit, x56 y408 w120 h45 +Multi,%EditText7%
Gui Add, Edit, x56 y456 w120 h45 +Multi,%EditText8%
Gui Add, Edit, x56 y504 w120 h45 +Multi,%EditText9%

Gui Add, Edit, x216 y72  w120 h45 +Multi,%EditTextADD%
Gui Add, Edit, x216 y120 w120 h45 +Multi,%EditTextsub%
Gui Add, Edit, x216 y168 w120 h45 +Multi,%EditTextMUL%
Gui Add, Edit, x216 y216 w120 h45 +Multi,%EditTextDIV%
Gui Add, Edit, x216 y264 w120 h45 +Multi,%EditText000%
Gui Add, Edit, x216 y312 w120 h45 +Multi,%EditTextPoint%
Gui Add, Edit, x216 y360 w120 h45 +Multi,%EditTextBS%
Gui Add, Edit, x216 y408 w120 h45 +Multi,%EditTextENTER%

Gui Add, Edit, x376 y72  w120 h45 +Multi,%EditTextHOME%
Gui Add, Edit, x376 y120 w120 h45 +Multi,%EditTextEND%
Gui Add, Edit, x376 y168 w120 h45 +Multi,%EditTextINS%
Gui Add, Edit, x376 y216 w120 h45 +Multi,%EditTextDEL%
Gui Add, Edit, x376 y264 w120 h45 +Multi,%EditTextPGUP%
Gui Add, Edit, x376 y312 w120 h45 +Multi,%EditTextPGDN%
Gui Add, Edit, x376 y360 w120 h45 +Multi,%EditTextUp%
Gui Add, Edit, x376 y408 w120 h45 +Multi,%EditTextDown%
Gui Add, Edit, x376 y456 w120 h45 +Multi,%EditTextLeft%
Gui Add, Edit, x376 y504 w120 h45 +Multi,%EditTextRight%


;選項
Gui Add, Radio, x8 y24 w55 h20, EXCEL
Gui Add, Radio, x64 y24 w55 h20 +Multi, WORD
Gui Add, Radio, x120 y24 w40 h20, CAD
Gui Add, Radio, x168 y24 w55 h20, EPLAN
Gui Add, Radio, x224 y24 w40 h20, 其他

Gui Show, w504 h556, 19鍵小鍵盤--《單熱鍵》鍵盤程式

Numpad1::
{
send %EditText1%  ;如何讀到現在的資料,而不是INI中的資料
}

Return

GuiEscape:

GuiClose:
    ExitApp

; Do not edit above this line




本帖子中包含更多資源

您需要 登入 才可以下載或查看,沒有帳號?註冊

x

該用戶從未簽到

 樓主| 發表於 2017-11-16 19:10 | 顯示全部樓層
陳鴻源@FB 發表於 2017-11-14 09:34
Numpad1::
{
GuiControlGet, EditText1temp, , Edit2 ; 讀到現在的資料,而不是INI中的資料

再請教一下
1 要取個那個Radio被點選了,要怎麼作呢?
GuiControlGet, Radio1Checked,, Radio1
GuiControlGet, Radio2Checked,, Radio2
F10::
{
if (Radio1Checked =1){
      name=Radio1,Text
    msgbox ,,%name%
}
else if (Radio2Checked =1){
    name=Radio2,Text
    msgbox ,,%name%
}
Return
}

沒反應。

2 另外我在讀取INI的資料時,
放在 Gui Add, Edit, x56 y72  w120 h45 +Multi  ,%gkNum0% 之前可以顯示
放在它之後,就無法顯示?
可以一開始預設空白,之後讀取INI後,再把值丟進去EDIT中嗎?
要使用那個指令呢?

問題有點多,有空再煩請你教導一下,謝謝。
1 0

使用道具

該用戶從未簽到

 樓主| 發表於 2017-11-19 11:02 | 顯示全部樓層
GuiControlGet 是取得元件的資料,那如果要把資料寫回元件,要用那個指令呢?

想法:
再切換軟體名稱後,想把相對應的INI資料再讀回去並顯示在對應的元件中。

AHK是否有類似IDE的編輯環境軟體
感覺DEBUG或是測試時,很麻煩

使用道具

該用戶從未簽到

 樓主| 發表於 2017-11-20 17:53 | 顯示全部樓層
本帖最後由 daidai 於 2017-11-21 07:31 編輯

感謝你近期的協助、幫忙。

請教一下,我測試時,%IniVal%=%RaedVal%這二個變數都有資料,
但它對應的EDIT,一樣不會顯示資料出來,是那邊的問題呢? ControlSetText, %IniVal%,%RaedVal% 這一行似乎沒作用?

;讀取INI檔的資料
GetValFromIni(Section, Key, IniVal)
{
        IniRead, RaedVal, %DIR%\19HotKey.ini, %Section%, %Key%, %A_Space%  
    MsgBox %IniVal%=%RaedVal%
    ControlSetText, %IniVal%,%RaedVal%
           return
}


==========================================================
; Generated by AutoGUI 1.4.9a
#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
global DIR := A_WorkingDir  ;;取出目前資料夾

;全域變數宣告
global SoftName     ;軟體名稱

;選項
Gui Add, GroupBox, x8 y8 w488 h55, 軟體選單
Gui Add, Radio, x16 y32 w60 h20 , EXCEL
Gui Add, Radio, x80 y32 w60 h20, WORD
Gui Add, Radio, x144 y32 w60 h20, CAD
Gui Add, Radio, x208 y32 w60 h20, EPLAN
Gui Add, Radio, x272 y32 w60 h20, OTHER
Gui Add, Text, x344 y32 w144 h20 +Left +0x200, 【F9】寫入,【F10】切換

;鍵盤標題
Gui Add, Text, x8 y72  w45 h20 +Right +0x200, 數字鍵 0
Gui Add, Text, x8 y120 w45 h20 +Right +0x200, 數字鍵 1
Gui Add, Text, x8 y168 w45 h20 +Right +0x200, 數字鍵 2
Gui Add, Text, x8 y216 w45 h20 +Right +0x200, 數字鍵 3
Gui Add, Text, x8 y264 w45 h20 +Right +0x200, 數字鍵 4
Gui Add, Text, x8 y312 w45 h20 +Right +0x200, 數字鍵 5
Gui Add, Text, x8 y360 w45 h20 +Right +0x200, 數字鍵 6
Gui Add, Text, x8 y408 w45 h20 +Right +0x200, 數字鍵 7
Gui Add, Text, x8 y456 w45 h20 +Right +0x200, 數字鍵 8
Gui Add, Text, x8 y504 w45 h20 +Right +0x200, 數字鍵 9

Gui Add, Text, x184 y72  w30 h20 +Center +0x200, +
Gui Add, Text, x184 y120 w30 h20 +Center +0x200, -
Gui Add, Text, x184 y168 w30 h20 +Center +0x200, *
Gui Add, Text, x184 y216 w30 h20 +Center +0x200, /
Gui Add, Text, x184 y264 w30 h20 +Center +0x200, .
Gui Add, Text, x184 y312 w30 h20 +Center +0x200, Clear

Gui Add, Text, x344 y72  w30 h20 +Center +0x200, Home
Gui Add, Text, x344 y120 w30 h20 +Center +0x200, End
Gui Add, Text, x344 y168 w30 h20 +Center +0x200, Ins
Gui Add, Text, x344 y216 w30 h20 +Center +0x200, Del
Gui Add, Text, x344 y264 w30 h20 +Center +0x200, PgUp
Gui Add, Text, x344 y312 w30 h20 +Center +0x200, PgDn
Gui Add, Text, x344 y360 w30 h20 +Center +0x200, ↑
Gui Add, Text, x344 y408 w30 h20 +Center +0x200, ↓
Gui Add, Text, x344 y456 w30 h20 +Center +0x200, ←
Gui Add, Text, x344 y504 w30 h20 +Center +0x200, →


;從19HotKey.ini檔中讀取[區段]的資料進來
Gui Add, Edit, x56 y72  w120 h45 +Multi   
Gui Add, Edit, x56 y120 w120 h45 +Multi
Gui Add, Edit, x56 y168 w120 h45 +Multi
Gui Add, Edit, x56 y216 w120 h45 +Multi
Gui Add, Edit, x56 y264 w120 h45 +Multi
Gui Add, Edit, x56 y312 w120 h45 +Multi
Gui Add, Edit, x56 y360 w120 h45 +Multi
Gui Add, Edit, x56 y408 w120 h45 +Multi
Gui Add, Edit, x56 y456 w120 h45 +Multi
Gui Add, Edit, x56 y504 w120 h45 +Multi

Gui Add, Edit, x216 y72  w120 h45 +Multi
Gui Add, Edit, x216 y120 w120 h45 +Multi
Gui Add, Edit, x216 y168 w120 h45 +Multi
Gui Add, Edit, x216 y216 w120 h45 +Multi
Gui Add, Edit, x216 y264 w120 h45 +Multi
Gui Add, Edit, x216 y312 w120 h45 +Multi

Gui Add, Edit, x376 y72  w120 h45 +Multi
Gui Add, Edit, x376 y120 w120 h45 +Multi
Gui Add, Edit, x376 y168 w120 h45 +Multi
Gui Add, Edit, x376 y216 w120 h45 +Multi
Gui Add, Edit, x376 y264 w120 h45 +Multi
Gui Add, Edit, x376 y312 w120 h45 +Multi
Gui Add, Edit, x376 y360 w120 h45 +Multi
Gui Add, Edit, x376 y408 w120 h45 +Multi
Gui Add, Edit, x376 y456 w120 h45 +Multi
Gui Add, Edit, x376 y504 w120 h45 +Multi

Gui Show, w508 h560, 小鍵盤--《單熱鍵》鍵盤程式
return



; 取得哪個按鈕被選中
; GuiControlGet 是得到該 radio 是否被選中(1,沒選中則為0)
F10::

GuiControlGet, Radio1Checked,, Button1
GuiControlGet, Radio2Checked,, Button2
GuiControlGet, Radio3Checked,, Button3
GuiControlGet, Radio4Checked,, Button4
GuiControlGet, Radio6Checked,, Button6
if (Radio1Checked =1){
    GuiControlGet,Radiotext,, Button1, Text
    }
else if (Radio2Checked =1){
    GuiControlGet,Radiotext,, Button2, Text
    }
else if (Radio3Checked =1){
    GuiControlGet,Radiotext,, Button3, Text
    }
else if (Radio4Checked =1){
    GuiControlGet,Radiotext,, Button4, Text
   }
else if (Radio6Checked =1){
    GuiControlGet,Radiotext,, Button6, Text
   }  

SoftName=%Radiotext%
msgbox 切換到【%SoftName%】的自定義熱鍵   
Display()

return



;顯示資料
Display()
{
GetValFromIni(SoftName, "Num0","Edit1")
GetValFromIni(SoftName, "Num1","Edit2")
GetValFromIni(SoftName, "Num2","Edit3")
GetValFromIni(SoftName, "Num3","Edit4")
GetValFromIni(SoftName, "Num4","Edit5")
GetValFromIni(SoftName, "Num5","Edit6")
GetValFromIni(SoftName, "Num6","Edit7")
GetValFromIni(SoftName, "Num7","Edit8")
GetValFromIni(SoftName, "Num8","Edit9")
GetValFromIni(SoftName, "Num9","Edit10")

GetValFromIni(SoftName, "NumADD","Edit11")
GetValFromIni(SoftName, "NumSUB","Edit12")
GetValFromIni(SoftName, "NumMUL","Edit13")
GetValFromIni(SoftName, "NumDIV","Edit14")
GetValFromIni(SoftName, "NumDOT","Edit15")
GetValFromIni(SoftName, "NumBS","Edit16")

GetValFromIni(SoftName, "NumHOME","Edit17")
GetValFromIni(SoftName, "NumEND","Edit18")
GetValFromIni(SoftName, "NumINS","Edit19")
GetValFromIni(SoftName, "NumDEL","Edit20")
GetValFromIni(SoftName, "NumPGUP","Edit21")
GetValFromIni(SoftName, "NumPGDN","Edit22")
GetValFromIni(SoftName, "NumUp","Edit23")
GetValFromIni(SoftName, "NumDOWN","Edit24")
GetValFromIni(SoftName, "NumLEFT","Edit25")
GetValFromIni(SoftName, "NumRIGHT","Edit26")

return
}



;讀取INI檔的資料
GetValFromIni(Section, Key, IniVal)
{
        IniRead, RaedVal, %DIR%\19HotKey.ini, %Section%, %Key%, %A_Space%  
    MsgBox %IniVal%=%RaedVal%
    ControlSetText, %IniVal%,%RaedVal%
           return
}

;寫入資料到INI檔
WriteValToIni(Section, Key, WriteVal)
{
    GuiControlGet, TempVal, , %WriteVal%
        IniWrite, %TempVal%, %DIR%\19HotKey.ini, %Section%, %Key%
    return
}

;;數字鍵按鍵功能定義

Numpad0::
{
    GuiControlGet, EditTemp, , Edit1 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

Numpad1::
{
    GuiControlGet, EditTemp, , Edit2 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

Numpad2::
{
    GuiControlGet, EditTemp, , Edit3 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

Numpad3::
{
    GuiControlGet, EditTemp, , Edit4 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

Numpad4::
{
    GuiControlGet, EditTemp, , Edit5 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

Numpad5::
{
    GuiControlGet, EditTemp, , Edit6 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

Numpad6::
{
    GuiControlGet, EditTemp, , Edit7 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

Numpad7::
{
    GuiControlGet, EditTemp, , Edit8 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

Numpad8::
{
    GuiControlGet, EditTemp, , Edit9 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

Numpad9::
{
    GuiControlGet, EditTemp, , Edit10 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadADD::
{
    GuiControlGet, EditTemp, , Edit11 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadSUB::
{
    GuiControlGet, EditTemp, , Edit12 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadMult::
{
    GuiControlGet, EditTemp, , Edit13 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadDIV::
{
    GuiControlGet, EditTemp, , Edit14 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadDOT::
{
    GuiControlGet, EditTemp, , Edit15 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadClear::
{
    GuiControlGet, EditTemp, , Edit16 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadHome::
{
    GuiControlGet, EditTemp, , Edit17 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadEnd::
{
    GuiControlGet, EditTemp, , Edit18 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadIns::
{
    GuiControlGet, EditTemp, , Edit19 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadDel::
{
    GuiControlGet, EditTemp, , Edit20 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadPgup::
{
    GuiControlGet, EditTemp, , Edit21 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadPgdn::
{
    GuiControlGet, EditTemp, , Edit22 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadUp::
{
    GuiControlGet, EditTemp, , Edit23 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadDown::
{
    GuiControlGet, EditTemp, , Edit24 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadLeft::
{
    GuiControlGet, EditTemp, , Edit25 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}

NumpadRight::
{
    GuiControlGet, EditTemp, , Edit26 ; 讀到現在的資料,而不是INI中的資料
    send %EditTemp%
    return
}


GuiEscape:

GuiClose:
    ExitApp

; Do not edit above this line







使用道具

該用戶從未簽到

 樓主| 發表於 2017-11-21 18:48 | 顯示全部樓層
本帖最後由 daidai 於 2017-11-21 18:56 編輯

感覺是 ControlSetText, %IniVal%,%RaedVal% 這個指令沒作用

程式有點長,本來想試試用 FOR 加上陣列的方式,來縮簡程式
但對 AHK 不熟,所以,就一行一行重覆的寫,先把功能作出來。

=========================================
搞定了, ControlSetText, %IniVal%,%RaedVal%這個指令要再加上視窗標題,才會送出文字 ^_^

使用道具

該用戶從未簽到

 樓主| 發表於 2017-11-21 23:21 | 顯示全部樓層
今晚上網又找了資料,試了 FOR 加 陣列的方式, 把GUI又縮減了一點點本來想把重覆的陣列宣告成全域變數,但都失敗,就沒再測試了

====================================================
; Generated by AutoGUI 1.4.9a
#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
global DIR := A_WorkingDir  ;;取出目前資料夾

;全域變數宣告
global SoftName     ;軟體名稱
global ControlName  ;控件名稱


;選項
Gui Add, Radio, x16 y32 w60 h20 Checked , EXCEL
Gui Add, Radio, x80 y32 w60 h20, WORD
Gui Add, Radio, x144 y32 w60 h20, CAD
Gui Add, Radio, x208 y32 w60 h20, EPLAN
Gui Add, Radio, x272 y32 w60 h20, OTHER
Gui Add, Text, x344 y32 w144 h20 +Left +0x200, 【F9】Write,【F10】Read
Gui Add, GroupBox, x8 y8 w488 h55, SoftName ------------------------------------------------------------------------

KeyTitle1:= ["Num 0", "Num 1", "Num 2", "Num 3", "Num 4", "Num 5", "Num 6", "Num 7", "Num 8", "Num 9"]
; 列舉陣列內容
W=72
For index, value in KeyTitle1
{
  Gui Add, Text, x8  y%W%  w45  h20 +Right +0x200, %value%
  Gui Add, Edit, x56 y%W%  w120 h45 +Multi, %A_Space%  
  W:=72+(48*index)
}

KeyTitle2:= ["+", "-", "*", "/", "Dot", "Clear"]
; 列舉陣列內容
W=72
For index, value in KeyTitle2
{
  Gui Add, Text, x184 y%W%  w30  h20 +Center +0x200,%value%
  Gui Add, Edit, x216 y%W%  w120 h45 +Multi, %A_Space%  
  W:=72+(48*index)
}

KeyTitle3:= ["Home", "End", "Ins", "Del", "PgUp", "PgDn", "↑", "↓", "←", "→"]
; 列舉陣列內容
W=72
For index, value in KeyTitle3
{
  Gui Add, Text, x344 y%W%  w30  h20 +Center +0x200,%value%
  Gui Add, Edit, x376 y%W%  w120 h45 +Multi, %A_Space%
  W:=72+(48*index)
}

Gui Show, w508 h560, Single Hotkey Keyboard
return

使用道具

該用戶從未簽到

發表於 2017-11-22 07:06 | 顯示全部樓層
ahk有第三方的開發軟體,不過是簡中的,名叫[信手拈来按键帮你来],我幾佪月前下載某一版本,解開檔案625mb左右,不過裡面目錄[录像教学]就544mb,開發程式才71mb。不過介面是簡中,在繁中os執行會有問題,我在簡中win10pe測試ok...

使用道具

該用戶從未簽到

 樓主| 發表於 2017-11-25 19:48 | 顯示全部樓層
本帖最後由 daidai 於 2017-11-25 19:50 編輯

底下是最近又改寫後的,成功使用 FOR 與 陣列,來顯示GUI。本來要再加上滑鼠划入後顯示功能提示,但感覺有點繁鎖
所以最後用EDIT的方式來承現,這樣可以直接秀出說明,也可以自己修改說明再存入INI中。

========================================
; Generated by AutoGUI 1.4.9a
#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
global DIR := A_WorkingDir  ;取出目前資料夾

;全域變數宣告
global gSoftName    ;軟體名稱
global gFilePath    ;檔案路徑
global gDataArray   ;資料陣列
global gTextArray   ;文字陣列

TargetWin = Single Hotkey Keyboard

;檔案路徑
gFilePath=%DIR%\19HotKey.ini

;程式圖示
Menu Tray, Icon,%DIR%\Keyboard.ico

;資料陣列
gDataArray:= ["TipEdit1", "Num0", "TipEdit2", "Num1", "TipEdit3", "Num2", "TipEdit4", "Num3", "TipEdit5",  "Num4"
            ,"TipEdit6", "Num5", "TipEdit7", "Num6", "TipEdit8", "Num7", "TipEdit9", "Num8", "TipEdit10", "Num9"
            ,"TipEdit11", "NumADD" ,"TipEdit12", "NumSUB", "TipEdit13", "NumMUL", "TipEdit14", "NumDIV", "TipEdit15", "NumDOT",  "TipEdit16", "NumBS"
            ,"TipEdit17", "NumHOME","TipEdit18", "NumEND", "TipEdit19", "NumINS", "TipEdit20", "NumDEL"
            ,"TipEdit21", "NumPGUP","TipEdit22", "NumPGDN", "TipEdit23","NumUp" , "TipEdit24", "NumDOWN", "TipEdit25", "NumLEFT","TipEdit26", "NumRIGHT"]
         
gTextArray:= ["Num 0", "Num 1","Num 2", "Num 3", "Num 4", "Num 5",  "Num 6", "Num 7", "Num 8", "Num 9"         
            ,"+", "-", "*", "/", "Dot", "Clear"
            ,"Home", "End", "Ins", "Del", "PgUp", "PgDn", "↑", "↓", "←", "→"]               
            
;選項
Gui Add, Radio, x16  y32 w60 h20 Checked , EXCEL
Gui Add, Radio, x80  y32 w60 h20, WORD
Gui Add, Radio, x144 y32 w60 h20, CAD
Gui Add, Radio, x208 y32 w60 h20, EPLAN
Gui Add, Radio, x272 y32 w60 h20, OTHER
Gui Add, Text,  x344 y32 w144 h20 +Left +0x200, [F9]Write,[F10]Read
Gui Add, GroupBox, x8 y8 w488 h55, SoftName -------------------------------------------------------------------------By dai831@gmail.com


; 列舉陣列內容
I=72
J=92
For index, value in gTextArray
{
  if index <= 10
    {
        Gui Add, Text, x1  y%I%  w45  h20 +Right +0x200, %value%
        Gui Add, Edit, x50 y%I%  w120 h20, %A_Space%
        Gui Add, Edit, x50 y%J%  w120 h20, %A_Space%
        I:=72+(43*index)
        J:=92+(43*index)
    }
   
}

; 列舉陣列內容
I=72
J=92
For index, value in gTextArray
{
  if (index >=11) and (index <= 16)
  {
    Gui Add, Text, x184 y%I%  w30  h20 +Center +0x200,%value%
    Gui Add, Edit, x216 y%I%  w120 h20, %A_Space%  
    Gui Add, Edit, x216 y%J%  w120 h20, %A_Space%
    I:=72+(43*(index-10))
    J:=92+(43*(index-10))
  }
}

; 列舉陣列內容
I=72
J=92
For index, value in gTextArray
{
if (index >=17) and (index <= 26)
  {
    Gui Add, Text, x344 y%I%  w30  h20 +Center +0x200,%value%
    Gui Add, Edit, x376 y%I%  w120 h20, %A_Space%
    Gui Add, Edit, x376 y%J%  w120 h20, %A_Space%
    I:=72+(43*(index-16))
    J:=92+(43*(index-16))
  }
}

Gui Show, w508 h510, %TargetWin%
return







本帖子中包含更多資源

您需要 登入 才可以下載或查看,沒有帳號?註冊

x

使用道具

該用戶從未簽到

 樓主| 發表於 2017-11-28 17:55 | 顯示全部樓層
本帖最後由 daidai 於 2017-12-2 18:45 編輯

我把它上傳到我的GOOGLE硬碟上
PS:載點己取消
完整程式碼如下:
========================================

; Generated by AutoGUI 1.4.9a
#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
global DIR := A_WorkingDir  ;取出目前資料夾

;全域變數宣告
global gSoftName    ;軟體名稱
global gFilePath    ;檔案路徑
global gDataArray   ;資料陣列
global gTextArray   ;文字陣列

TargetWin = Single Hotkey Keyboard

;檔案路徑
gFilePath=%DIR%\19HotKey.ini

;程式圖示
Menu Tray, Icon,%DIR%\Keyboard.ico

;資料陣列
gDataArray:= ["TipEdit1", "Num0", "TipEdit2", "Num1", "TipEdit3", "Num2", "TipEdit4", "Num3", "TipEdit5",  "Num4"
            ,"TipEdit6", "Num5", "TipEdit7", "Num6", "TipEdit8", "Num7", "TipEdit9", "Num8", "TipEdit10", "Num9"
            ,"TipEdit11", "NumADD" ,"TipEdit12", "NumSUB", "TipEdit13", "NumMUL", "TipEdit14", "NumDIV", "TipEdit15", "NumDOT",  "TipEdit16", "NumBS"
            ,"TipEdit17", "NumHOME","TipEdit18", "NumEND", "TipEdit19", "NumINS", "TipEdit20", "NumDEL"
            ,"TipEdit21", "NumPGUP","TipEdit22", "NumPGDN", "TipEdit23","NumUp" , "TipEdit24", "NumDOWN", "TipEdit25", "NumLEFT","TipEdit26", "NumRIGHT"]

gTextArray:= ["Num 0", "Num 1","Num 2", "Num 3", "Num 4", "Num 5",  "Num 6", "Num 7", "Num 8", "Num 9"         
            ,"+", "-", "*", "/", "Dot", "Clear"
            ,"Home", "End", "Ins", "Del", "PgUp", "PgDn", "↑", "↓", "←", "→"]               

;選項
Gui Add, Radio, x16  y32 w60 h20 Checked , EXCEL
Gui Add, Radio, x80  y32 w60 h20, WORD
Gui Add, Radio, x144 y32 w60 h20, CAD
Gui Add, Radio, x208 y32 w60 h20, EPLAN
Gui Add, Radio, x272 y32 w60 h20, OTHER
Gui Add, Text,  x344 y32 w144 h20 +Left +0x200, [F9]Write,[F10]Read
Gui Add, GroupBox, x8 y8 w488 h55, SoftName ---------------------------------------------------------------------------By dai831@gmail.com


; 列舉陣列內容
I=72
J=92
For index, value in gTextArray
{
  if index <= 10
    {
        Gui Add, Text, x1  y%I%  w45  h20 +Right +0x200, %value%
        Gui Add, Edit, x50 y%I%  w120 h20, %A_Space%
        Gui Add, Edit, x50 y%J%  w120 h20, %A_Space%
        I:=72+(43*index)
        J:=92+(43*index)
    }

}

; 列舉陣列內容
I=72
J=92
For index, value in gTextArray
{
  if (index >=11) and (index <= 16)
  {
    Gui Add, Text, x184 y%I%  w30  h20 +Center +0x200,%value%
    Gui Add, Edit, x216 y%I%  w120 h20, %A_Space%  
    Gui Add, Edit, x216 y%J%  w120 h20, %A_Space%
    I:=72+(43*(index-10))
    J:=92+(43*(index-10))
  }
}

; 列舉陣列內容
I=72
J=92
For index, value in gTextArray
{
if (index >=17) and (index <= 26)
  {
    Gui Add, Text, x344 y%I%  w30  h20 +Center +0x200,%value%
    Gui Add, Edit, x376 y%I%  w120 h20, %A_Space%
    Gui Add, Edit, x376 y%J%  w120 h20, %A_Space%
    I:=72+(43*(index-16))
    J:=92+(43*(index-16))
  }
}

Gui Show, w508 h510, %TargetWin%
return

F9::
{
    SoftSelect()   
    msgbox 1,,Write【%gSoftName%】Keyboard Data
    IfMsgBox OK
        WriteDataToInI()
    return
}

F10::
{
    SoftSelect()   
    msgbox Read【%gSoftName%】Keyboard Data   
    Display()
    return
}

; 取得哪個按鈕被選中
; GuiControlGet 是得到該 radio 是否被選中(1,沒選中則為0)
SoftSelect()
{
GuiControlGet, Radio1Checked,, Button1
GuiControlGet, Radio2Checked,, Button2
GuiControlGet, Radio3Checked,, Button3
GuiControlGet, Radio4Checked,, Button4
GuiControlGet, Radio5Checked,, Button5
if (Radio1Checked =1){
    GuiControlGet,Radiotext,, Button1, Text
    }
else if (Radio2Checked =1){
    GuiControlGet,Radiotext,, Button2, Text
    }
else if (Radio3Checked =1){
    GuiControlGet,Radiotext,, Button3, Text
    }
else if (Radio4Checked =1){
    GuiControlGet,Radiotext,, Button4, Text
   }
else if (Radio5Checked =1){
    GuiControlGet,Radiotext,, Button5, Text
   }  
gSoftName=%Radiotext%
return  
}

;顯示資料
Display()
{
  For index, vKey in gDataArray
   {
      IniRead, RaedVal, %gFilePath%, %gSoftName%, %vKey%, %A_Space%  
      ControlSetText, Edit%index%, %RaedVal%, Single Hotkey Keyboard
   }
   return
}

;寫入資料
WriteDataToInI()
{
  For index, vKey in gDataArray
   {
    GuiControlGet, TempVal, ,Edit%index%  ;取得Edit的文字
        IniWrite, %TempVal%, %gFilePath%, %gSoftName%, %vKey%
   }
   return
}

;數字鍵按鍵功能定義
Numpad0::
{
    GuiControlGet, EditTemp, , Edit2 ;取得EDIt的文字
    send %EditTemp%
    return
}

Numpad1::
{
    GuiControlGet, EditTemp, , Edit4 ;取得EDIt的文字
    send %EditTemp%
    return
}

Numpad2::
{
    GuiControlGet, EditTemp, , Edit6 ;取得EDIt的文字
    send %EditTemp%
    return
}

Numpad3::
{
    GuiControlGet, EditTemp, , Edit8 ;取得EDIt的文字
    send %EditTemp%
    return
}

Numpad4::
{
    GuiControlGet, EditTemp, , Edit10 ;取得EDIt的文字
    send %EditTemp%
    return
}

Numpad5::
{
    GuiControlGet, EditTemp, , Edit12 ;取得EDIt的文字
    send %EditTemp%
    return
}

Numpad6::
{
    GuiControlGet, EditTemp, , Edit14 ;取得EDIt的文字
    send %EditTemp%
    return
}

Numpad7::
{
    GuiControlGet, EditTemp, , Edit16 ;取得EDIt的文字
    send %EditTemp%
    return
}

Numpad8::
{
    GuiControlGet, EditTemp, , Edit18 ;取得EDIt的文字
    send %EditTemp%
    return
}

Numpad9::
{
    GuiControlGet, EditTemp, , Edit20 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadAdd::
{
    GuiControlGet, EditTemp, , Edit22 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadSub::
{
    GuiControlGet, EditTemp, , Edit24 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadMult::
{
    GuiControlGet, EditTemp, , Edit26 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadDiv::
{
    GuiControlGet, EditTemp, , Edit28 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadDot::
{
    GuiControlGet, EditTemp, , Edit30 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadClear::
{
    GuiControlGet, EditTemp, , Edit32 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadHome::
{
    GuiControlGet, EditTemp, , Edit34 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadEnd::
{
    GuiControlGet, EditTemp, , Edit36 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadIns::
{
    GuiControlGet, EditTemp, , Edit38 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadDel::
{
    GuiControlGet, EditTemp, , Edit40 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadPgUp::
{
    GuiControlGet, EditTemp, , Edit42 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadPgDn::
{
    GuiControlGet, EditTemp, , Edit44 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadUp::
{
    GuiControlGet, EditTemp, , Edit46 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadDown::
{
    GuiControlGet, EditTemp, , Edit48 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadLeft::
{
    GuiControlGet, EditTemp, , Edit50 ;取得EDIt的文字
    send %EditTemp%
    return
}

NumpadRight::
{
    GuiControlGet, EditTemp, , Edit52 ;取得EDIt的文字
    send %EditTemp%
    return
}


GuiEscape:

GuiClose:
    ExitApp

; Do not edit above this line







使用道具

您需要登入後才可以回帖 登入 | 註冊

本版積分規則

Discuz! X

© 2009-2017 Microduo

快速回覆 返回頂部 返回列表