arrayKey := [[kNone,kNoLbL,kSps] ; Если 3-й элемент kNone то конец массива
,[kNone,kNoLbL,"---------------- Запуск основных приложений"]
,[kNone,"FireFox","Запуск Mozilla FireFox","Mozilla Firefox",kNone,kWin,"A"]
,[kNone,"Thunderbird","Запуск Mozilla Thunderbird","Mozilla Thunderbird",kNone,kWin,"S"]
,[kNone,"TotalCommander","Запуск Total Commander","Total Commander",kNone,kWin,"X"]
,[kNone,"Notepad","Запуск Notepad++","Notepad++",kNone,kWin,"Z"]
,[kNone,"CloseActiveWin","Закрыть активное окно",kNone,kNone,kWin,"W"]
,[kNone,"BackUp","Windows BackUp","Acronis True Image Home",kNone,kWin,"F9"]
,[kNone,"UpDate","Windows UpDate","Центр обновления Windows",kNone,kWin,"F10"]
,[kNone,kNoLbL,"---------------- Запуск функций McAfee"]
,[kNone,"vseOpenCon","Открыть консоль",kNone,kNone,kWin,"F5"]
,[kNone,"vseStopScan","Остановить целевое сканирование",kNone,kNone,kCtrl,"F5"]
,[kNone,"vseOnAccessScanLog","Журнал сканирования при обращении к файлу",kNone,kNone,kWin,"F6"]
,[kNone,"vseAccessProtectionLog","Журнал защиты доступа",kNone,kNone,kCtrl,"F6"]
,[kNone,"vseScanON","ON Сканирование при обращении к файлу",kNone,kNone,kWin,"F7"]
,[kNone,"vseScanOFF","OFF Сканирование при обращении к файлу",kNone,kNone,kCtrl,"F7"]
,[kNone,kNoLbL,"---------------- Разное"]
,[kNone,"AnVirTaskManager","Запуск AnVir Task Manager",kNone,kNone,kWin,"F1"]
,[kNone,"ToggleSound","Переключение звука Колонки/Наушники",kNone,kNone,kWin,"Tab"]
,[kNone,"OscarEditor","Запуск OSCAR Mouse Script Editor",kNone,kNone,kWin,"F4"]
,[kNone,"GameKeyOnOff","On/Off игровых клавиш",kNone,kNone,kWin,"F12"]
,[kNone,"HelpKey","Вызов справки по клавишам",kNone,kNone,kWin,"Q"]
,[kNone,kNoLbL,"---------------- Перезапуск Windows"]
,[kNone,"WinRestart","Перезапуск Windows",kNone,kNone,kCtrl,kWin,"F10"]
,[kNone,"PowerOff","Выключение компьютера",kNone,kNone,kCtrl,kWin,"F11"]
,[kNone,"WinBlock","Блокировка Windows",kNone,kNone,kCrush,kCtrl,kWin,"F12"]
,[kNone,kNoLbL,kNone]]
;========================================================================
;++++++Сканирование массива и генерация хоткеев и прочей ерунды++++++++++
;========================================================================
;---Определение размера массива и валидности меток
i := 1
while (arrayKey[i,сText]) ; выполнять пока arrayKey[i,сText] != kNone
{
if (!IsLabel(arrayKey[i, сLabels]))
{
tTitl := "Error in script generation"
tInd := "An error of array declaration is in an index = " i
tLbl := """"arrayKey[i, сLabels]"""" " label is not defined or does not exist"
tTxt := tErrOfExit
MsgBox ,0
, %tTitl%
, %tInd% `n`n %tLbl% `n`n %tTxt%
,30
ExitApp
}
vLenTMP := StrLen(arrayKey[i,cExTxt])
if (vLenTMP > vLenExTxt)
vLenExTxt := vLenTMP
i++
}
сSizeA := i
vLenExTxt += 35
;---Генерация имён клавиш и хоткеев (парсер)
i := 1
loop %сSizeA%
{
j := сHKey
bfName := kNone
bfHotK := kNone
if ((arrayKey[i,сLabels]<>kNoLbL) and (arrayKey[i,сHKey]=kNone)) ; Проверка отсутствия HotKey для метки
{
vLbl := arrayKey[i,сLabels]
MsgBox ,0
, Error
, "%vLbl%" for the label is not defined hotkey `n`n %tErrOfExit%
,10
ExitApp
}
vPriNoKey := 0
while (arrayKey[i,j])
{
bfHotK := bfHotK fnAssigKey(arrayKey[i,j])
k := 1
vFlgNoKey := false
while (assigKeyNo[k] and (!vFlgNoKey))
{
if (arrayKey[i,j]=assigKeyNo[k])
{
vFlgNoKey := true
vPriNoKey := j
;msgbox vPriNoKey := %vPriNoKey%
}
else
vFlgNoKey := false
k++
}
if (!vFlgNoKey)
{
if (j = сHKey)
bfName := arrayKey[i,j]
else
if (vPriNoKey=сHKey)
bfName := arrayKey[i,j]
else
bfName := bfName kGap arrayKey[i,j]
vPriNoKey := 0
}
j++
}
if (bfName)
{
arrayKey[i,сKeys] := bfName ; Пишем названия клавиш
vLabel := arrayKey[i,сLabels] ; Генерируем HotKey
arrayKey[i,сHKeyN] := bfHotK ; Заносим акроним в массив
HotKey %bfHotK%,%vLabel%,UseErrorLevel
vEL := ErrorLevel
if (!vEL) and (!ErrDub(bfHotK,vLabel,i))
vEL := 100 ; Моя ошибка ( все мои ошибки больше 99)
vHK := "HotKey" kSps bfHotK kSps kComma kSps vLabel
if (vEL)
{
if (vEL=1)
vELTxt := "The label name that does not exist"
if (vEL=2)
vELTxt := "Re-use of combinations of hot keys."
if (vEL=3)
vELTxt := "Hot key modifier is not supported."
if (vEL=4)
vELTxt := "This shortcut is not suitable for emulation"
if (vEL=5)
vELTxt := "This keys of accelerators do not exist."
if (vEL=6)
vELTxt := "Non-existent variant of existent hotkey"
if ((vEL=98) or (vEL=99))
vELTxt := "Other errors"
if (vEL=100)
vELTxt := "This hotkey is already used"
MsgBox 0
,Failed to use hotkeys
,Еrror in %vHK% `n Еrror= %vELTxt% `n ErrorLevel= %vEL% `n `n %tErrOfExit%
,15
ExitApp
}
}
i++
}
секцию констант и функций не стал приводить... много букФ 