如果由系统启动,则启动应用程序最小化
Launch application minimized if launched by system
我想启动一个应用程序是否最小化,这取决于它是由系统在启动时启动的 (Windows),或者如果它是由用户启动的(双击它)则不最小化。
到目前为止,我已经制作了一个转换器程序,它将在 windows 启动时打开。我用它取得了成功。
RegistryKey rk = Registry.CurrentUser.OpenSubKey
("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
rk.SetValue("MyApplicationName", Application.ExecutablePath);
rk.Close();
rk.Dispose();
我只将这些代码用于启动。我不检查它是否已经在 regedit 中,因为如果它已经存在则不会添加。在我将这些代码设置到我的程序后,我重新启动了我的计算机,我的程序在启动时出现,但它像正常启动一样出现在我的屏幕中央。我可以在启动时检查我的程序是否由 windows 启动并将其设置为启动吗?通常,如果我单击右上角的 "x",我的程序会将自己隐藏到系统托盘中。我必须右键单击->退出才能真正关闭我的程序。
我的问题是:有没有办法检查系统(Windows)或用户是如何启动的?
因为它们都是由同一个用户启动的,所以很难检测到。作为替代方案,您可以在应用程序中设置一个参数,告诉它是否开始减少。默认情况下,它会打开 window,如果设置了参数,则不会显示它。您只需在存储在注册表中的执行命令中添加此参数即可。
这里有一些代码:
Program.cs,您查看是否提供了 -minimized 参数并将此信息传递给您的表单 class
using System;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
static class Program
{
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1(args.Contains("-minimized")));
}
}
}
Form1.cs:如果布尔值minimized为真,开始最小化
使用 System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1(bool minimized)
{
InitializeComponent();
if (minimized)
{
WindowState = FormWindowState.Minimized;
}
}
}
}
然后你可以启动你的程序,为它提供 -minimized 参数:
.\WindowsFormsApp1.exe -minimized
或不
.\WindowsFormsApp1.exe
如果我没理解错的话,你想启动你的应用程序最小化,对吧?
在这种情况下,您可能需要添加以下代码:
如果您正在开发 WinForms 应用
this.WindowState = FormWindowState.Minimized;
如果您正在开发 WPF 应用程序
this.WindowState = WindowState.Minimized;
我想启动一个应用程序是否最小化,这取决于它是由系统在启动时启动的 (Windows),或者如果它是由用户启动的(双击它)则不最小化。
到目前为止,我已经制作了一个转换器程序,它将在 windows 启动时打开。我用它取得了成功。
RegistryKey rk = Registry.CurrentUser.OpenSubKey
("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
rk.SetValue("MyApplicationName", Application.ExecutablePath);
rk.Close();
rk.Dispose();
我只将这些代码用于启动。我不检查它是否已经在 regedit 中,因为如果它已经存在则不会添加。在我将这些代码设置到我的程序后,我重新启动了我的计算机,我的程序在启动时出现,但它像正常启动一样出现在我的屏幕中央。我可以在启动时检查我的程序是否由 windows 启动并将其设置为启动吗?通常,如果我单击右上角的 "x",我的程序会将自己隐藏到系统托盘中。我必须右键单击->退出才能真正关闭我的程序。
我的问题是:有没有办法检查系统(Windows)或用户是如何启动的?
因为它们都是由同一个用户启动的,所以很难检测到。作为替代方案,您可以在应用程序中设置一个参数,告诉它是否开始减少。默认情况下,它会打开 window,如果设置了参数,则不会显示它。您只需在存储在注册表中的执行命令中添加此参数即可。
这里有一些代码:
Program.cs,您查看是否提供了 -minimized 参数并将此信息传递给您的表单 class
using System;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
static class Program
{
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1(args.Contains("-minimized")));
}
}
}
Form1.cs:如果布尔值minimized为真,开始最小化
使用 System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1(bool minimized)
{
InitializeComponent();
if (minimized)
{
WindowState = FormWindowState.Minimized;
}
}
}
}
然后你可以启动你的程序,为它提供 -minimized 参数:
.\WindowsFormsApp1.exe -minimized
或不
.\WindowsFormsApp1.exe
如果我没理解错的话,你想启动你的应用程序最小化,对吧?
在这种情况下,您可能需要添加以下代码:
如果您正在开发 WinForms 应用
this.WindowState = FormWindowState.Minimized;
如果您正在开发 WPF 应用程序
this.WindowState = WindowState.Minimized;