2015-11-04 65 views
1

我想从Inno Setup中卸载exe。我能够从注册表中找到卸载字符串,但我无法以静默方式执行它。我使用的创新安装的RemoveQuotes()功能如下:没有任何窗口与Inno Setup的无声卸载

RunProcess(RemoveQuotes(sUnInstallString), '/SILENT'); 

但它的卸载程序窗口仍然可见。

RunProcess()方法给出如下:

function RunProcess(name : String; args : String) : Integer; 
var 
    path : String; 
    dir : String; 
    errorCode : Integer; 
begin 
    path := ExpandConstant(name); 
    dir := ExtractFileDir(path); 
    Log(' Running: ' + path + ' ' + args + ' ...'); 
    Exec(path, args, dir, SW_SHOWNORMAL, ewWaitUntilTerminated, errorCode); 
    if errorCode = 0 then 
    Log(' Succeeded.') 
    else 
    Log(' Failed. Error Code: ' + IntToStr(errorCode)); 

    Result := errorCode; 
end; 
+0

“它不是卸载它”:它做了什么呢? –

+0

那是一种什么样的卸载程序?它是否也内置在Inno Setup中? –

+0

'sUnInstallString'的确切值是什么? –

回答

1

要运行内置的Inno Setup的没有任何窗口中的卸载程序,使用/VERYSILENTcommand-line parameter

指定,卸载程序不会询问用户用于启动确认或显示消息,指出卸载已完成。不再提示的共享文件将被自动删除。屏幕上仍会显示任何严重错误信息。 当指定'/ VERYSILENT'时,不显示卸载进度窗口。

如果需要重新启动并且未使用'/ NORESTART'命令(请参见下文)并指定'/ VERYSILENT',则卸载程序将不会询问而重新启动。


您也可以考虑使用/SUPPRESSMSGBOXES参数。