2014-02-22 20 views
0

如何強制我的應用程序啓動時啓動Windows啓動時通過註冊表項「運行」最小化?我使用這段代碼將我的應用程序添加到Windows啓動通過註冊表,但我不知道如何強制它開始最小化(我只想啓動應用程序時最小化,當它通過註冊表這種方式啓動,通過註冊表,而不是當用戶雙擊.exe時)。一些示例代碼將不勝感激。提前致謝!如何在Windows啓動時通過註冊表項「運行」強制啓動應用程序以最小化啓動?

RegistryKey startapp = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
startapp.SetValue("MyApp", Application.ExecutablePath.ToString()); 
+0

我已閱讀該問題的解決方案,但老實說,我無法弄清楚如何去做。如果有人能提供一些實用的樣品,我很欣賞!謝謝 – AlexC

+0

.lnk文件是通常的做法。如果需要自動生成,則使用IShellLink,SetShowCmd()方法。 –

回答

2

最簡單的方法是爲可執行文件使用參數。假設你的應用叫做MyApp.exe。如果您通過註冊表啓動它,你會做啓動:

MyApp.exe -minimized 

否則,你剛開始沒有MyApp.exe減少到啓動程序。有關使用參數的更多信息,請參閱command line arguments。要啓動最小化應用程序,你可以這樣做:

this.WindowState = FormWindowState.Minimized; 

對於更多的例子,看到在給予@Dexters的鏈接。

+0

在我的Program.cs中,我添加了「string [] args」給Main:'static void Main(string [] args)'並在我的代碼中添加了「-minimize」參數:'startapp.SetValue(「 MyApp.exe「,Application.ExecutablePath.ToString()+」-minimized「);'該條目被添加到註冊表(它顯示在msconfig.exe>啓動中),但應用程序無法啓動。我究竟做錯了什麼?謝謝! – AlexC

+0

很難說。如果在沒有最小化參數的情況下發生同樣的情況,則應用程序的路徑可能不正確。否則我不知道。 – pyrocumulus

+0

感謝您的回答。路徑是正確的。我也嘗試了下面答案中描述的方法,但問題依然存在。該條目被添加到註冊表,但應用程序不會啓動。也許這是因爲它需要管理員。權限... – AlexC

0

我能想到的另一種解決方案是爲應用程序創建一個快捷方式,並將快捷方式的屬性設置爲最小化,並將快捷方式添加到註冊表而不是應用程序。

相關問題