2012-02-07 39 views
0

他のいくつかの例を確認しました。Windowsの起動時にアプリケーションを起動する

私はwinfromに取り組んでいます。 &これでインストーラを作成します。

Windowsが起動するときにソフトウェアを起動します。&次のコードを使用しようとしています。

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

しかし、私はこのコードをどこに置くのか混乱しています。 ソフトウェアのインストール時に一度だけ実行されるため、アプリケーションが起動するたびにこのコードを実行する必要はありません。

regkeyが存在しない場合は、form_Load()をチェックします。&の場合はこの値を実行に追加します。

は正しいですか? ユーザーにオプションを与えたくない&起動時にこのアプリケーションを強制的に起動したいと考えています。

ありがとうございました。

+1

あなたはEXEのショートカットを[スタート] - > [すべてのプログラム] - > [スタートアップ]の[スタートアップ]セクションにドラッグするだけです。編集:私の悪い、それは正しい方法ではない。あなたはインストール時にスタートアップフォルダにあなたのEXEのショートカットをコピーすることができます*。私はレジストリを使用してより良い方法だと思います。 – Shai

+1

このコードは、プログラムのインストーラーに属します。 –

+0

'私はユーザにオプションを与えたくない、起動時にこのアプリケーションを強制的に起動したい。あなたの理由はあるかもしれないが、ユーザにオプションが与えられていないのは通常無礼だと思われる。 – Heinzi

答えて

1

あなたはこのようなあなたのインストーラのためのあなたのCustomActionクラスを作成することができます:あなたは、このクラスを持っていたら、あなたのレジストリのコードがコミットセクションに入れhttp://msdn.microsoft.com/en-us/library/d9k65z2d.aspx#Y0

。これで、アプリケーションがインストールされるたびに、アプリケーションが起動時に実行されるようにレジストリに追加されます。

+0

のようなリンクは利用できません。 –

0

この行を使用する小さなコンソールアプリケーションを作成し、インストールの最後に実行します。

0

これは、使用するistallerソフトウェアによって異なります。 Visual Studioによって提供されたセットアッププロジェクトテンプレートを使用する場合は、have the registry key created automaticallyを使用できます。

+0

'setup&deployment'..を追加してmsiを作成しています。使いやすいソフトウェアをお勧めできますか? –

+0

@CodeHippo:はい、そうです。セットアップおよびデプロイメントプロジェクトでレジストリエディタを開きます(ソリューションエクスプローラでセットアッププロジェクトを右クリックし、[表示] - > [レジストリ]を選択します)。レジストリキーを追加することができます。 – Heinzi

+0

@コードヒッポ:これは本当に良いツールです。http://www.advancedinstaller.com/インストールプロジェクトのためにそれを購入することも、フリーウェア版を使用することもできます – Smack

1

他のユーザーがコメントしたように、この種のことはインストーラーに進むべきです。 Visual Studioで作成できるセットアッププロジェクトでは、そのトリックを行うユーザーのスタートアップフォルダへのリンクを追加できます。

しかし

ユーザーがスタートアップフォルダを改ざんし、あなたは絶対にあなたが言ってきたように、あなたが行うことができ、プログラムはWindowsに自動的に開始したいしたくない場合は、次の適切なレジストリをチェックキーがプログラムを開始するたびに、それがなければそれを書いてください。あなたのプログラムでは、アカウントの権限が必要になることを考慮してください。

しかし

どうしてもこれが必要ですか?最終的なユーザーにオプションとして提供できないと確信していますか?私があなたのプログラムのユーザーであって、起動時にそれを望んでいなかった場合は、レジストリキーを削除してそこから取り出し、レジストリに再度同意する必要がないことを確認してください。 ...

+0

はい、私は起動時にソフトウェアを強制的に実行したいです。 ..-)あなたがどんなツーツや例を提供しても大丈夫でしょうか?ありがとうございます –

0

インストーラはレジストリキーを作成する必要があります。

さらに、現在のユーザー用にインストールするか、すべてのユーザー用にインストールするかを尋ねるインストーラもあります。ユーザーが全員と言う場合は、ではなく、HKEY_LOCAL_MACHINEに鍵を追加する必要があります。管理者権限が必要です。インストーラには通常その特権があります。

+0

私は 'setup&deployment'を追加してmsiを作成しています。使いやすいソフトウェアをお勧めできますか? –

+0

私はインストールパッケージを作成するためにVisual Studioに含まれるツールを常に軽視してきました。私はInno Setup(http://www.jrsoftware.org/isinfo.php)を無料で使用していましたが、かなり使いやすく、かなり強力です。 – CMPerez

+0

素早くgoogleを走らせると、NSIS(http://nsis.sourceforge.net/Main_Page)とWiX(http://wix.sourceforge.net/)が明らかになりましたが、これまで何も使用していないので、それらにコメントしません。私はNSISがかなり広く使われていることを知っています。 – CMPerez

関連する問題