2012-03-26 98 views
0

我在這裏閱讀了一些主題,但是我還沒有找到我的問題的解決方案。 我寫了應該在Windows啓動時啓動的應用程序(C#,WPF,EF,sql server compact)。我試圖用兩種方法實現這一點:程序不是在Windows 7啓動時啓動

  1. 將條目添加到Windows註冊表。不幸的是,這是不適用於Windows 7.我發現在這裏添加一個快捷方式啓動文件夾可以解決我的問題...
  2. 我已經添加快捷方式到我的應用程序在啓動文件夾。不幸的是,它不工作...

我的應用程序是以管理員權限開始,因爲是使用外部dll的sql server compact。也許這是理由?另外我的申請沒有簽名,可能不會。另外編寫一個wcf服務在我的應用程序中可能不是個好主意。

您對此問題有任何建議或解決方案嗎?

+0

該應用程序做什麼?也許將它作爲Windows服務啓動?如果需要UI,UI組件和自動啓動背景組件可以分開嗎? – David 2012-03-26 19:48:16

+2

您是否嘗試過使用任務計劃程序? http://www.sevenforums.com/tutorials/67503-task-create-run-program-startup-log.html – Tudor 2012-03-26 19:50:44

+0

這是一個簡單的應用程序,用戶可以在Windows啓動時啓動或不啓動。例如,並不是每個人都想在Windows啓動時啓動utorrent(更像是一項服務)。你可以想象我的應用程序具有相似的功能。 – nosbor 2012-03-26 19:51:06

回答

0

該問題的解決方案是讓用戶自己的計算機上安裝SQL Server精簡,而不是從管理的應用程序文件夾和更改權限embeding它應用asInvoker的。

2

這是違反Windows準則(並由操作系統強制執行)在啓動過程中放置​​需要UAC提升的程序。每次登錄計算機時都會提示提升,這是一種可怕的用戶體驗。

我會將wcf/sql分解爲一個服務,並保持客戶端的UI提升空閒。

參考:Error message when you start a Windows Vista-based computer: "Windows has blocked some startup programs"

+0

您的鏈接解釋瞭如何做到manualy。你能給我一些建議,我怎樣才能在C#中做到這一點?我需要三個操作:檢查應用程序是否設置爲在Windows啓動時啓動,將應用程序添加到啓動並從啓動中刪除應用程序。我不想使用COM。只有.net。 – nosbor 2012-03-26 19:57:17

+0

你不這樣做。您重構您的應用程序,以便它不需要管理員運行。 – 2012-03-26 19:58:21

相關問題