我有一個C#Windows程序,提供30天的免費試用。之後,用戶必須購買產品或將其鎖定。當程序查詢我的Web服務器時,我做了一個啓動畫面以佔用用戶,以查看用戶是否篡改數據以嘗試讓程序運行而不購買它。獨立線程上的初始屏幕隱藏服務器響應
在我的Windows 8機器上(我使用.Net Framework 3.5),啓動畫面很好地顯示出來,然後MessageBox出現(在閃屏上方),給他們提供信息,如「30天免費審判還剩2天「。
但是,在我的XP機器上,MessageBox被啓動畫面隱藏。關於如何我可以SendToFront()的MessageBox或SendToBack()啓動畫面的任何想法?如果我只是試圖將啓動畫面上的表單發送到後面,這與將整個線程發送到後面不一樣。
下面就來顯示啓動畫面代碼:
static public void ShowSplashScreen() {
// Make sure it's only launched once.
if (ms_frmSplash != null)
return;
ms_oThread = new Thread(new ThreadStart(SplashScreen.ShowForm));
ms_oThread.Name = "SplashScreenThread";
ms_oThread.IsBackground = true;
ms_oThread.SetApartmentState(ApartmentState.STA);
ms_oThread.Start();
while (ms_frmSplash == null || ms_frmSplash.IsHandleCreated == false) {
System.Threading.Thread.Sleep(TIMER_INTERVAL);
}
}
某些源代碼對於診斷問題確實有幫助。 – Pseudonym
您是否正在運行主GUI線程的啓動畫面和消息框? – MikeH
我用這個爲http://www.codeproject.com/Articles/5454/A-Pretty-Good-Splash-Screen-in-C。它從一個單獨的線程運行啓動畫面。我將ShowSplashScreen()的代碼添加到原始問題中......謝謝! – Chuck