2009-05-29 75 views
0

我的應用程序(使用C#.net開發)現在打開我卸載,InstallShield提供消息指出應用程序已經打開並且是否真的要關閉應用程序。選擇「忽略」繼續卸載。某些文件和應用程序的exe不會關閉。如何在卸載時通過installshield關閉它們。或者我必須設置一些屬性。我知道在卸載時添加自定義操作,我可以殺死進程,但不應該安裝installshield嗎?安裝Shield 2009 Premier,卸載程序未關閉進程/ gui

回答

0

如果您的目標是重新啓動打開的應用程序並且不兌現「忽略」選擇,您可以考慮將「REBOOT」屬性設置爲「強制」。這將要求用戶重新啓動系統,從而達到您想要的結果。

+0

1.硒tup應用程序(運行setup.exe),2.運行程序,3.現在卸載程序(程序仍然打開),4. UnInstall警告應用程序已打開,5.繼續卸載選擇忽略,6卸載完成,7 。現在結果是exe文件和一些dll沒有被刪除,應用程序仍然是打開的! 我的意思是,在卸載過程中不應該自動關閉應用程序,並通過卸載刪除相關的DLL和EXE文件? 如果應用程序未打開,卸載將刪除安裝過程中複製的每個文件/目錄。 – Samir 2009-06-06 21:46:45

0

如果你的項目類型的InstallScript MSI或支持INSTALLSCRIPT,我喜歡寫代碼,此例如:

export prototype _Server_UnInstalling(); 
function _Server_UnInstalling() 
STRING Application, ServiceName; 
begin  
    //application name 
    Application = "Demo"; 
    MessageBox("In _Server_UnInstalling",INFORMATION); 
    //Check whether application is running or not. 
    if ProcessRunning(Application) then 
     MessageBox("Demo is running",INFORMATION); 
     //Close server Application 
     ProcessEnd(Application); 
    endif;       

    //if application is having service at the background then 
    ServiceName = "Demo Server"; 
    //Uninstall the server windows services on uninstallation. 
    ServiceRemoveDuringUninstallation(ServiceName); 

end; 

上面的例子給出的骨架,你需要實現邏輯ProcessRunning, ProcessEnd和ServiceRemoveDuringUninstallation方法,你可以參考Installshield的幫助文檔,他們給文檔連同源代碼

希望這有助於...

相關問題