首次嘗試發佈此問題時有嚴重的時差。這個重新編輯的問題我只有相關的睡眠剝奪...Inno安裝程序 - 如何用字符串替換UserName
我想知道使用安裝程序捕獲路徑信息,然後刪除任何對用戶配置文件的任何參考的最佳方式。
我的程序旨在從中央網絡位置運行。爲了減少網絡流量,一些文件被複制到本地驅動器,例如。應用程序數據\ MYPROG \
我用一個文件瀏覽對話,因此安裝人員可以指定位置:
pg_LocalPaths := CreateInputDirPage(pg_CentralPaths.id,
'Confirm File Locations For User Settings', 'To improve user experience these locations should be off the network.',
'Default Locations are:', False, 'New Folder');
// Add file browswer item (with an empty caption)
pg_LocalPaths.Add('Supporting files will be copied here by the application:');
pg_LocalPaths.Add('User settings (for a single user) will be saved here:');
// Set initial value
pg_LocalPaths.Values[0] := GetPreviousData('pg_LocalPaths0', ExpandConstant('{userappdata}\{#pFolder}'));
pg_LocalPaths.Values[1] := GetPreviousData('pg_LocalPaths1', ExpandConstant('{userappdata}\{#pFolder}'));
在安裝過程中的本地驅動器位置被指定並存儲在配置文件中。
我沒有預測到的一個問題是,在安裝程序時,配置文件中的路徑是爲單個用戶(即執行安裝的用戶)定義的。在實際應用中的任何用戶應該能夠運行程序...
爲了得到正確的路徑對於任何給定用戶,我的軟件查找字符串「{用戶名}」,並替換它:ENVIRON(用戶名)
MyPath = Replace(MyPath, "{UserName}", Environ(UserName))
因此,例如,在安裝程序中我需要更換:
C:\Users\My Name\My Program OR C:\Users\My Admin\My Program
的東西,如:
C:\Users\\{UserName}\My Program
我alreay有這項工作在我的程序,但我不知道最好的方式讓它在Inno工作...我的初始想法是寫這樣的配置文件:
StringChangeEx(MyPath,「My名稱「,」{用戶名}「,真)
想對此有一些觀點,不知道如何讓它適用於所有情況。
乾杯,
Miral嗨 - 所以倒時差已經磨損了。 ..我想我很欣賞你在說什麼(當然,欣賞評論,不知道我明白)。我允許用戶在任何地方存儲程序。該程序還可以將一些文件(圖像和配置文件)複製到本地位置。在inno中,我讓安裝程序瀏覽到一個文件夾來安裝這些文件。我還要求他們指定一個當地的位置......呃,我得到它......如果本地位置是myDocuments,那麼保存它,而不是路徑 - 正確。遵守我的名字。乾杯, – SlowLearner 2014-10-20 22:17:14
我會建議使用'CreateInputOptionPage'或類似的顯示單選按鈕的「保存在我的文檔」,「保存在應用程序數據」,「保存在指定位置」等,其中只有最底層提供文件夾瀏覽器。 – Miral 2014-10-21 06:34:28