Domanda

Nella mia applicazione, ho la possibilità di avviare l'applicazione all'avvio di Windows. Che le grandi opere. Ho anche in modo che, quando minimizzato, l'applicazione viene minimizzato al vassoio del sistema. C'è un modo che io possa averlo essere ridotto al minimo automaticamente avviato al tempo stesso di Windows? L'unico modo che ho potuto pensare, è quello di recuperare la quantità di tempo che il sistema è stato acceso e utilizzare tali dati per decidere se la macchina aveva da poco iniziato. Ovviamente ci sono un sacco di difetti con questa teoria. Qualcuno ha altre idee su come questo potrebbe essere fatto?

È stato utile?

Soluzione

Implementare una riga di comando nel programma che causa il vostro programma per minimizzare al vassoio. Quando si avvia il programma con l'avvio di Windows, basta includere l'interruttore.

http://msdn.microsoft.com/en-us/library /acy3edy3.aspx

Altri suggerimenti

nel modulo di "Proprietà" nel cambiamento WindowState a "minimizzato", o nel codice:

     //After this:
     InitializeComponent();
     //Place this line:
     WindowState = FormWindowState.Minimized;

Spero che questo aiuto!

Utilizzare un argomento da riga di comando, ad esempio, / Startminimised. Nel vostro assegno app per la presenza di questa opzione (utilizzando Environment.GetCommandLineArgs) quando l'applicazione si avvia, e ridurre al minimo automaticamente se l'interruttore è presente.

Poi, nel tuo opzione "eseguire all'avvio", assicurarsi che l'applicazione viene avviata con questo interruttore per esempio impostare la chiave Run Registro di sistema o di avvio scorciatoia gruppo per myapp.exe /startminimised.

Quando l'utente esegue la vostra applicazione, tuttavia, non sarà (normalmente!) Specificare l'opzione, quindi l'applicazione apparirà come una finestra.

È possibile chiamare il programma con un parametro, ad esempio "-minimized" e quindi gestire tale parametro nel programma:

Nella tua Program.cs, gestire il parametro, e quindi passare tale parametro a 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"));
            }
        }

Nei tuoi Form1.cs, è possibile chiamare una funzione con il parametro passato e ridurre al minimo l'applicazione:

    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);
    }

Ad esempio, con questa funzione ho usato, se si avvia l'applicazione con il parametro -minimized, allora inizierà minimizzato, un NotifyIcon salta fuori nella barra delle applicazioni e una bolla dire l'applicazione viene avviata e in esecuzione in background.

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();
    }

}

La funzione SetStartup mette il programma nel Registro di sistema, in modo che sarà eseguito all'avvio.

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();
}

In questo momento, quando si avvia il programma con il parametro -minimized, ad esempio: "c: /programs/app.exe" -minimized allora inizierà ridotto al minimo, e quando si riavvia il computer, ma anche inizia automaticamente ridotto al minimo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top