2009-03-23 16 views
50

CheckBoxオプション付きの小さなアプリケーションを持っていますが、Windowsで起動するように設定することができます。起動時にプログラムを起動するように設定するには

私の質問は、実際に起動時に実行するようにアプリを設定する方法です。

ps:私は.NET 2.0でC#を使用しています。

+0

アプリケーションがかかる何かの時間をしたり、インターネット上で更新をチェックするように、起動時にリソースを集中した場合、あなたはあなたのプログラムが起動した後、ビットを実行されるようにタイマーの実装を検討することをお勧めします。私のペットのかわいそうの1つは、起動時にすべてのアップデートをチェックするので、すべてのものをクロールにドラッグする、コンピュータ上のダースというプログラムです(特に私はあなた、iTunes、Javaを見ています)。 –

答えて

86

の3つのオプション、:

  1. は、現在のユーザーのスタートアップフォルダに追加します。これには、あなたのアプリを実行するための最低限の権限が必要であり、ユーザーには何が起こっているのかについての最大の制御とフィードバックが与えられます。欠点は、次にチェックしたチェックボックスをプログラムでその画面を表示するかどうかを決定するのが少し難しいということです。
  2. HKey_Current_User\Software\Microsoft\Windows\CurrentVersion\Runレジストリキーに追加します。ここでの唯一の問題は、レジストリへの書き込みアクセスが必要であることです。これは必ずしも利用可能ではありません。
  3. Windowsサービスとして設定します。 実際にの場合は、すべてユーザー用にこのプログラムを実行することを確かに知っていることをご了承ください。
+0

現在のユーザーとすべてのユーザーのディレクトリとレジストリキーがあります。アプリケーションに必要なものを決定してください。 –

+0

すみません、皆様にとても感謝しています。 Joel私はあなたと一緒に行った。2 – Spidey

+0

Windowsサービスはい。ただし、ユーザーとして偽装オプションを使用してアプリケーションを実行する必要があります。そうでなければ、プログラムはシステムセッションで1回だけ起動されます。 – Patrik

5

"HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run"にレジストリエントリを作成できますが、これはVistaでは別の方法で動作する可能性があることに注意してください。あなたの設定はUACのために「仮想化」されるかもしれません。

3

アプリケーションがWindowsの起動時(ユーザーのログイン時とは異なります)から起動するように設計されている場合は、Windowsサービスが必要です。アプリケーションをサービスとして記述するか、アプリケーションを起動するためだけに存在する単純なサービスを作成します。

サービスを書くことは厄介なことがあり、特定のケースでは受け入れられない制限が課される可能性があります。 1つの一般的な設計パターンは、フロントエンド/バックエンドのペアであり、作業を行うサービスと、サービスと通信して情報をユーザーに表示するアプリケーションフロントエンドです。

一方、ユーザーのログイン時にアプリケーションを開始したい場合は、Joel Coehoornがリストした方法1または2を使用できます。

103

非常に速く応答してくれた皆様、ありがとうございます。 Joel、私はあなたのオプション2を使用し、現在のユーザーの "実行"フォルダにレジストリキーを追加しました。 ここに私が興味を持っている人のために使ったコードがあります。

using Microsoft.Win32; 
    private void SetStartup() 
    { 
     RegistryKey rk = Registry.CurrentUser.OpenSubKey 
      ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 

     if (chkStartUp.Checked) 
      rk.SetValue(AppName, Application.ExecutablePath); 
     else 
      rk.DeleteValue(AppName,false);    

    } 
+0

chkStartUp変数とは何ですか? –

+3

私は、@fernado Santiagoが遅いことを知っていますが、ユーザーがスタートアップからプログラムを追加または削除できるようにするのは彼のチェックボックスです。 –

+1

これは私には役に立たない、それは私に許可エラーを与える。手動で権限を取得してから解放する方法はありますか? – CodeIt

関連する問題