2016-11-17 8 views
0

Я пытаюсь сделать мой Inno программу установки для запуска этой команды steam://Как использовать Setup Inno для выполнения команды, как пара: //

Эта команда используется, чтобы открыть программу Steam, через окна RUN инструмент.

Нажмите WindowsKey+R и введите команду steam:// и откроется программа Steam.

Как я могу заставить Inno Setup вызвать эту команду?

Я попытался следующие без успеха:

[Run] 
Filename: "C:\Users\LUCAS\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Run.lnk"; Parameters: "steam://; 

также попробовал этот код, приведенную ниже, и вызов AfterInstall: RunOtherInstaller; в разделе [Files], но он дает ошибку при установке: %1 is not a valid Win32 application

[Code] 
procedure RunOtherInstaller; 
var 
    ResultCode: Integer; 
begin 
    if not Exec(ExpandConstant('C:\Users\LUCAS\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Run.lnk'), 'steam://', '', SW_SHOWNORMAL, 
    ewWaitUntilTerminated, ResultCode) 
    then 
    MsgBox('Error!!' + #13#10 + 
     SysErrorMessage(ResultCode), mbError, MB_OK); 
end; 

Эта ссылка немного странно ... Это фактически указывает на никуда, когда я пытаюсь следовать за ним, но это то, что вызывает инструмент RUN для Windows.

Я знаю, что могу позвонить Steam.exe из папки по умолчанию C:\Program Files (x86)\Steam\Steam.exe, но я стараюсь избегать проблем с пользователями, у которых нет Steam в папке по умолчанию ... Поэтому я пытаюсь использовать этот метод, запускающий этот «внешний протокол» (я не знаю, правильно ли это имя): steam://

ответ

0

Вы можете проверить реестр на наличие Steam. часть моего сценария для запуска установки:

[Code] 
function SteamNotInstalled(): Boolean; 
var 
Path: String; 
ErrorCode: Integer; 
begin 
    Result := True; 
    if (RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Valve\Steam', 
    'InstallPath', Path)) and (FileExists(Path + '\Steam.exe')) then begin 
       ShellExec('', ExpandConstant('"' + Path + '\Steam.exe' + '"'), ' -install' + ExpandConstant(' "{src}"'), 
       '', SW_SHOW, ewNoWait, ErrorCode); 
       Result := False; 
    end; 
end; 

Или вы можете использовать shellexec в [Run] section

0

Вы можете открыть steam:// URL, как и любой другой URL.

procedure OpenUrl(Url: string); 
var 
    ErrorCode: Integer; 
begin 
    ShellExec('open', Url, '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode); 
end; 

Или используйте вход postinstall[Run] раздел:

[Run] 
Filename: steam://xxx; Description: "Run game"; Flags: postinstall shellexec 

Смотрите также