Режим совместимости с XP
Попросил друга написать небольшую утилитку для запуска знаменитого BOA Soft PostInstaller с нужными мне параметрами. Получилось вот что:
Код:
program CMD;
{$R 'run.res' 'run.rc'}
uses
Forms,
Windows,
SysUtils;
begin
WinExec(pchar(ExtractFilePath(Application.exename)+'Presetup.exe /ini:PS_EN.INI /altskin:"\skin\SKIN_EN.INI"'),SW_HIDE);
end.
Проблема в том, что под XP код шикарно работает, а под Vista/7 запускается только если установить режим совместимости с XP. Поскольку софт должен распространяется дальше, это не вариант. Можно ли в самом коде программы указать режим совместимости с XP и, например, запрос прав админа?
Спасибо )
|
treehel вот эту строчку WinExec(pchar(ExtractFilePath(Application.exename)+'Presetup.exe /ini:PS_EN.INI /altskin:"\skin\SKIN_EN.INI"'),SW_HIDE); необходимо заменить примерно на такую конструкцию
Код:
STARTUPINFO cif = {0};
PROCESS_INFORMATION pi;
CreateProcess(NULL, pchar(ExtractFilePath(Application.exename)+'Presetup.exe /ini:PS_EN.INI /altskin:"\skin\SKIN_EN.INI"', NULL, FALSE, NULL, NULL, NULL, NULL, &cif, &pi);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
Примерно, потому что здесь код С, в Делфи аналогичные конструкции (только синтаксис немного отличен).
И запуск будет производится как в ХР так и Севен.
|
Время: 16:49.
© OSzone.net 2001-