2011-12-14 78 views
0

我們有兩個應用程序。發送郵件給用戶,不是從應用程序

  1. MAIN.EXE - 這是主要的應用程序更新
  2. 的Update.exe - 運行更新MAIN.EXE

我的問題是防止用戶進入主要程序。 exe在更新時。

現在,我正在檢查標誌文件,如果標誌文件存在,application.exe立即。

這很好,除非它不告訴用戶任何東西,只是踢出來。

我要發出一條消息,這是他們回覆消息所需的時間,main.exe正在使用中,無法更新。

任何建議如何我可以專業地顯示消息,更新正在進行中,應用程序關閉?

順便說一句,我想過用:

Private Function IsUpdatingPropane() As Boolean 
    Try 
     Dim UpdateInprocess As String = My.Computer.FileSystem.GetParentPath(Application.StartupPath) & "\update.inprocess" 
     If File.Exists(UpdateInprocess) Then 

      'Dim Proc As Process 
      'Dim ProcInfo As New ProcessStartInfo(Configuration.DataFileLocations & Configuration.GasLibrary & "\vbmsg.exe") 
      'ProcInfo.Arguments = String.Format("vbmsg.txt,{0},{1},NIL,NIL,NIL,OK,9996,9997", Configuration.UserId, Configuration.WorkstationId) 
      'ProcInfo.WindowStyle = ProcessWindowStyle.Normal 
      'ProcInfo.WorkingDirectory = Configuration.DataFileLocations & Configuration.GasLibrary 
      'ProcInfo.UseShellExecute = False 
      'Proc = Process.Start(ProcInfo) 


      Application.Exit() 
      Return True 
     End If 
     Return False 
    Catch ex As Exception 
     WriteException(ex) 
     WriteDebugInfo("VerifyNotUpdatingPropane", "An error occurred while checking for update.inprocess file. Please contact SSS for assistance.", True, ex) 
     Return True 
    End Try 
End Function 

但我叫什麼來顯示信息?

在此先感謝!

+0

不是很清楚你究竟是什麼*完全*要求:如何顯示消息,或如何以更好的方式實現exe鎖定? – Tigran 2011-12-14 16:17:07

+0

如何在不鎖定程序的情況下顯示消息,指出無法運行main.exe – ErocM 2011-12-14 16:18:33

+0

需要更多信息,例如您正在使用哪些API/Framework(WPF,WinForms等)?也許是你想要做什麼的代碼示例。從目前的情況來看,當您確定某個標誌文件存在時,您是否可以不顯示某種形式的消息框? – 2011-12-14 16:18:54

回答

1

考慮到的數據,我們有

  1. MAIN.EXE
  2. Updater.exe

在從Main.exeMain.exe推出Updater.exe最終會殺死自己的更新請求。 Updater.exe做它的東西。要解決通知問題,例如當用戶再次點擊Main.exe時,例如,可以使用一些特殊參數啓動Updater.exe的第二個實例,該參數實際顯示消息並從Main.exe退出。在這種情況下,即使用戶暫時不會關閉通知對話框(cofee暫停),您在內存中的當前時間將爲Updater.exe的實例。一個更新,第二個簡單顯示消息,一個關閉的時間消息離開內存。

簡而言之,在Updater.exe本身內部移動消息可視化,它僅在出現特殊命令行參數的情況下出現。

希望這會有所幫助。

1

有幾種可能的解決這個問題,包括:

  1. 創建一個簡單的引導應用程序,它會檢查標誌的文件,如果它不存在,然後啓動MAIN.EXE。否則,用你的錯誤提示用戶。這隻有在你不需要更新boostrapper時纔有效。

  2. 使用AppDomain卷影副本允許用戶在更新時訪問應用程序,然後一旦完成,提示他們重新啓動,並且更新的文件將覆蓋「活動」文件。

相關問題