2011-11-17 40 views
3

我正在通過一個文本文件製作一個VB.net程序,並且正在使用vbc.exe通過命令行編譯它。我正試圖讓一個簡單的程序在我的電腦後臺運行。問題是,它顯示惱人的控制檯窗口。我怎樣才能無法展示?沒有形式,沒有控制檯?沒有UI的VB.net程序

+2

這聽起來像一個服務。 – LarsTech

+0

@LarsTech是的,有點,我真的不需要它是一個。這只是個人使用的小型輕量級程序。沒有什麼需要作爲服務來安裝。我也會自己運行它。 – FreeSnow

+0

但是,如果沒有表單並且沒有控制檯,您將如何與其進行交互?關閉它?用它做點什麼?我認爲我們在這裏需要關於程序的內容。 – LarsTech

回答

8

我認爲你需要某種形式來保持消息循環。

也許NotifyIcon類型的程序。它會使它遠離任務欄和桌面區域。

然後使用Windows爲您的圖標自定義NotifyIcon爲「自定義」菜單中的「僅顯示通知」。

+1

拉爾斯是正確的 - 如果你不想使用Windows服務,那麼你不應該在後臺運行程序,而用戶不能'看到它' - 這也會讓他們選擇退出應用程序而不必求助於任務管理器。 –

8

只要使用Windows窗體應用程序根本不加載窗體!只需進入項目屬性並取消選中啓用應用程序框架即可。現在,在啓動對象下拉菜單中,選擇「sub main」。在項目中添加一個模塊,並在其中添加一個Public Sub Main()。你在main()中做所有的事情,根本不加載表單。

3

1)在項目中添加一個模塊,並創建子主要
2)寫任何你在小組主要希望,並確保你這個說法結束吧:

Application.Run() 

3)開放性然後選擇「Sub Main」作爲啓動對象

因此,您的應用程序將沒有INTERFACE(無FORM/NOT CONSOLE APPLICATION)並且將從Sub Main()運行,此外,它不會終止所有Sub Main中的代碼已執行。您的程序將像NORMAL窗口窗體應用程序一樣運行,並且只會在時退出 你要。

+0

(嗯...有人下了別人的答案,並且自己動手......) – Jet

+0

It worked !,我剛剛在Sub Main中創建了一個system.timers.timer()並開始了它......最後我們只是調用了Application。運行(),它的行爲就像一個服務。使用一段時間真正的消耗掉了25%的CPU。謝謝! – ZeroWorks

+0

@ZeroWorks While-true是一種不好的做法。改用Sleep()函數。如果它有幫助,隨時可以upvote;) – Jet