我InnoSetup腳本在安裝過程結束時打開一個網頁(用戶的默認瀏覽器):Can Inno安裝程序對新的安裝和更新有不同的響應嗎?
[Run]
Filename: http://example.com; Flags: shellexec
不過,我想在網頁不如果應用程序已經被打開存在,即,如果用戶正在安裝該程序的新版本。網頁應該只有在首次安裝後打開。 (我想這是值得一提的是,安裝包括一個AppID,很明顯,在安裝文件旁邊的註冊表值進入)
感謝您一如既往 - 鋁C.
我InnoSetup腳本在安裝過程結束時打開一個網頁(用戶的默認瀏覽器):Can Inno安裝程序對新的安裝和更新有不同的響應嗎?
[Run]
Filename: http://example.com; Flags: shellexec
不過,我想在網頁不如果應用程序已經被打開存在,即,如果用戶正在安裝該程序的新版本。網頁應該只有在首次安裝後打開。 (我想這是值得一提的是,安裝包括一個AppID,很明顯,在安裝文件旁邊的註冊表值進入)
感謝您一如既往 - 鋁C.
是的,這很容易使用腳本。
只要寫
[Run]
Filename: "http://example.com"; Flags: shellexec; Check: NotAnUpdate
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpInstalling then
IsUpdate := FileExists(ExpandConstant('{app}\TheFileNameOfMyApp.exe'));
end;
function NotAnUpdate: Boolean;
begin
result := not IsUpdate;
end;
The answer by @AndreasRejbrand將無法正常工作,如果用戶選擇的可執行文件安裝到不同的位置比上一次。
您可以查詢特定的安裝程序,Inno Setup的註冊表項:
#define AppId "your-app-id"
#define SetupReg "Software\Microsoft\Windows\CurrentVersion\Uninstall\" + AppId + "_is1"
#define SetupAppPathReg "Inno Setup: App Path"
[Setup]
AppId={#AppId}
...
[Run]
Filename: "https://www.example.com/"; Flags: shellexec; Check: not IsUpgrade
...
[Code]
function IsUpgrade: Boolean;
var S: string;
begin
Result :=
RegQueryStringValue(HKLM, '{#SetupReg}', '{#SetupAppPathReg}', S) or
RegQueryStringValue(HKCU, '{#SetupReg}', '{#SetupAppPathReg}', S);
end;
感謝您的超級快速回復!我發現 [代碼] 函數NotAnUpdate:Boolean; 開始 結果:= not FileExists(ExpandConstant('{app} \ app.exe')); 結束; 保持網頁不會打開 - 每一次。難道我做錯了什麼? – 2010-07-08 16:06:01
對不起......不知道評論是未格式化的:-( – 2010-07-08 16:06:52
@Al C:嗯......不應該,當然,你必須用你app的實際文件名替換「app.exe」 ,但是你知道,對嗎?但是,「{app}」是一個常量,它將自動被Program Files子文件夾的路徑所取代 – 2010-07-08 16:09:53