2012-03-16 57 views
0

我開發了一個小型控制檯應用程序,它實質上是一個url,記錄結果,根據需要重新啓動手機,然後安排自己再次運行。控制檯應用程序啓動時不顯示等待光標

客戶抱怨每次啓動應用程序時都會顯示「洗衣機」圖標(雖然不到一秒鐘)。

我隱藏了等待光標在我的主要方法的第一行,但有沒有辦法阻止等待光標顯示在所有?

static void Main() 
    { 
     //Hide cursor 
     IntPtr hOldCursor = SetCursor(IntPtr.Zero); 

     //Ensure EventLog table is ready 
     PrepareDatabase(); 

     tapi = new Tapi(); 
     tapi.TAPI_Open(); 

     //Ping specified URL and restart phone if required. 
     PingRestart(); 

     tapi.TAPI_Close(); 

     //Set the application to run again after the ping interval has passed 
     SystemTime systemTime = new SystemTime(DateTime.Now.AddMilliseconds(RegistryAccess.PingInterval)); 
     CeRunAppAtTime(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase, ref systemTime); 
    } 
+0

也許如果您將其更改爲線程化任務,那麼可以使用'ManualResetEvent'來指示何時使用MRE的'WaitOne'方法完成線程。儘管如此,我還沒有測試過,所以我不想添加這個解決方案。 – jp2code 2012-03-17 01:34:45

回答

1

無法禁用等待遊標,因爲它出現在應用程序運行之前,因此應用程序無法阻止它。

唯一的方法是在C或彙編中編寫代碼,因爲與.NET可執行文件相比,這些語言的啓動速度非常快。但是,在執行之前,AntiVirus程序仍然可能會阻止它一段時間。

+0

你的另一種選擇是編寫一個更復雜的程序,保持在後臺運行(而不是重新安排自己)。然後等待光標只顯示第一次 - 當你實際啓動應用程序。所以它看起來像這樣:** while(true){Thread.Sleep(delayMS);使用(tapi = new Tapi()){tapi.TAPI_Open(); PingRestart(); tapi_TAPI_Close(); }} ** – 2014-11-08 20:17:22

相關問題