Gambas-it

Gambas3 => Programmazione => Topic aperto da: Gratisweb - 24 Agosto 2019, 16:17:28

Titolo: avvio programma al boot
Inserito da: Gratisweb - 24 Agosto 2019, 16:17:28
Come si fa un programmino che parta all' inizio dell' avvio di linux

Esempio, faccio un form e metto un Checkbox con scritto Visualizza finestra all' avvio
Se io la seleziono l' applicazione deve aprirsi quando avvio linux altrimenti se la deseleziono non deve partire nulla all' avvio
Titolo: Re:avvio programma al boot
Inserito da: Gianluigi - 24 Agosto 2019, 19:41:13
Come si fa un programmino che parta all' inizio dell' avvio di linux

Esempio, faccio un form e metto un Checkbox con scritto Visualizza finestra all' avvio
Se io la seleziono l' applicazione deve aprirsi quando avvio linux altrimenti se la deseleziono non deve partire nulla all' avvio

Vedo che ti sei preso una piccola pausa di 10 anni  ;D

Questa procedura funziona in Ubuntu tu puoi adattarla alla tua distro:

Per prima cosa crei l'esegiubile del progetto allegato (buoncompleanno.gambas) e lo inserisci nella tua home.
Se in .local/share non hai una cartella applications la crei e poi apri un terminale e digiti questo comando:
Codice: [Seleziona]
gedit .local/share/applications/buoncompleanno.desktop

si apre gedit nella cartella applications e ci copi questo cambiando <username> col nome del tuo user:

Codice: [Seleziona]
[Desktop Entry]
Version=1.6
Encoding=UTF-8
Name=Gambas3
Type=Application
Exec=/home/<username>/buoncompleanno.gambas
Terminal=false
Comment=Applicazione
NoDisplay=false

Salva, poi entri nella cartella ~/.config/autostart/ digitando sempre nel terminale:

Codice: [Seleziona]
cd ~/.config/autostart/

Crei il link simbolico con il comando:

Codice: [Seleziona]
ln -s ~/.local/share/applications/buoncompleanno.desktop

Fatto.

Ora se riavvii il computer ti apparirà la finestra di auguri, per chiuderla premi Esc oppure ctrl+q o anche tasto destro sulla finestra e click su chiudi .

Titolo: Re:avvio programma al boot
Inserito da: Gratisweb - 24 Agosto 2019, 19:47:50
No, queste cose li deve fare l' applicazione e non manualmente
Titolo: Re:avvio programma al boot
Inserito da: kicco - 25 Agosto 2019, 21:38:44
Citazione
Se io la seleziono l' applicazione deve aprirsi quando avvio linux altrimenti se la deseleziono non deve partire nulla all' avvio
Scusa non capisco. questo deve avvenire prima dell'avvio di linux o più ragionevolmente dopo l'avvio di linux?
Se dopo l'avvio di linux, tu vuoi che ti si presenti una finestra nella quale decidi se far partire un'applicazione o no?
Così?
 :ciao:
Titolo: Re:avvio programma al boot
Inserito da: Gratisweb - 27 Agosto 2019, 09:16:25
Dopo l' avvio deve apparire una finestra tipo di benvenuto
Titolo: Re:avvio programma al boot
Inserito da: kicco - 27 Agosto 2019, 09:34:25
uno splash?
Appare una finestra, rimane per poco e sparisce?
 :ciao:
Titolo: Re:avvio programma al boot
Inserito da: kicco - 27 Agosto 2019, 09:38:48
crei la tua form come ti piace per esempio SpashForm
poi nel main:

Codice: [Seleziona]
Public Sub _new()

      SplashForm.Show
     
      Wait 3     ' aspetta 3 secondi

End
Mantieni come classe di avvio la Fmain.
 :ciao:
Titolo: Re:avvio programma al boot
Inserito da: Gratisweb - 27 Agosto 2019, 22:45:29
Non deve sparire da sola quella la devo chiudere io, ma come ho scritto io deve avere una voce

Esempio, faccio un form e metto un Checkbox con scritto Visualizza finestra all' avvio
Se io la seleziono l' applicazione deve aprirsi quando avvio linux altrimenti se la deseleziono non deve partire nulla all' avvio
Titolo: Re:avvio programma al boot
Inserito da: kicco - 28 Agosto 2019, 08:54:09
Scusa, ma non ti basta creare quel form e usarlo come classe di avvio?
 :ciao:

PS: Scusa solo ora mi accorgo che la mia risposta non soddisfa la tua domanda
Titolo: Re:avvio programma al boot
Inserito da: Gratisweb - 28 Agosto 2019, 09:19:23
IO non so ormai come spiegarlo, più chiaro di come l' ho spiegato non lo so....
Lancia linux mint o ubuntu, all' avvio ti appare la finestra di benvenuto, se deselezioni la voce "Visualizza finestra all' avvio", quando fai ripartire linux la finestra Benevenuto non appare all' avvio, ma se la voce non la deselezioni invece appare.
Titolo: Re:avvio programma al boot
Inserito da: kicco - 28 Agosto 2019, 09:37:55
 :ciao:
Ate sembrerà chiaro ma non è così!
Non capisco se la finestra deve apparire all'avvio di linux o all'avvio del programma Gambas.
 :ciao:
Titolo: Re:avvio programma al boot
Inserito da: Gratisweb - 28 Agosto 2019, 10:06:50
Ma lo scritto come deve apparire, mi sa che non leggete i commenti.
Avvio di linux
Titolo: Re:avvio programma al boot
Inserito da: dex - 28 Agosto 2019, 20:29:26
scusa la nostra ignoranza a non capire una cosa cosi chiara e limpida come l'hai descritta.
persino l'esempio di Gianluigi, molto dettagliato e adattabile a quello che vuoi realizzare non riesce a centrare il tuo problema.
stavo per postarti  un programmino che all'avvio dopo tot secondi lancia un'applicazione di tua scelta, ma temo che non sia adatto a quello che vuoi realizzare
Titolo: Re:avvio programma al boot
Inserito da: Gratisweb - 30 Agosto 2019, 07:47:35
Sentite, installare linux mint anche da virtualbox all' avvio vi partirà la finestra benvenuto che potete decidere che non partirà può al prossimo riavvia selezionando la voce che stà sulla finestra di benvenuto e capirete forse che cosa voglio fare.
Titolo: Re:avvio programma al boot
Inserito da: vuott - 30 Agosto 2019, 09:06:37
Ho l'impressione che sia necessario Settings .
Titolo: Re:avvio programma al boot
Inserito da: allegfede - 30 Agosto 2019, 12:01:46
ora ti porto un po' in giro, non t'offendere, ma mi sembra la tipica richiesta dei miei colleghi:
"non si puo' fare una applicazione che se io voglio cha faccia la cosa A premo il pulsante rosso e se invece volgio fare B esegua B alla pressione del pulsante rosso?"

Gli amici del forum ti hanno dato indicazioni su:
1) come fare in modo che il sistema operativo, dopo il login (eventualmente automatico) dell'utente, faccia partire un programma
2) come far eseguire al programma delle istruzioni a piacimento.
3) come far chiudere l'applicazione per via programmatica (da codice).

A questo punto, devi essere tu a decidere cosa vuoi far fare al programma e come scrivere il codice.

PS: non ti abbattere, ma la presentazione delle SPECIFICHE di un progetto, e' la parte piu' ostica di OGNI problema di ingegneria :D

COMUNQUE, come suggerito da VUOT, se interpreto bene la richiesta nel tuo primo post, tu vuoi che all'avvio della macchina ti si presenti una schermata con le applicazioni da far partire.
Non e' chiaro se vuoi che queste partano (in sequenza o tutte insieme) AL PROSSIMO AVVIO DELLA MACCHINA, oppure, APPENA PREMI "OK".
Se vuoi che la tua scelta (le tue spunte) sopravvivano al riavvio, devi usare l'oggetto gb.settings, e salvare lo "stato" delle tue spunte, prima di chiudere l'applicazione.
Ovviamente dovrai leggere lo stato precedente dai "settings" (od un default se e' la prima esecuzione), appena lanciato il famoso "Form" di selezione/spunta.
Titolo: Re:avvio programma al boot
Inserito da: dex - 31 Agosto 2019, 00:10:30
Il punto è che non abbiamo capito cosa vuol fare.

le fasi di avvio sono:
1) avvio del bios
2) avvio mbr
3) avvio fstab (montaggio partizioni)
4) avvio distro (login)
5) completamento caricamento distro

dai punti 1 a 4 nessun programma (gambas o similari funzionerà), qui o si interviene con modifiche al bios, alla distro o a fstab
al punto 4 la distro è in fase di avvio ma ancora non ha caricato tutto quello che serve per far girare le applicazioni

lui parla di avvio della distro (benvenuto mint), quella schermata parte dalla distro, è una modifica che hanno fatto i programmatori di mint, non si può fare con gambas.
Per far funzionare gambas o qualsiasi programma fatto con codice evoluto, la distro deve aver caricato tutte le routine ecc, cioè deve aver finito la fase di avvio, altrimenti gambas non parte.

in tutte le distro linux si possono impostare in avvio automatico delle applicazioni da far partire subito, ma nessuna di queste applicazioni partira se prima la distro non ha caricato librerie ecc di cui quella applicazione ha bisogno.

poi parla di opzioni, ma queste opzioni cosa devono fare?
devono far partire altri eseguibili (ritorniamo al punto di sopra che la distro deve aver finito il caricamento),
oppure devono settare delle opzioni alla distro? (cioè far o non  far caricare qualcosa), in questo caso non si può fare da gambas ma bisognerebbe prendere i sorgenti della distro e modificarli.
se invece lui deve avviare dei programmi o altra roba, i suggerimenti sono stati dati.

se vuoi risposte più precise facci capire su quale punto (da 1 a 5) vuoi intervenire e cosa vuoi fare
Titolo: Re:avvio programma al boot
Inserito da: kicco - 31 Agosto 2019, 10:14:59
Citazione
Il punto è che non abbiamo capito cosa vuol fare.
ma è chiarissimo!
Citazione
Come si fa un programmino che parta all' inizio dell' avvio di linux
Proprio quando sta per partire (linux), al primo rombo, esce una finestra dove decidi (intanto linux sta fermo) se avviare un programma o invece dirgli (sempre a linux) di andare avanti o fermarsi o chiamare la fidanzata.
Chiaro no?
Come facciamo a non capire!!! :-\
 :P
Titolo: Re:avvio programma al boot
Inserito da: dex - 01 Settembre 2019, 14:50:49
Kicco   ;D

in pratica smanettando si può fare tutto, ma non con poche righe di codice oppure con un po di pappa pronta.

si può modificare grub, aggiungendo più voci
si può creare uno script da far partire in fase di avvio nel quale selezioniamo cosa far avviare e cosa no
Oppure (la cosa più funzionale), prender ei sorgenti di una distro, modificarli ed inserire opzioni di scelta (con i numeri telefonici da chiamare)
con ubuntu 10 avevo fatto una cosa del genere, modificato il codice della distro, compilato ed installato come ubuntu2 (una distro molto leggera, velocissima ed essenziale con servizi minimi e kernel stabile)
Poi avevo installato anche ubuntu 10 gia compilato.
Nel grub avevo creato 2 voci e in fase di avvio decidevo quale far partire

se l'amico ci dice cosa gli serve gli 'preparate' la distro e tutto il resto  :coder:


Titolo: Re:avvio programma al boot
Inserito da: ivanpro - 01 Settembre 2019, 19:13:13
La richiesta è chiarissima: ha creato un App che vuole che si apra da solo all'avvio di Linux e questo deve poterlo fare l'App stessa al primo avvio.
La procedura scritta da Gianluigi è quella che fa al caso tuo Gratisweb (è una cosa che interessa anche me):
- All'avvio della tua App crei una procedura che verifichi in .local/share l'esistenza della cartella applications, se non c'è la crei e ci copi l'eseguibile della tua App, se esiste copi solamente l'eseguibile.
- A questo punto crei un'altra procedura che modifichi il file buoncompleanno.desktop come spiegato da Gianluigi.
- Infine con un'altra procedura crei in .config/autostart/ il link al file buoncompleanno.desktop contenuto nella cartella .local/share/applications.

Se poi vuoi che l'App non parta più all'avvio di Linux basta cancellare con un'altra procedura il file buoncompleanno.desktop da .config/autostart/ e puoi farlo quando deselezioni la Checkbox e salvi le impostazioni.
Titolo: Re:avvio programma al boot
Inserito da: dex - 02 Settembre 2019, 00:22:42
@ivanpro

la richiesta non è cosi chiara
al post di gianluigi ha risposto:.

No, queste cose li deve fare l' applicazione e non manualmente

io ancora non ho capito dove intende intervenire.
al login?
all'inizio del caricamento della distro?
a distro caricata prima di avviare altre applicazioni?

nell'ultimo caso poteva utilizzare benissimo il codice di gianluigi, si è lamentato che non doveva farlo a mano ma automaticamente?  bastavano poche modifiche a quel codice e diventava automatico

quindi per esclusione ho pensato che volesse farlo al login, al login nessuna applicazione può interagire con la distro, in verita al login non so nemmeno se fstab ha caricato le partizioni, in teoria dovrebbe averlo fatto in quanto grub si trova sulla prima partizione.