2013-05-30 11 views
0

我可以通過使用安裝類似文本文件的applescript在MacOSX上實現我的目標,然後在同一文件夾的程序設置文件中插入幾行文本。最終窗口爲主程序提供啓動選項。 對於Windows,Inno Setup會安裝該文件,然後安裝第二個文件,用於將用戶的程序appdata設置文件夾中的設置文件「替換」(如程序開發人員推薦的那樣)。這對新用戶來說很好,但有經驗的用戶不會想要他們的主設置文件被替換。如何安裝exe,運行它,然後在使用Inno安裝程序完成安裝過程之前刪除它?

我的目標是複製Mac進程。我唯一知道的方法是使用批處理文件(在Win XP和8上運行)將文本插入到磁盤上的設置文件中。 AFAIK批處理文件需要位於同一文件夾中。因此,安裝程序將安裝初始文件,然後安裝批處理文件。 這個批處理exe文件需要'運行',我想找到一個方法來刪除批處理文件後立即。然後該過程結束並進入最終的Inno Setup窗口。這是可能的,如果是這樣,如何?如果可能的話,一些示例代碼將是理想的。

如果有比使用批處理文件更好的方法,那麼這可能是更好的解決方案,因此不需要刪除任何文件。

我在過去的一年中通過StackOverflow瞭解了很多關於使用Inno安裝程序的知識,但無法找到上述解決方案。這是一個社區項目。

回答

1

您可以使用Inno Setup Pascal Scripting支持及其支持類和函數。像這樣的東西應該工作:

procedure CurStepChanged(CurStep: TSetupStep); 
var 
    Lines: TStringList; 
    FileName: string; 
begin 
    if CurStep = ssPostInstall then 
    begin 
    FileName := ExpandConstant('{app}'); 
    FileName := AddBackslash(FileName) + 'YourFile.txt'; 
    Lines := TStringList.Create; 

    // Load existing lines from file 
    Lines.LoadFromFile(FileName); 
    // Add your information to the end of the file 
    Lines.Append('Your changed information'); // Repeat as needed 
    Lines.SaveToFile(FileName); 
    Lines.Free; 
    end; 
end; 

你可以找到來自位於Inno Setup的例子文件夾中的文件CodeExample1.iss上面調用該函數的一個例子。

+0

謝謝。該腳本忽略了此代碼的添加,直到我替換了函數AppendLinesTosettings():Boolean;用程序CurStepChanged(CurStep:TSetupStep);三行插入。我將它們分別放在Lines.Append('開始的單獨行上,但是安裝程序會將每行的3個副本插入到文件中。我可能會做錯什麼? – Jenn

+0

:-)我的例子只是一個調用的函數。我應該提到你應該從哪裏調用它。我將對未來發現這個問題的讀者進行編輯以做出改變。謝謝。 –

+0

這很好,謝謝。它也擺脫了線條的重複。非常感謝你!併爲快速反應。 – Jenn

相關問題