Page 5 of 8

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

Posted: Tue Oct 22, 2013 12:31 pm
by Serge
4

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

Posted: Sun Nov 10, 2013 12:12 pm
by Heavyiron
Нужна помощь. В процессе доделки End под новый RDsave столкнулся с одной трудностью. Если делать в End чекбокс "Сохранить настройки", то перед выключением/перезагрузкой компа нужно дождаться, пока отработает и закроется RDsave. Как это сделать правильно? При вызове 70.7 в eax возвращается PID, а для 9-й функции нужен номер слота потока. Как его получить? Или перебирать все активные потоки по названию "RDsave"?

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

Posted: Sun Nov 10, 2013 1:03 pm
by Asper
Heavyiron wrote:При вызове 70.7 в eax возвращается PID, а для 9-й функции нужен номер слота потока. Как его получить?
18.21

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

Posted: Sun Nov 10, 2013 1:09 pm
by Heavyiron
Asper wrote:18.21
Благодарю за наводку!

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

Posted: Sun Nov 10, 2013 5:59 pm
by Heavyiron
Наваял. На реальной системе, где есть куда сохранить образ, так удобнее, но есть несколько негативных моментов:
1) Размер выскочил за пределы 512 b (т. е. в образе будет уже 1 Кб).
2) Если система запущена в эмуляторе, где сохранение не работает (qemu, bochs...) придется либо скидывать чекбокс, либо тискать отмену сначала в opendialog, а потом закрывать RDsave чтобы выключить систему. Неудобно... Можно отключить чекбокс по умолчанию, но тогда смысла в нем нет - проще кнопку оставить.
В общем, пока в раздумьях...

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

Posted: Sun Nov 10, 2013 6:15 pm
by e-andrew
Кнопку можно было все таки оставить, надо же как то настроить путь для сохранения.
И почему бы не сохранять чекбокс в ини(скачать почему то не могу)
Расстояние от чекбокса до кнопок и края окна можно было бы уменьшить имхо

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

Posted: Sun Nov 10, 2013 6:22 pm
by Heavyiron
Если путь из rdsave.ini не найден, то opendialog и так откроется для выбора пути для сохранения. Ини не прикручивал для экономии размера - все еще надеюсь впихнуть программу в 512 б :). Расстояния могу и уменьшить.
Ссылку пока убрал - в последний момент нашел баг.

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

Posted: Sun Nov 10, 2013 6:25 pm
by e-andrew
Без сохранения чекбокса в ини, чекбокс становиться не плюсом, а минусом, ведь теперь придется каждый раз нажимать на него, если не нужно сохранять. В ини обязательно (имхо)

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

Posted: Sun Nov 10, 2013 6:29 pm
by Heavyiron
Дело в том, что если сохранять некуда, то и ини не особо поможет - ты отключил чекбокс, это записалось в ini, но сам ini при следующей загрузке сбросится на дефолтный. Разве что отключить его по умолчанию и тогда уже в ini записывать его включение.

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

Posted: Sun Nov 10, 2013 6:33 pm
by e-andrew
Да, не подумал. " Разве что отключить его по умолчанию и тогда уже в ini записывать его включение." так и сделай)

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

Posted: Mon Nov 11, 2013 12:44 am
by Leency
Heavyiron
Хорошо. Возле чекбокса лучше сделать чуть меньше честа по вертикали, т.к. сейчас он притягивает неоправданно слишком много внимания.

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

Posted: Tue Nov 12, 2013 1:57 am
by Heavyiron
Чекбокс по умолчанию отключил. При включении и успешном сохранении образа значение чекбокса записывается в rdsave.ini. Размер с подключением boxlib и libini ожидаемо вырос (1,3 Кб), так что о 512 байтах пришлось забыть. Как бы заоптимизировать до 1024 б... :)
R.4213 Тестируйте, у меня вроде стабильно все. Если нет - буду пилить дальше.

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

Posted: Tue Nov 12, 2013 2:35 am
by Mario_r4
Heavyiron wrote:Как бы заоптимизировать до 1024 б...
Попробуй переместить константы и инициализированные данные в начало программы, до кода. Очень часто это помогает kpack сжать сильнее.

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

Posted: Fri Nov 15, 2013 3:12 pm
by CleverMouse
При перезагрузке через клавиатуру Ctrl+Alt+F12 -> Enter значение чекбокса переключается непосредственно перед перезагрузкой, что заставляет удивляться - пытается оно в этот момент сохранить что-нибудь или нет.

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

Posted: Mon Nov 18, 2013 9:57 am
by Heavyiron
CleverMouse wrote:При перезагрузке через клавиатуру Ctrl+Alt+F12 -> Enter значение чекбокса переключается непосредственно перед перезагрузкой, что заставляет удивляться - пытается оно в этот момент сохранить что-нибудь или нет.
Исправил в 4250. Ошибочно полагал, что при вызове функции 18.9 программа тоже мгновенно убивается и не поставил ret.