Здравствуйте!
Определенная программа и в винде и в линуксе под вайном перед запуском выдает друг за другом порядка 15 окошек с предупреждениями, мол в таком-то файле такая-то строка многократно определена. Файл отвечает за русификацию и где-то разработчики там накосячили, но это не важно, ведь после того как раз 15 нажать на кнопку ОК, программа запускается.
В чем вопрос: можно ли запускать из под вайна эту прогу с каким-нибудь дополнительным ключем, чтобы эти предупреждения перед запуском не выводились и прога сразу запускалась?
Спасибо!
Есть ли ключ, ограничивающий вывод предупреждений?
Модератор: Модераторы разделов
-
bluesman
- Сообщения: 2137
- Статус: Блюзмен
- ОС: Ubuntu 9.10
-
Hoblin
- Модератор
- Сообщения: 1442
- Статус: Etersoft team
- ОС: ALT Linux
Re: Есть ли ключ, ограничивающий вывод предупреждений?
Если такие ключи и предусмотрены, то они могут быть только в самой программе, не в wine.
Если решать проблему со стороны вайна, то это потребует вмешательства в код и ручной пересборки вайна. Можно убивать такие окошки на стадии их появления: найти признак, по которому можно однозначно определить это окно (например, текст сообщения или заголовок окна для MessageBox), и при создании сразу отправлять ему сообщение о нажатой ОК. Пользовался таким способом пару раз, до сих пор не вызывает нареканий, работает больше полутора лет.
Если решать проблему со стороны вайна, то это потребует вмешательства в код и ручной пересборки вайна. Можно убивать такие окошки на стадии их появления: найти признак, по которому можно однозначно определить это окно (например, текст сообщения или заголовок окна для MessageBox), и при создании сразу отправлять ему сообщение о нажатой ОК. Пользовался таким способом пару раз, до сих пор не вызывает нареканий, работает больше полутора лет.
-
bluesman
- Сообщения: 2137
- Статус: Блюзмен
- ОС: Ubuntu 9.10
Re: Есть ли ключ, ограничивающий вывод предупреждений?
Hoblin
Можно по-подробнее, как глушить окошки на стадии появления? Это нужно где-то прописывать?
Можно по-подробнее, как глушить окошки на стадии появления? Это нужно где-то прописывать?
-
Hoblin
- Модератор
- Сообщения: 1442
- Статус: Etersoft team
- ОС: ALT Linux
Re: Есть ли ключ, ограничивающий вывод предупреждений?
Самый простой случай. Выясняем, что действительно назойливое окошко - ничто иное, как обычный MessageBox. Убеждаемся в этом, например запустив trace по каналу +relay (подробнее - в один из вопросов FAQ). Смотрим, что вызван MessageBoxA (к примеру) с параметрами, содержащими сообщения назойливого окошка.
Берём исходники, dlls/user32/msgbox.c, ищем там нужную функцию. И дописываем строки вроде
Перекомпилируем библиотеку, пользуемся.
P.S. Ужасно дерзкий хак, но иногда спасает.
P.P.S. Возможно, какие-то ссылки, подробности, большие участки кода и файлы стоит в ЛС обсудить, если вопросы будут?
Берём исходники, dlls/user32/msgbox.c, ищем там нужную функцию. И дописываем строки вроде
Код: Выделить всё
if(!strncmp(text,"начало нашего надоедливого сообщения",sizeof(char)*13))
return IDOK;Перекомпилируем библиотеку, пользуемся.
P.S. Ужасно дерзкий хак, но иногда спасает.
P.P.S. Возможно, какие-то ссылки, подробности, большие участки кода и файлы стоит в ЛС обсудить, если вопросы будут?