protected override void OnBeforeInstall(IDictionary savedState)
{
base.OnBeforeInstall(savedState);
DialogResult result = DialogResult.None;
if (isExcelIsRunning())
{
result = MessageBox.Show("Excel is still running. Please save your work and close Excel, and then click \"Retry\" button to continue with installation.", "", MessageBoxButtons.RetryCancel, MessageBoxIcon.Warning);
}
while (result == DialogResult.Retry)
{
if (!isExcelIsRunning())
{
break;
}
}
}
//check if excel is currently running
private bool isExcelIsRunning()
{
bool flag = false;
Process[] xlProc = Process.GetProcessesByName("excel");
if (xlProc != null)
flag = true;
return flag;
}
以上是我即將用於安裝程序類的代碼。安裝過程中警告用戶有關運行過程
我想在這裏實現的是,我需要安裝程序來檢查安裝過程中當前是否正在運行Excel。如果它正在運行,那麼在安裝開始時應該會彈出消息以提醒用戶關閉Excel,安裝程序應該暫停,直到在進程列表中找不到Excel實例。
回到代碼,我不認爲while
塊是非常正確的,因爲如果在Excel仍在運行的同時用戶單擊「重試」按鈕後可能會導致無限循環。
那麼更好的方法是什麼?我會很感激,如果有人在這裏可以看看上面的代碼,看看我可以改進的地方。
非常感謝。
爲什麼excel不能正常運行? –
因爲這是一個Excel加載項安裝程序,我認爲如果在安裝加載項時我們可以擁有一個乾淨的環境會很好。 – woodykiddy
這很有道理。雖然這裏的問題是你應該用excel運行測試。畢竟,在您進行預安裝檢查後,沒有任何東西阻止用戶再次啓動它。 –