pashazz 18.03.2010 21:24
Qt Software — WineGame - программа для подготовки Wine и установки в него приложений
WineGame - это программа (написана на Qt4.6/C++) для легкой установки игр и приложений в Wine.1. Чем должно быть
Это должна быть программа, которая делает большинство манипуляций с Wine за пользователя.
Например при вставке диска должно появляться предложение об установке Windows-программы:
Также должны быть варианты ручной установки (по выбору).
2. Что сделано сейчас
- Установка программы и подготовка Wine по скриптам
- GUI
- Диалог простой установки приложения при вставке диска (и определение игровых дисков) (см. выше).
- Интеграция с утилитой Winetricks
-Управление установленными приложениями.
То есть, при достаточном количестве скриптов можно свести установку Windows-приложения к простому мастеру, без манипуляций со стороны пользователя.
3. Возможности скриптования.
О формате пакета WineGame вы можете прочесть в Wiki на сайте проекта.
Я расскажу, что вообще сейчас возможно.
1) можно задать скрипты preinst и postinst, к-рые будут запускаться до и после запуска EXE
2) можно задать путь к файлу setup.exe из корня диска, чтобы оно запускалось автоматически, если WineGame распознает диск.
3) можно указать в файле .cdrom (в пакете WineGame) имена файлов и папок корневой ФС диска, чтобы WineGame распознал диск.
4) есть интерфейс управления префиксом (виртуальной "windows")
5) можно указать путь для скачивания дистрибутива Wine, оптимизированного под игру.
6)есть интеграция с winetricks. Для того чтобы ее задействовать, нужно лишь в control-файле пакета указать через пробел пакеты Winetricks. Их ОЧЕНЬ много, это и установка определенных ключей реестра, и установка шрифтов, DirectX, .NET, IE 6, IE7, это и установка версий Windows, и много чего еще.
4. Что нужно сделать
* нотификации через D-Bus
* правку .desktop-файлов, создаваемых Wine (к сожалению Wine не может определить, c помощью какого бинарника этого самого wine`а была установлена программа, поэтому по desktop-файлу запускается системная версия Wine, а не "кастомного".
* загрузку необходимых файлов не через wget, как сейчас (это замораживает GUI), а системными средствами Qt.
* Скрипты, скрипты, скрипты!!!!
Спасибо за помощь.
Официальный сайт.
pashazz 18.03.2010 21:25 #
+ 0 -
Сразу скажу, мой предыдуший проект SaneSetup я заменил на убунтуреп с пакетами sane из Git и фирмварем.
А почему собственно использование wget замораживает GUI? Как раз наоборот ИМХО лучше иметь возможность выбирать утилиту загрузки.
И что за такие "Скрипты, скрипты, скрипты!!!"?
И что за такие "Скрипты, скрипты, скрипты!!!"?
> wget замораживает GUI?
Я не могу запустить wget в отдельном потоке, т.к. тогда все "побежит вперед" (я пробовал, да.)
А смысла запускать в отдельном потоке wget нету, я не могу взять данные от wget (я не осилил парсер его вывода)
> Скрипты, скрипты, скрипты!!!
Требуется много скриптов для поддержки игр, да.
Я не могу запустить wget в отдельном потоке, т.к. тогда все "побежит вперед" (я пробовал, да.)
А смысла запускать в отдельном потоке wget нету, я не могу взять данные от wget (я не осилил парсер его вывода)
> Скрипты, скрипты, скрипты!!!
Требуется много скриптов для поддержки игр, да.
и не надо меня называть неосилятором QThread, там его использование просто не оправдано.
Я не могу запустить wget в отдельном потоке, т.к. тогда все "побежит вперед" (я пробовал, да.)
А смысла запускать в отдельном потоке wget нету, я не могу взять данные от wget (я не осилил парсер его вывода)
Да ну, что за ерунда. Все можно взять, все можно получить и использование QThread абсолютно оправдано.
Будьте добры, покажите мне рабочий пример чтения выхлопов wget в Qt. У меня не получилось (использовал функции QProcess. Сигнал readyRead не вызывается вообще, ф-ция readAll возвращает пустую строчку.
А в чём профит C++ в таком мидлварном проекте? Скорости не требуется, в памяти оно не висит... Не понимаю.
знания Qt можно поднимать и на скриптовых языках, честно не понимаю, зачем "париться" в данном случае с плюсами, лично мне было бы жалко своего времени.
Без обид, но подобные вам уже утомили подобной хренью. Надо обязательно попиздеть сказать, что зачем, надо вот так и т.п. Тут все просто - не пользуйтесь, если не устраивает.
извините, где вы увидели, чтобы я кому-то что-то указывал? или высказывание мнения вы приравниваете к пиздежу принуждению?
1) я не могу читать иконки с диска (формат ico не поддерживается Qt)
А так я подставил первую попавшуюся иконку в скрипт варкрафта...
А так я подставил первую попавшуюся иконку в скрипт варкрафта...
не совсем бмп, но довольно близко
хотя вот факт - если переименовать бмп в ико, то винды в некоторых случаях цепляют его как иконку. но не всегда
но вот далеко не всегда иконка бывает в ико или ещё чём-нибудь подобном - очень часто иконка в екзешник воткнута
кстати, была статья на убунтуфоруме русском про иконку из екзешника в лычку вайна - думается это то самое, что надо тут
ну и полюбому лучше флажок винды, чем пузырь скайпа - хотябы в тему
хотя вот факт - если переименовать бмп в ико, то винды в некоторых случаях цепляют его как иконку. но не всегда
но вот далеко не всегда иконка бывает в ико или ещё чём-нибудь подобном - очень часто иконка в екзешник воткнута
кстати, была статья на убунтуфоруме русском про иконку из екзешника в лычку вайна - думается это то самое, что надо тут
ну и полюбому лучше флажок винды, чем пузырь скайпа - хотябы в тему
хаха, и все-таки у меня получилось получать ico файлы с диска. Это хорошо.
я тебя очень категорически поздравляю с этим достижением
а получать иконку из вендобинарника ?
а получать иконку из вендобинарника ?
playonlinux, q4wine. зачем еще одна программа?
если интересен этот вопрос, то лучше помогите уже существующим проектам.
если интересен этот вопрос, то лучше помогите уже существующим проектам.
Я решил сделать программу, в к-рой разберется даже ребенок, а q4wine очень сложен. PlayOnLinux - да, что-то похожее, но он тоже интерфейсом не блещет.
P.S. C++ я выбрал для поднятия знаний.
P.S. C++ я выбрал для поднятия знаний.
Не знаю, чем вам не понравился PlayOnLinux, вполне приемлемый на мой взгляд интерфейс. Но это дело ваше, как и выбор языка.
под спойлером кусочек оффтопика:
фтопик:
было бы приятно увидеть ченжлог
хотябы в будущем
ченжлог это вообще очень приятная вещъ
по одному взгляду на ченжлог можно сразу понять, что девелопер занимается не *****, а риально пашет. пашуших девелоперов видеть очень приятно.
ня
а я вот когда-то давно думал, как же сделать так игру, чтобы её можно было играть не только в винде (это ещё в конце 90-х было)
в начале 2000-х я сделал игру под дос, которая прекрасно запускается хоть в винде, хоть в вайне, хоть в доскоробке
а недавно я нашел способ лучше - просто сделал игру нативно для линукси
получилось даже лучше, ня!
в начале 2000-х я сделал игру под дос, которая прекрасно запускается хоть в винде, хоть в вайне, хоть в доскоробке
а недавно я нашел способ лучше - просто сделал игру нативно для линукси
получилось даже лучше, ня!
фтопик:
было бы приятно увидеть ченжлог
хотябы в будущем
ченжлог это вообще очень приятная вещъ
по одному взгляду на ченжлог можно сразу понять, что девелопер занимается не *****, а риально пашет. пашуших девелоперов видеть очень приятно.
ня
1) добавил changelog (оч. подробный, смотрите Git)
2) не увидел примеров (не от вас вроде), перешел с wget на технологии Qt
2) не увидел примеров (не от вас вроде), перешел с wget на технологии Qt
QNetworkAcessManager метод я захардкордил. Но если вам это не нравится, пришлите метод с использованием wget (только чтобы GUI не зависал, и был индикатор прогресса).
Старый wget-метод есть в коде, он закомментирован
Старый wget-метод есть в коде, он закомментирован