2013-10-31 32 views
0

我有一個用C#編寫的桌面應用程序,我想在啓動時運行它。
此外還有一個功能,如何僅在啓動時運行一個函數?

Index() 

應該每運行啓動一次。
我的意思是應該以這樣一種方式調用這個函數,只有當應用程序在暴發戶時啓動,而不是在用戶手動啓動應用程序時才運行。我想知道,我該怎麼做?儘管做了很多努力,但我一直沒能想到這個問題富有成效的邏輯。我的桌面應用程序將在Windows 7

+0

它可能取決於操作系統。在Linux上,一個很好的訣竅是爲'crontab'(或者'/ etc/init.d /'等中的一些服務腳本)使用'@ reboot'項。我不知道Windows。 –

+0

@ user65439我不認爲你正在正確地閱讀問題 –

+4

使用在啓動時運行時使用的命令行參數。例如'c:\ path \ myapp.exe -startup' – CodesInChaos

回答

3

一個可能很容易的嘗試將是一個命令行參數,你可以將「特殊」的邏輯,你需要運行。當用戶手動啓動應用程序時,該「魔術」參數將不存在,並且邏輯不會發生。

在控制檯應用程序,所有你需要做的是檢查Main()方法的args參數。

要啓用命令行參數在Windows Main方法窗體應用程序,您必須手動修改主的簽名中的Program.cs。由Windows窗體設計器生成的代碼創建一個沒有輸入參數的Main。您還可以使用Environment.CommandLine或Environment.GetCommandLineArgs從控制檯或Windows應用程序中的任意位置訪問命令行參數。

MSDN包含像往常一樣大量信息的引用。

+0

我已經理解了您提供的邏輯,但是如何檢查應用程序是否在啓動時啓動或正常啓動?我需要這個「魔術」參數 –

+0

當您定義啓動應用程序的啓動動作時,請自己提供「魔術」參數。這意味着你將在應用程序中使用它來知道它是在啓動時啓動的。 「正常」啓動不會有這個參數,所以你的應用程序會知道它在啓動時沒有運行。 – Alex

1

有來檢查應用程序已經在計算機啓動時啓動了沒有標準的方式運行。一個可能的解決方案是傳遞一個命令行參數,如/startup,並在應用程序啓動時檢查此參數。在解決方案

相關問題