End - программа завершения работы

...
  • Нужна помощь. В процессе доделки End под новый RDsave столкнулся с одной трудностью. Если делать в End чекбокс "Сохранить настройки", то перед выключением/перезагрузкой компа нужно дождаться, пока отработает и закроется RDsave. Как это сделать правильно? При вызове 70.7 в eax возвращается PID, а для 9-й функции нужен номер слота потока. Как его получить? Или перебирать все активные потоки по названию "RDsave"?
  • Heavyiron wrote:При вызове 70.7 в eax возвращается PID, а для 9-й функции нужен номер слота потока. Как его получить?
    18.21
  • Asper wrote:18.21
    Благодарю за наводку!
  • Наваял. На реальной системе, где есть куда сохранить образ, так удобнее, но есть несколько негативных моментов:
    1) Размер выскочил за пределы 512 b (т. е. в образе будет уже 1 Кб).
    2) Если система запущена в эмуляторе, где сохранение не работает (qemu, bochs...) придется либо скидывать чекбокс, либо тискать отмену сначала в opendialog, а потом закрывать RDsave чтобы выключить систему. Неудобно... Можно отключить чекбокс по умолчанию, но тогда смысла в нем нет - проще кнопку оставить.
    В общем, пока в раздумьях...
    Attachments
    end.png
    end.png (2.64 KiB)
    Viewed 8036 times
    Last edited by Heavyiron on Sun Nov 10, 2013 6:40 pm, edited 1 time in total.
  • Кнопку можно было все таки оставить, надо же как то настроить путь для сохранения.
    И почему бы не сохранять чекбокс в ини(скачать почему то не могу)
    Расстояние от чекбокса до кнопок и края окна можно было бы уменьшить имхо
  • Если путь из rdsave.ini не найден, то opendialog и так откроется для выбора пути для сохранения. Ини не прикручивал для экономии размера - все еще надеюсь впихнуть программу в 512 б :). Расстояния могу и уменьшить.
    Ссылку пока убрал - в последний момент нашел баг.
    Last edited by Heavyiron on Sun Nov 10, 2013 6:41 pm, edited 1 time in total.
  • Без сохранения чекбокса в ини, чекбокс становиться не плюсом, а минусом, ведь теперь придется каждый раз нажимать на него, если не нужно сохранять. В ини обязательно (имхо)
  • Дело в том, что если сохранять некуда, то и ини не особо поможет - ты отключил чекбокс, это записалось в ini, но сам ini при следующей загрузке сбросится на дефолтный. Разве что отключить его по умолчанию и тогда уже в ini записывать его включение.
  • Да, не подумал. " Разве что отключить его по умолчанию и тогда уже в ini записывать его включение." так и сделай)
  • Heavyiron
    Хорошо. Возле чекбокса лучше сделать чуть меньше честа по вертикали, т.к. сейчас он притягивает неоправданно слишком много внимания.
    Из хаоса в космос
  • Чекбокс по умолчанию отключил. При включении и успешном сохранении образа значение чекбокса записывается в rdsave.ini. Размер с подключением boxlib и libini ожидаемо вырос (1,3 Кб), так что о 512 байтах пришлось забыть. Как бы заоптимизировать до 1024 б... :)
    R.4213 Тестируйте, у меня вроде стабильно все. Если нет - буду пилить дальше.
    Attachments
    end.png
    end.png (2.32 KiB)
    Viewed 7930 times
  • Heavyiron wrote:Как бы заоптимизировать до 1024 б...
    Попробуй переместить константы и инициализированные данные в начало программы, до кода. Очень часто это помогает kpack сжать сильнее.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • При перезагрузке через клавиатуру Ctrl+Alt+F12 -> Enter значение чекбокса переключается непосредственно перед перезагрузкой, что заставляет удивляться - пытается оно в этот момент сохранить что-нибудь или нет.
    Сделаем мир лучше!
  • CleverMouse wrote:При перезагрузке через клавиатуру Ctrl+Alt+F12 -> Enter значение чекбокса переключается непосредственно перед перезагрузкой, что заставляет удивляться - пытается оно в этот момент сохранить что-нибудь или нет.
    Исправил в 4250. Ошибочно полагал, что при вызове функции 18.9 программа тоже мгновенно убивается и не поставил ret.
  • Who is online

    Users browsing this forum: Ahrefs [Bot] and 4 guests