Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Режим совместимости с XP (http://forum.oszone.net/showthread.php?t=185876)

treehel 19-09-2010 14:22 1499059

Режим совместимости с 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 и, например, запрос прав админа?

Спасибо )

Admiral 19-09-2010 23:18 1499411

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.

Время: 16:49.
© OSzone.net 2001-