Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » GRUB4DOS и GNU GRUB (часть 2)

Модерирует : gyra, Maz

gyra (06-12-2016 03:18): GRUB4DOS и GNU GRUB (часть 3)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

ded2007

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. Делаем резервную копию своего main.inc
 
2. Открываем main.inc в текстовом редакторе.
 
3. Поиском по тексту находим образец "/main.input" (без кавычек разумеется)
    - это начало скрипта, обрабатывающего нажатия клавиш
    - открывающая фигурная скобка, идущая после указанного текста, показывает  
начало скрипта
    - закрывающая скобка, соответствующая данной (все фигурные скобки парные,
поэтому удобно использовать редактор с подсветкой синтаксиса)  сопровождена
словом } def и расположена после блока
    dup 0 ne {
        pop 0
    } if

    - внутри этого скрипта анализируются нажатия различных клавиш. Поскольку
код нажатой клавиши сравнивается с кодами подлежащими обработке, то скрипт
состоит из набора блоков "if", которые ограничены командами вида
    dup ПроверяемыйКОД eq {
    ....
    ....
    pop 0
    } if

 
Нас будут интересовать блоки от keyUp и keyDown.
 
4. Если все вышесказанное понятно и Вы идентифицировали все блоки, то можно
приступать к модификации скрипта.
    - НАЧАЛО СКРИПТА. Блок ...
    /main.input {  
        dup 0 eq { return } if

 
    ... заменяем на...
    /main.input {  
        /s.repeat 0 def        % ded
        dup 0 eq { return } if

 
    - БЛОК keyUp...
    dup keyUp eq {
        menu.entry 0 gt {
            menu.entry false MenuSelect
            menu.entry menu.shift eq {
                /menu.shift menu.shift 1 sub def main.drawmenu
            } if
            /menu.entry menu.entry 1 sub def
            menu.entry true MenuSelect
        } if
            pop 0
    } if

 
    ... заменяем на ...
    dup keyUp eq {
        menu.entry 0 gt {
            menu.entry false MenuSelect
            menu.entry menu.shift eq {
                /menu.shift menu.shift 1 sub def main.drawmenu
            } if
            /menu.entry menu.entry 1 sub def
            /s.repeat keyUp def        % ded        menu.entry true MenuSelect
        } if
            pop 0
    } if  

 
    - БЛОК keyDown...
    dup keyDown eq {
        menu.entry menu.texts length 1 sub lt {
            menu.entry false MenuSelect
            menu.visible.entries menu.entry menu.shift sub sub 1 eq {
                /menu.shift menu.shift 1 add def main.drawmenu
            } if
            /menu.entry menu.entry 1 add def
            menu.entry true MenuSelect
        } if
        pop 0
    } if

 
    ... заменяем на ...
    dup keyDown eq {
        menu.entry menu.texts length 1 sub lt {
            menu.entry false MenuSelect
            menu.visible.entries menu.entry menu.shift sub sub 1 eq {
                /menu.shift menu.shift 1 add def main.drawmenu
            } if
            /menu.entry menu.entry 1 add def
            /s.repeat keyDown def        % ded         menu.entry true MenuSelect
        } if
        pop 0
    } if

 
    - КОНЕЦ СКРИПТА.  Блок ...
        dup 0 ne {
            pop 0
        } if  
    } def

 
    ... заменяем на ...
        dup 0 ne {
            pop 0
        } if  
    s.repeat 0 ne { menu.texts menu.entry get "---" eq { s.repeat main.input }  { menu.entry true MenuSelect } ifelse  } if        % ded
    } def

 
5. "---" - это образец строк меню, которые должны пропускаться при движении  
вверх/вниз. Можете задать свой вариант, например 7 пробелов. Обратите внимание,
что первый пробел после "title" служебный и не является частью строки меню.
Совпадение должно быть точным, т.е. "---" и "--- " не одно и то же.
 
6. Сохраните изменения в main.inc, перекомпилируйте gfxboot тему, добавьте в  
menu.lst команды
    title ---
    configfile /menu.lst

и тестируйте.

Всего записей: 224 | Зарегистр. 13-02-2009 | Отправлено: 00:13 29-09-2010 | Исправлено: ded2007, 00:30 29-09-2010
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » GRUB4DOS и GNU GRUB (часть 2)
gyra (06-12-2016 03:18): GRUB4DOS и GNU GRUB (часть 3)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru