2012-02-07 211 views
0

我檢查了一些其他示例。在Windows啓動時啓動應用程序啓動

我正在研究winfrom。 &現在我要創建它的安裝程序。

我想在Windows啓動時啓動軟件&試圖使用下面的代碼。

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
rkApp.SetValue("MyApp", Application.ExecutablePath.ToString()); 

但我很困惑,在哪裏把這段代碼。 我不希望每當我的應用程序啓動時執行此代碼,因爲它將在安裝軟件時執行一次。

我應該把form_Load()檢查,如果regkey不存在,&如果是,那麼將這個值添加到運行。

是正確的嗎? 我不想給用戶一個選項&我想在強制啓動時啓動此應用程序。

謝謝。

+1

那麼您只需將EXE的快捷方式拖動到「開始」 - >「所有程序」 - >「啓動」中的「啓動」部分?編輯:我不好,那不是正確的方法。你*可以*在安裝時將EXE的快捷方式複製到啓動文件夾。我想使用註冊表是一個更好的方法。 – Shai 2012-02-07 08:08:45

+1

此代碼屬於您程序的安裝程序。 – 2012-02-07 08:09:30

+0

'我不想給用戶一個選項,我想在強制啓動時啓動此應用程序。「您可能有自己的理由,但不會給用戶選項通常被認爲是粗魯的。 – Heinzi 2012-02-07 08:25:55

回答

1

您可以創建customAction類的安裝程序是這樣的:http://msdn.microsoft.com/en-us/library/d9k65z2d.aspx#Y0

一旦你有了這個類,把你的註冊表的代碼在提交部分。現在,只要您的應用程序將被安裝,您的應用程序將被添加到註冊表以在啓動時運行。

+0

鏈接不再可用。 – 2012-11-06 16:07:59

0

製作一個小型控制檯應用程序,使用該行並在安裝結束時運行該應用程序。

0

它取決於您使用的istaller軟件。如果您使用由Visual Studio提供的安裝項目模板,則可以使用have the registry key created automatically

+0

我通過添加'安裝程序和部署'創建msi ..你可以建議任何易於使用的軟件? – 2012-02-07 08:28:56

+0

@CodeHippo:是的,就是這樣。在安裝和部署項目中打開註冊表編輯器(右鍵單擊解決方案資源管理器中的安裝項目,然後選擇查看 - >註冊表)。在那裏,您可以添加您的註冊表項。 – Heinzi 2012-02-07 08:51:48

+0

@Code Hippo:這是真正好的工具http://www.advancedinstaller.com/用於安裝項目,您可以購買它或可以使用免費軟件版本 – Smack 2012-02-07 09:38:17

1

隨着其他用戶的評論,這種事情應該在安裝程序上。在可以使用Visual Studio創建的安裝項目上,您可以添加一個指向用戶的啓動文件夾的鏈接,該鏈接應該可以實現。

如果您不希望用戶與啓動文件夾篡改和你絕對希望程序隨Windows自動地啓動,如你所說,你可以做的更多信息:檢查是否有足夠的註冊表每次程序啓動時鍵,如果它不在那裏寫。考慮到您的計劃需要爲此提供更高的帳戶權限。

你絕對需要這個?你確定你不能把它作爲最終用戶的選擇嗎?如果我是程序的用戶,不想在啓動時使用它,請盡力刪除註冊表項,將其從註冊表中移出,然後在未經我的同意的情況下再次在註冊表中找到它,我會很生氣...

+0

是的,我想強制軟件在啓動時運行。 .. :-)會很好,如果你可以提供任何內容或示例..謝謝 – 2012-02-07 08:31:16

0

您的安裝程序應該創建註冊表項。

此外,您的安裝程序也可能會詢問是爲當前用戶安裝還是爲所有用戶安裝。如果用戶說每個人,那麼密鑰必須添加在HKEY_LOCAL_MACHINE而不是HKEY_CURRENT_USER,這需要管理員權限。安裝人員通常具有該特權。

+0

我正在通過添加'安裝程序和部署'創建微星..你可以建議任何易於使用的軟件? – 2012-02-07 08:29:41

+0

我一直鄙視Visual Studio中包含的用於創建安裝包的工具。早在我使用Inno Setup(http://www.jrsoftware.org/isinfo.php)時,它是免費的,非常容易使用且非常強大。 – CMPerez 2012-02-07 08:37:35

+0

一個快速谷歌運行也顯示NSIS(http://nsis.sourceforge.net/Main_Page)和WiX(http://wix.sourceforge.net/),但我從來沒有使用過任何這些,所以我可以對他們發表評論。不過,我知道NSIS的使用非常廣泛。 – CMPerez 2012-02-07 08:40:11

相關問題