私のアプリケーションでは、Windows の起動時にアプリケーションを起動するオプションがあります。それはうまくいきます。また、最小化すると、アプリケーションがシステムトレイに最小化されるようにしています。Windowsと同時に起動したときに自動的に最小化する方法はありますか? 私が思いついた唯一の方法は、システムが稼働していた時間を取得し、そのデータを使用してマシンが最近起動したかどうかを判断することです。明らかに、その理論には多くの欠陥があります。これをどのように行うことができるかについて、他に考えがある人はいますか?
4 に答える
プログラムをトレイに最小化するコマンド ライン スイッチをプログラムに実装します。Windows スタートアップでプログラムを開始する場合は、スイッチを含めるだけです。
WindowStateのフォーム「Properties」で「Minimized」に変更するか、コードで次のようにします。
//After this:
InitializeComponent();
//Place this line:
WindowState = FormWindowState.Minimized;
この助けを願っています!
/startminimised などのコマンド ライン引数を使用します。アプリで、アプリの起動時に ( を使用して) このスイッチの存在を確認しEnvironment.GetCommandLineArgs
、スイッチが存在する場合は自動的に最小化します。
次に、「起動時に実行」オプションで、アプリがこのスイッチで開始されていることを確認します。たとえば、実行レジストリ キーまたはスタートアップ グループのショートカットを に設定しますmyapp.exe /startminimised
。
ただし、ユーザーがアプリを実行するときは、(通常は!) スイッチを指定しないため、アプリはウィンドウとして表示されます。
「-minimized」などのパラメーターを使用してプログラムを呼び出し、プログラムでそのパラメーターを処理できます。
program.cs でパラメーターを処理し、そのパラメーターを Form1 に渡します。
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length != 0){
Application.Run(new Form1(args[0]));
}
else
{
Application.Run(new Form1("normalState"));
}
}
Form1.cs で、渡されたパラメーターを使用して関数を呼び出し、アプリを最小化できます。
public Form1(string parameter)
{
InitializeComponent();
SetStartup(); //This function will set your app in the registry to run on startup. I'll explain this function below.
MinimizeApp(parameter);
}
たとえば、私が使用したこの関数では、-minimized パラメーターを使用してアプリケーションを起動すると、最小化された状態で起動し、タスクバーに通知アイコンがポップアップし、アプリが起動してバックグラウンドで実行されていることを示すバブルが表示されます。
public void MinimizeApp(string parameter)
{
if (parameter == "-minimized")
{
this.WindowState = FormWindowState.Minimized;
notifyIcon1.Visible = true;
notifyIcon1.BalloonTipText = "Program is started and running in the background...";
notifyIcon1.ShowBalloonTip(500);
Hide();
}
}
SetStartup 関数はプログラムをレジストリに入れるので、起動時に実行されます。
private void SetStartup(){
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
key.SetValue(AppName, Application.ExecutablePath.ToString());
string ApplicationPath = "\"" + Application.ExecutablePath.ToString() + "\" -minimized";
key.SetValue("MyApplicationName", ApplicationPath);
key.Close();
}
現在、「c:/programs/app.exe」などの -minimized パラメーターを使用してプログラムを起動すると、最小化された状態で起動し、コンピューターを再起動すると、自動的に最小化された状態で起動します。