Barra laterale

programmazione:qt:avviare_automaticamente_le_applicazioni

Avviare automaticamente le applicazioni

Autore: Fabio Di Matteo
Ultima revisione: 06/05/2014

Puo' essere necessario,in alcune circostanze, far si che la propria applicazione venga avviata automaticamente all'avvio della sessione grafica della gui del nostro sistema operativo. Di seguito le istruzioni necessarie in base al sistema operativo.

GNU/Linux

Sui istemi Gnu/Linux si segue (di solito) la procedura standard proposta da freedesktop, ovvero si copia il file dell'applicazione(.desktop) installata nel sistema da /usr/share/applications/[mia app] in /home/[mio utente]/.config/autostart/ ecco di seguito come fare con le Qt:

#include <QDir>
#include <QSettings>
...
 
if (QDir(QDir::homePath()+"/.config/autostart").exists())
{
    if (QFile::exists("/usr/share/applications/logout.desktop"))
    {
        QFile::copy("/usr/share/applications/logout.desktop", QDir::homePath()+"/.config/autostart/logout-fml.desktop");
    }
 
}

dove logout.desktop e' il file .desktop del mio programma.
Per la rimozione della nostra applicazione dall'elenco delle applicazioni in esecuzione automatica basta rimuovere il file appena copiato :

#include <QDir>
#include <QSettings>
...
 
if (QDir(QDir::homePath()+"/.config/autostart/logout.desktop").exists())
{
    QFile::remove(QDir::homePath()+"/.config/autostart/logout.desktop");
}

Win32

Per quanto riguarda la versione win32 creeremo una chiave di registro per l'utente corrente all'interno di HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run :

#include <QSettings>
...
 
QSettings registry("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
registry.setValue("Logout-fml", QCoreApplication::applicationFilePath().replace('/','\\'));

Per rimuovere la chiave invece:

#include <QSettings>
...
 
QSettings registry("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
registry.remove("Logout-fml");

programmazione/qt/avviare_automaticamente_le_applicazioni.txt · Ultima modifica: 18/04/2018 - 15:48 (modifica esterna)