........
$Combo1 = GUICtrlCreateCombo("", 120, 120, 145, 25)
GUICtrlSetData(-1, "Q|A|Z|W|S|X|E|D|C")
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
..........
GUICtrlSetData($combo1,IniRead(@ScriptDir &"\option.ini", "section1", "key1", "Q")) ;читаем из ini файла, если не удалось комбобоксу присваиваем "Q"
; устанавливаем хоткей на выход
HotKeySet("+!" & GUICtrlRead($combo1), "_ProcExit") ;shift+ctrl+значение комбобокса
.....
;При смене значения комбобокса делаем запись в ini файл
IniWrite(@ScriptDir &"\option.ini", "section1", "key1", GUICtrlRead($combo1))
......
func _ProcExit()
exit
endfunc
;Тут подлючаем библиотеки
HotKeySet('^q', '_Exit') ;CTRL + q для выхода
;тут твой код
Func _Exit()
Exit
EndFunc
HotKeySet("^+q", '_ProcExit')
HotKeySet("^" & GUICtrlRead($combo1), "_ProcExit")
какой звук? зачем звук? действие и не произойдет если Вы жмете один CTRL т.к. Вы должны еще нажать на значение из комбобокса!когда нажимаю на контрол то просто звук с колонок писк издается но действия не происходят
#include <GuiConstantsEx.au3>
Global $CheckBox, $GUI2, $CheckBox2
Global $sIniFile = @ScriptDir & '\Config.ini'
Global $iOption1 = IniRead($sIniFile, 'Setting', 'Option1', '1')
Global $iOption2 = IniRead($sIniFile, 'Setting', 'Option2', '1')
$GUI = GUICreate("PC10") ; will create a dialog box that when displayed is centered
$nButton1 = GUICtrlCreateButton('пример 1', 20, 50, 110, 30)
$nButton2 = GUICtrlCreateButton('пример 2', 20, 80, 110, 30)
$nButton3 = GUICtrlCreateButton('Окно', 20, 110, 110, 30)
$OnTop_CB = GUICtrlCreateCheckbox(" окно всегда наверху", 35, 310, 150, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
;----------------- код
$Combo1 = GUICtrlCreateCombo("", 50, 180, 80, 25)
GUICtrlSetData(-1, "Q|A|Z|W|S|X|E|D|C")
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUICtrlSetData($combo1,IniRead(@ScriptDir &"\option.ini", "section1", "key1", "Q"))
HotKeySet("^" & GUICtrlRead($combo1), "_ProcExit")
IniWrite(@ScriptDir &"\option.ini", "section1", "key1", GUICtrlRead($combo1))
;------------------
GUISetState()
WinSetOnTop($GUI, "", 1)
NewWindow(); **** Добавлено
; Run the GUI until the dialog is closed
While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
Switch $nMsg[1]
Case $GUI
Exit
Case $GUI2
GUISetState(@SW_HIDE, $GUI2)
EndSwitch
Case 0; Добавлено
ContinueLoop; Добавлено
Case $nButton1
_galochka()
Case $nButton2
MsgBox(4096+64, 'Info', 'пример 2', 0, $GUI)
Case $nButton3
; If Not IsHWnd($GUI2) Then
; NewWindow()
; EndIf
GUISetState(@SW_SHOW, $GUI2)
Case $OnTop_CB
If BitAND(GUICtrlRead($OnTop_CB), $GUI_CHECKED) Then
WinSetOnTop($GUI, "", 1)
Else
WinSetOnTop($GUI, "", 0)
EndIf
Case $CheckBox
IniWrite($sIniFile, 'Setting', 'Option1', GUICtrlRead($CheckBox))
Case $CheckBox2
IniWrite($sIniFile, 'Setting', 'Option2', GUICtrlRead($CheckBox2))
EndSwitch
WEnd
Func NewWindow()
$GUI2 = GUICreate('New window', 400, 300, -1, -1, -1, -1, $GUI)
$CheckBox = GUICtrlCreateCheckbox("галочка", 15, 120, 340, 20)
GUICtrlSetState(-1, $iOption1)
$CheckBox2 = GUICtrlCreateCheckbox("галочка2", 15, 150, 340, 20)
GUICtrlSetState(-1, $iOption2)
GUISetState(@SW_HIDE, $GUI2)
EndFunc
Func _galochka()
ConsoleWrite ("GUICtrlRead($CheckBox = " & GUICtrlRead($CheckBox) & @LF)
If BitAND(GUICtrlRead($CheckBox), $GUI_CHECKED) Then
MsgBox(4096+64, 'Info', 'галочка установлена')
Else
MsgBox(4096+64, 'Info', 'галочка не установлена')
EndIf
EndFunc
func _ProcExit()
exit
endfunc
#include <Misc.au3>
#include <GUIConstantsEx.au3>
$GUI = GUICreate('Test', 400, 300)
$Combo1 = GUICtrlCreateCombo('Q', 100, 50, 100)
GUICtrlSetData(-1, 'E|Z|ESC')
GUISetState()
While 1
$CT = GUICtrlRead($Combo1)
Switch $CT
Case 'Q'
If _IsPressed(11) And _IsPressed(51) Then Exit ;CTRL + Q
Case 'E'
If _IsPressed(11) And _IsPressed(45) Then Exit ;CTRL + E
Case 'Z'
If _IsPressed(11) And _IsPressed('5A') Then Exit ;CTRL + Z
Case 'ESC'
If _IsPressed(11) And _IsPressed('1B') Then Exit ;CTRL + ESC
EndSwitch
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Не знаю, не проверял... Я просто привёл пример как ещё можно сделатьа почему в том коде что я привёл не работает?
да. потому что по сути A = shift + a, об этом кстати в справке написаночувствителен к регистру, как окозалось
В справке посмотрите функцию _IsPressed() или тут:Zaramot
а подскажите где взять весь список клавишь в номерах?