Autore Topic: Chiudere e riavviare il programma  (Letto 939 volte)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Chiudere e riavviare il programma
« il: 09 Gennaio 2015, 22:20:36 »
Non riesco proprio a capire perché questo semplicissimo codice non fa quanto mi aspetto e cioè chiudere il programma e riaprirlo o per meglio dire aprire un'altra istanza e chiudere l'attuale:
Codice: gambas [Seleziona]

  Shell Application.Path &/ ".gambas &"
  Me.Close()

ottenendo questo errore:
Codice: gambas [Seleziona]

  /bin/sh: 1: /home/gian/Scrivania/LibroPPG/Esempi/Riparto/.gambas: Permission denied

Ho provato a cambiare i permessi e controllare:
Codice: gambas [Seleziona]

  Chmod Application.Path &/ ".gambas" To "rwxrwxrwx"
  Print Stat(Application.Path &/ ".gambas").Auth  ===> rwxrwxrwx

Ho provato con
Codice: gambas [Seleziona]

 Exec [Application.Path &/ ".gambas"]

ottenedo questo errore:
cannot run executable:Permesso negato
qualche suggerimento?
 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.309
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Chiudere e riavviare il programma
« Risposta #1 il: 09 Gennaio 2015, 23:23:42 »
Codice: gambas [Seleziona]
Public Sub Button1_Click()

   Label1.Text = Application.Path &/ Application.Name & ".gambas"

   Shell Application.Path &/ Application.Name & ".gambas"
 
   Me.Close()

End
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re: Chiudere e riavviare il programma
« Risposta #2 il: 10 Gennaio 2015, 00:06:19 »
Scusa vuott mi sono dimenticato ma questa prova era stata la prima che poi avevo abbandonato visto l'errore e la ripetizione del nome.
Codice: gambas [Seleziona]

/bin/sh: 1: /home/gian/Scrivania/LibroPPG/Esempi/Riparto/Riparto.gambas: not found

Se lo lancio con Exec mi dice che la Directory non esiste.
E poi scusa se il programma non vedesse il file come potrebbe cambiarne i permessi? E mi dava anche l'autorizzazione all'accesso! Quindi il percorso corretto è quello del primo post, credo. :-\

Buonanotte  :sleepy:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.309
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Chiudere e riavviare il programma
« Risposta #3 il: 10 Gennaio 2015, 00:17:10 »
Va precisato che tu prevedi l'uso dell'eseguibile del programma, non del progetto nell'IDE !


Riguardo al tuo codice:
Codice: gambas [Seleziona]
Application.Path

questo ritorna semplicemente il percorso ove è situato il programma, e non anche il suo nome.



2) Il mio codice l'hai provato dopo aver creato l'eseguibile ?
« Ultima modifica: 10 Gennaio 2015, 00:28:23 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re: Chiudere e riavviare il programma
« Risposta #4 il: 10 Gennaio 2015, 14:51:50 »
@Vuott
Funziona come da te indicato. Grazie.
Non capisco proprio cosa posso aver combinato.
Avevo scaricato il programma Relaunch-0.0.4 di Jussi Lahtinen e visto che dall'ide non funzionava mi si era accesa la lampadina vedendo proprio la ripetizione del nome.
Quindi avevo provato a compilarlo ma non aveva funzionato  evidentemente avevo già cambiato qualcosa oppure ho sbagliato nel ripristinare il codice perché riprovando adesso funziona.
Non c'è niente da fare sono incapace di imparare dagli errori. Eppure lo so benissimo che basta una virgola perché il codice non funzioni più.

Se ti va di rispondere a queste domande:  :)

A proposito di virgole ho visto che il programma funziona sia che io finisca il comando con “.gambas” che con “.gambas &” tu sai cosa significa la & alla fine è qualcosa che dice alla shell 'enter' o cosa?

Che tu sappia c'è modo di ottenere il riavvio dell'applicazione dall'ide?

Application.Restart non sono riuscito a capire a cosa serva se lo passo a una classe array non riporta niente e mi infilo in un loop infinito.
Anche con Application.Startup non mi si è acceso niente.
 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.309
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Chiudere e riavviare il programma
« Risposta #5 il: 10 Gennaio 2015, 17:32:20 »
...la & alla fine è qualcosa che dice alla shell 'enter' o cosa?

Sicuramente non rappresenta il comando "Enter". Per ottenere via codice questa istruzione, è necessario utilizzare la funzione Desktop.Sendkey()


Che tu sappia c'è modo di ottenere il riavvio dell'applicazione dall'ide?

Attualmente non lo so.


Application.Restart non sono riuscito a capire a cosa serva se lo passo a una classe array non riporta niente e mi infilo in un loop infinito.
Anche con Application.Startup non mi si è acceso niente.

Non ho ancora studiato queste due proprietà della Classe Application .
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Chiudere e riavviare il programma
« Risposta #6 il: 10 Gennaio 2015, 22:57:58 »
@ GianLuigi:

Vedi se ti può essere d'aiuto questo
 :ciao:
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.309
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Chiudere e riavviare il programma
« Risposta #7 il: 10 Gennaio 2015, 23:41:51 »

Vedi se ti può essere d'aiuto questo


Bravo, Picavbg: ha rintracciato la discussione che dà soluzione alla tua domanda.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re: Chiudere e riavviare il programma
« Risposta #8 il: 11 Gennaio 2015, 14:49:35 »
@Picavbg
perfetto era esattamente quello che cercavo anche se per ora non sono capace a farlo funzionare come vorrei (la nuova istanza non riesco a farla aprire con FMain e chiudere la vecchia).
Avevo fatto le tue stesse valutazioni di partenza ma poi nelle ricerche mi sono sempre più incartato e a furia di fare prove (con vari errori di segmentazione) mi sono completamente perso.
Tu invece hai saputo tenere la barra dritta complimenti.  :D
Naturalmente i complimenti vanno estesi a Sotema il “risolutore” e a vuott che con le sue domande e le tue risposte ha reso il tutto comprensibilissimo anche a me.
Grazie a tutti.

Purtroppo per me rimane il neo che malgrado la mia ricerca di parecchie ore io questa discussione no l'avrei vista senza il tuo aiuto.
O il mio PC mi boicotta oppure non ho ancora ben chiaro come si fanno le ricerche e il ridicolo è che vorrei insegnarlo agli altri.  :'(
Ma mi rallegra il fatto che qui basta chiedere per ottenere

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Chiudere e riavviare il programma
« Risposta #9 il: 11 Gennaio 2015, 15:44:30 »
O il mio PC mi boicotta oppure non ho ancora ben chiaro come si fanno le ricerche

Si ma io ho un vantaggio: ricordavo perfettamente l'argomento, quindi risalirvi è stato un gioco.  ;D
:ciao: