2010-07-22 42 views
3

我已經創建了一個使用C#3.0的應用程序。每當Windows啓動時,我都需要該應用程序來持續啓動和運行。設置並安裝應用程序後,此過程應該發生。 請給你的建議來做到這一點。如何讓我們的窗體(應用程序)在C#中啓動Windows時開始運行?

+1

是它是一個帶有用戶界面或服務的表單應用程序? – 2010-07-22 06:51:41

+0

你用什麼來編寫你的安裝程序?你在安裝過程中創建快捷方式嗎? – fletcher 2010-07-22 06:57:14

+0

它是一個帶有用戶界面的表單應用程序 – Abilash 2010-07-22 07:04:25

回答

3

將程序添加到安裝中的啓動文件夾怎麼樣?創建設置項目時,只需將主程序輸出的快捷方式添加到目標PC的啓動文件夾即可。

+0

如何使用Visual Studio安裝和部署項目爲PC的啓動文件夾創建應用程序的快捷方式? – Abilash 2010-07-22 07:03:39

+0

右鍵單擊設置項目,選擇查看文件系統,並且應該顯示目標文件系統的視圖。在左側你有「目標機器上的文件系統」,用鼠標右鍵單擊那裏,選擇「添加特殊文件夾」 - >「啓動文件夾」 – 2010-07-22 07:40:35

+0

謝謝PM_2,這解決了我的問題 – Abilash 2010-07-22 08:09:24

3

使其成爲Windows服務,並讓它自動啓動。或者,如果您只關心用戶登錄時,請將其放入共享啓動文件夾,以便每位用戶都可以啓動。

4

如果您需要在Windows啓動並持續運行時啓動應用程序,它應該是Windows服務。您將無法將GUI和Windows作爲同一應用程序/項目的一部分,您需要單獨編寫並與服務進行通信。

如果您希望它持續運行而不停止,那麼一個普通的Windows窗體應用程序將無法做到這一點:當然,用戶可以關閉它。他們也可以關閉服務,但是你可以在(在恢復標籤頁上)配置爲在失敗時重新啓動(在任務管理器中被終止)。儘管如此,他們仍然可以手動停止服務 - 但並不容易。

這是Visual Studio中內置的項目模板。根據你的應用程序的作用,通常最好創建一個Thread對象的實例,並將你的邏輯放在一個在新線程上執行的循環中。從OnStartOnStop方法的Service線程本身,你可以創建線程,或者發信號給它停止(或者簡單的說它就是Abort吧)。

通過右鍵單擊設計器中的服務,您可以'添加安裝程序',這意味着如果您運行帶有應用程序名稱的installutil,將安裝該服務,並且如果您在該設置上設置了正確的屬性服務和安裝程序,自動運行。

就您是否需要用戶界面而言 - 您必須想出一些UI來與服務交談;你可以使用命名管道,內存映射文件,或者你可以在命名管道/ TCP提供者中使用WCF(.NET 3.5+),然後直接調用它。

參考:

http://msdn.microsoft.com/en-us/library/aa984464(VS.71).aspx

希望有所幫助。

+0

我不知道有關Windows Service..how任何東西可以讓我的用戶界面的應用程序startup.can請你寫的代碼.. – Abilash 2010-07-22 07:16:04

+2

呀來吧基倫,寫上自己的代碼,他:) – AndrewS 2010-07-22 07:19:30

+0

@Abilash:我也沒有,但作爲程序員,你應該學習新的東西:)嘗試:http://www.google.com/search?q=learn+Windows+Service+c%23 – 2010-07-22 07:27:11

0

您使用的是什麼安裝應用程序?通常他們有內置的功能。

如果你想在你的C#代碼中做到這一點,你將不得不在註冊表中編輯。 Read this article.(我想你也有需要在manifest管理員權限才能做到這一點)

+0

Visual Studio安裝和部署項目 – Abilash 2010-07-22 07:06:52

-1

使用WindowService在的OnStart(){......}你會寫代碼來啓動應用程序

+0

您應該*不*將所有代碼放在'OnStart'中。 'OnStart'方法應該啓動服務然後返回。 – 2010-07-22 07:05:30

相關問題