john2834 發表於 2007-12-24 00:24:20

Setup Factory 7.0.4.0安裝完自動執行批次黨的問題

<SPAN id=tpid0><SPAN id=spid0><BR><SPAN class=tpc_content>搞了4小時搞不出來.....<BR><BR>我設定在安裝結束後執行安裝資料夾內的unc.cmd<BR><BR>Shell.Execute(SessionVar.Expand("%AppFolder%\\unc.cmd"), "open", "", "", SW_SHOWNORMAL);<BR><BR>可是每次執行出來好像都是開個TEMP的資料夾執行....<BR><BR>因為我的批次檔有寫更改安裝資料夾內的檔案...他都沒有更改、刪除<BR><BR>而且因為每個使用者都會更改安裝路徑...所以我不能把批次黨改成絕對路徑<BR><BR>所以我還是搞不好.....<BR><BR>拜託大大解決一下....感激</SPAN></SPAN></SPAN>

MarchFun 發表於 2007-12-24 09:33:35

<P>首先,請問你的 %AppFolder% 這個變數的資料夾中的內容是預先設定的還是動態取得?如何取得?</P>
<P>另外,改安裝資料夾內的檔案可以不需要另外寫批次檔,Setup Factory 本身就可以做到。</P>

john2834 發表於 2007-12-24 12:43:38

%AppFolder%室裝資料夾的地方

再選擇安裝路徑的那個路徑就是 %AppFolder%

但是檔案安裝的上去....執行
Shell.Execute(SessionVar.Expand("%AppFolder%\\unc.cmd"), "open", "", "", SW_SHOWNORMAL);
時候卻是在TEMP資料夾執行....

MarchFun 發表於 2007-12-24 15:06:56

<P>我知道,我的意思是,你的預設 %AppFolder% 內容是什麼?一般來說,%AppFolder% 是從 Session Variables 這個地方輸入的,必須要先給它一個值。預設為 %ProgramFilesFolder%\%ProductName%,但你也可以直接輸入如 c:\folder</P>
<P>&nbsp;</P>
<P></P>
<P>&nbsp;</P>
<P>如果你不在這裏指定,或 %AppFolder% 這個目標資料夾內容需要視情況,那麼你必須在程式中放入一段如何決定 %AppFolder% 的程式碼。</P>
<P>&nbsp;</P>
<P>如果你沒給它指定內容,有可能就是這樣才會開出一個 TEMP 資料夾。如果可以的話,你把這頁的設定貼上來看看。</P>

john2834 發表於 2007-12-25 00:08:17

我試過了....還是不行....

我將執行檔案放在    進行安裝時   也就是他把檔案都安裝上去之後

可是他還是執行temp資料夾......


MarchFun 發表於 2007-12-25 10:39:58

我好像發現你的問題所在了!執行檔案是使用 File.Run,而你用的是 Shell.Execute,似乎不太對!

john2834 發表於 2007-12-25 11:48:38

RUN似乎並不會執行.....
OPEN可以執行但他會從TEMP執行....

似乎改不出來...

MarchFun 發表於 2007-12-25 12:27:02

<P>你的 WorkingFolder 是空的!一般來說,WorkingFolder 必須與與 Filename 內的資料夾相同。在此例中必須是 SessionVar.Expand("%AppFolder%")。</P>
<P>&nbsp;</P>
<P>如果還是不行,我的想法是, .cmd&nbsp;的批次檔必須當作參數來執行,也就是說它可能是由 cmd.exe 這支程式來呼叫。所以,在 Filename 中填入 cmd.exe,然後在 args 中再填入 unc.cmd。兩者應該都必須包含路徑。同樣的 WorkingFolder 也必須輸入。</P>
<P>以上均使用 File.Run</P>
<P>&nbsp;</P>
<P>如果&nbsp;File.Run 都不行,改用 File.Open 時,WorkingFolder 也必須輸入。</P>

john2834 發表於 2007-12-25 18:00:03

<P>解決了.....問題來源就是要先取得&gt;&gt;安裝路徑的變數&lt;&lt;</P>
<P>&nbsp;</P>
<P>這東西需要看很多很多的程式碼...在過濾出來他們的安裝路徑是哪個變數</P>
<P>&nbsp;</P>
<P>再把執行的WorkingFolder中輸入安裝路徑的&gt;&gt;變數&lt;&lt;</P>
<P>&nbsp;</P>
<P>這麼簡單....我卻搞了5天....</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>還有問個問題......</P>
<P>&nbsp;</P>
<P>1.有辦法就是安裝到一半執行程式嗎??</P>
<P>&nbsp;</P>
<P>目前好像都是安裝完成後才開始執行....因為設定是在"進行安裝時"</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>2.如何做樹狀選單選擇需要的程式</P>
<P>&nbsp;</P>
<P>這個內建很爛.....就只有打勾....沒有啥典型安裝...一般安裝那種的...</P>
<P>&nbsp;</P>
<P>正在研究這個</P>
<P>&nbsp;</P>
<P>再幫忙一起研究吧~感激</P>

[ 本文最後由 john2834 於 2007-12-25 09:01 PM 編輯 ]

MarchFun 發表於 2007-12-26 09:58:06

<P>安裝到一半執行程式我是沒用過,你可以試試在 While Installing 中的那個 One Progress Bar 畫面的 Actions 找到 On Progress 裏面去執行程式看看。</P>
<P>&nbsp;</P>
<P>至於你說的那個選擇安裝功能,大概就是這樣陽春了(我也沒用過)。</P>

john2834 發表於 2007-12-26 19:26:23

最後我決定了.......

轉戰NSIS......XD
頁: [1]
檢視完整版本: Setup Factory 7.0.4.0安裝完自動執行批次黨的問題