Russian Qt Forum

Qt => Общие вопросы => Тема начата: Flake от Октябрь 08, 2007, 11:14



Название: QProcess не выполняет *.msi
Отправлено: Flake от Октябрь 08, 2007, 11:14
QProcess *setProcess = new QProcess();
setProcess->start("msxml6.msi");

Такой код.

Через батник не предлагать. Хочеться узнать почему не запускает напрямую.


Название: Re: QProcess не выполняет *.msi
Отправлено: Emc от Октябрь 08, 2007, 11:36
а с полным путем или workDir тоже не работает?


Название: Re: QProcess не выполняет *.msi
Отправлено: Пантер от Октябрь 08, 2007, 11:36
А должен? Вообще, насколько я знаю, msi - не исполняемый файл.


Название: Re: QProcess не выполняет *.msi
Отправлено: ритт от Октябрь 08, 2007, 12:23
пантер абсолютно прав
мси - банальный зип(если не ошибаюсь) архив, ассоциированный по расширению с инсталлером

так что:
Код:
     QString program = "msiexec";
     QStringList arguments;
     arguments << "/i" << "msxml6.msi";

     QProcess *myProcess = new QProcess(parent);
     myProcess->start(program, arguments);


Название: Re: QProcess не выполняет *.msi
Отправлено: Вячеслав от Октябрь 08, 2007, 12:32
или "start /w чего-то-тама.msi" тож сожрет ;) хотя через msiexec корректней ....


Название: Re: QProcess не выполняет *.msi
Отправлено: Dodge от Октябрь 08, 2007, 16:05
чтож вы все усложнять любите... Очивидно что у аффтора в системе, файл не ассациирован с конкретным приложением.


Название: Re: QProcess не выполняет *.msi
Отправлено: Sergeich от Октябрь 08, 2007, 16:19
Попробуй QDesktopServices::openUrl("msxml6.msi")


Название: Re: QProcess не выполняет *.msi
Отправлено: ритт от Октябрь 08, 2007, 17:08
2 додж
у меня, например, тоже...
а судя по названию мсиайки, аффтар хатит научить свой программульку ставить недостающие мастдайные компоненты...не будет же он ходить к клиентам и ассофиировать расширения :)


Название: Re: QProcess не выполняет *.msi
Отправлено: Dodge от Октябрь 09, 2007, 11:48
2 додж
у меня, например, тоже...
а судя по названию мсиайки, аффтар хатит научить свой программульку ставить недостающие мастдайные компоненты...не будет же он ходить к клиентам и ассофиировать расширения :)
сам нет, но в месте с софтом можно поставлять специально обученного человека ;D


Название: Re: QProcess не выполняет *.msi
Отправлено: QCasper от Октябрь 09, 2007, 16:15
2 додж
у меня, например, тоже...
а судя по названию мсиайки, аффтар хатит научить свой программульку ставить недостающие мастдайные компоненты...не будет же он ходить к клиентам и ассофиировать расширения :)
сам нет, но в месте с софтом можно поставлять специально обученного человека ;D

Дешевле написать софт, который будет делать подобные мелочи, чем отправлять специалиста с каждой копией.


Название: Re: QProcess не выполняет *.msi
Отправлено: Icoz от Апрель 13, 2008, 18:51
Попробуй QDesktopServices::openUrl("msxml6.msi")
Спасибо! При помощи этого смог-таки открыть pdf в программе, ассоциированной с расширением зваю

ЗЫ. До этого очень долго издевался над qprocess


Название: Re: QProcess не выполняет *.msi
Отправлено: Sergey B. от Апрель 16, 2008, 07:19
До чего же народ ленивый пошёл...
Код:
msiexec /i имя_файла.msi


Название: Re: QProcess не выполняет *.msi
Отправлено: Sergey B. от Апрель 16, 2008, 07:20
А если попросить хелпа
Код:
msiexec /?

получим:
Код:
Windows ® Installer. V 3.01.4000.1823 

msiexec /Option <Required Parameter> [Optional Parameter]

Install Options
</package | /i> <Product.msi>
Installs or configures a product
/a <Product.msi>
Administrative install - Installs a product on the network
/j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
Advertises a product - m to all users, u to current user
</uninstall | /x> <Product.msi | ProductCode>
Uninstalls the product
Display Options
/quiet
Quiet mode, no user interaction
/passive
Unattended mode - progress bar only
/q[n|b|r|f]
Sets user interface level
n - No UI
b - Basic UI
r - Reduced UI
f - Full UI (default)
/help
Help information
Restart Options
/norestart
Do not restart after the installation is complete
/promptrestart
Prompts the user for restart if necessary
/forcerestart
Always restart the computer after installation
Logging Options
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
i - Status messages
w - Nonfatal warnings
e - All error messages
a - Start up of actions
r - Action-specific records
u - User requests
c - Initial UI parameters
m - Out-of-memory or fatal exit information
o - Out-of-disk-space messages
p - Terminal properties
v - Verbose output
x - Extra debugging information
+ - Append to existing log file
! - Flush each line to the log
* - Log all information, except for v and x options
/log <LogFile>
Equivalent of /l* <LogFile>
Update Options
/update <Update1.msp>[;Update2.msp]
Applies update(s)
/uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>
Remove update(s) for a product
Repair Options
/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
Repairs a product
p - only if file is missing
o - if file is missing or an older version is installed (default)
e - if file is missing or an equal or older version is installed
d - if file is missing or a different version is installed
c - if file is missing or checksum does not match the calculated value
a - forces all files to be reinstalled
u - all required user-specific registry entries (default)
m - all required computer-specific registry entries (default)
s - all existing shortcuts (default)
v - runs from source and recaches local package
Setting Public Properties
[PROPERTY=PropertyValue]

Consult the Windows ® Installer SDK for additional documentation on the
command line syntax.

Copyright © Microsoft Corporation. All rights reserved.
Portions of this software are based in part on the work of the Independent JPEG Group.


Название: Re: QProcess не выполняет *.msi
Отправлено: Sergey B. от Апрель 16, 2008, 07:27
чтож вы все усложнять любите... Очивидно что у аффтора в системе, файл не ассациирован с конкретным приложением.

для этого есть гугл (http://www.google.com)