還是關於安裝完畢後啓動程序的問題

之前提出過兩個類似的問題,都沒有得到滿意的答覆根據微軟的幫助,製作了繼承與Installer類的一個自動運行的類

現在的問題是:在彈出結束安裝窗口之前的確能夠起到M.exe,但是,在啓動M之後安裝結束窗口仍然存在,
也就是說安裝程序和M同時存在了,
在M打開後,還需手動去關閉安裝程序的最後一個結束窗口。
有什麼辦法可以在安裝程序的最後一個窗口關閉之後再打開M?
裏啓動,但是好像根本沒反應,似乎沒有執行到這裏一樣,
不能讓M去關掉安裝程序最後一個窗口麼?這樣做可能是可以的,但是感覺有點“有始無終”,好像安裝還沒完成一樣,

有時間的話研究下wix下吧,解決這個問題很簡單,添加一個Custom Action,幾行xml標記就可以,不用寫任何c#代碼;最近我剛好把相關的資料整理了一下,不過還沒寫完,有興趣可以參考

Installer類編譯後,需要在安裝程序的自定義操作中的安裝選項中添加進來。這樣Installer中的事件纔會觸發。另外即使在OnAfterInstall事件中寫啓動程序,這個時候安裝程序最後一步退出仍然沒有執行,界面還是存在的。解決方法未知。期待做過的大蝦提示。。。在創建的類中加入重載代碼

然後, 在你建立的打包項目中,在custom action(自定義操作)中的安裝上點右鍵新建,選擇你的啓動程序,應該就可以了

放心吧,wix是完全免費的,它是微軟根據windows installer使用c#開發的一個打包工具,完全兼容vs

這段代碼的作用就是把安裝程序結束界面置到(被調用程序的)前面感覺自然一點,
但是還是有些怪怪的,能否做到: 先關閉安裝程序-->再啓動被調用程序

windows installer本身就帶有啓動應用程序的Action,完全不用再寫Action來實現的,但是vs自帶的打包應該很難實現這種效果;如果自己寫Action也不容易實現,因爲所有的Action(包括自定義的Action)都包含在InstallExecuteSequence或者InstallUISequence序列中,這些序列都在ExitDialog(結束界面)調用之前就執行完了,所以要在最後執行程序,我們必須把Action綁定到完成按鈕的事件上,使用wix或者直接編輯msi可以達到這種效果,下面是直接編輯msi實現方法:首先下載orca,它是msi數據庫編輯工具。

使用orca打開msi文件,在Tables列表中找到CustomAction表,添加新行

Source字段值就是你執行文件的名稱,它是File表的外鍵,必須跟File表中File列的值對應
保存修改後的msi文件,就大功告成了,此方式已測試,絕對可行
有點大意了,之前回復中我用的還是wix的安裝界面,發現vs打包的程序最後的界面不是ExitDialog,而是FinishedForm,因此需要上面ControlEvent表添加的記錄修改

你就不能學下其他軟件麼
弄一個checkbox,Text就是 安裝結束啓動程序
打鉤的話 安裝完畢點關閉 就啓動程序啊 這樣不就可以了

來源:足球直播


發佈了40 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章