Autore Topic: Come chiudere un'applicazione FullScreen. se crasha  (Letto 441 volte)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Come chiudere un'applicazione FullScreen. se crasha
« il: 07 Settembre 2020, 19:36:01 »
Ho un programma che lavora in fullscreen e, ovviamente, ha un popupmenu che permette di uscire dal programma stesso.
In alcune circostanze è successo che il menu non fosse più disponibile (sto indagando) ma, vorrei comunque avere una scappatoia per uscire, anche brutalmente con una combinazione di tasti.
Pensavo di usare Control +C e ho buttato giù questo codice:
Codice: [Seleziona]
Private ba As Boolean
Private bb As Boolean

Public Sub Form_KeyPress()

  If Key.code = Key.ControlKey Then ba = True
  If Key.code = 67 Then bb = True
 

  If ba = True And bb = True Then Form_Close

End

Public Sub form_KeyRelease()

  ba = False
  bb = False

End
Avete da suggerirmi un codice più "furbo" o una modalità differente o più elegante di uscire dal programma dalla m....?  ;D
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Come chiudere un'applicazione FullScreen. se crasha
« Risposta #1 il: 07 Settembre 2020, 20:15:48 »
Ctrl+C si usa universalmente per copiare

Normalmente si usa la lettera Q di Quit per uscire dai programmi.

Sei tu che devi sapere come uscire dal tuo programma e mi pare che avevamo già discusso in merito.

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

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Come chiudere un'applicazione FullScreen. se crasha
« Risposta #2 il: 07 Settembre 2020, 20:53:17 »
Ctrl+C si usa universalmente per copiare

Normalmente si usa la lettera Q di Quit per uscire dai programmi.

Sei tu che devi sapere come uscire dal tuo programma e mi pare che avevamo già discusso in merito.
Su Ctrl + C hai ragione, sulla discussione a cui ti riferisci, in questo caso non c'entra.
Il programma adesso esce correttamente, questo che sto implementando è la soluzione brutale per un caso che non dovrebbe mai verificarsi.
Ma se succedesse qualcosa di strano, si sconnette in malo modo la seriale o .... qualsiasi cosa di anomalo, devo dare la possibilità all'utente di chiudere il programma e accedere al desktop che altrimenti diventerebbe irraggiungibile.
L'unica cosa sarebbe spegnere brutalmente il pc. :hatecomputer:
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Come chiudere un'applicazione FullScreen. se crasha
« Risposta #3 il: 07 Settembre 2020, 23:08:33 »
... mi pare che avevamo già discusso in merito.

Dove ?
« 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.244
  • Tonno verde
    • Mostra profilo
Re:Come chiudere un'applicazione FullScreen. se crasha
« Risposta #4 il: 07 Settembre 2020, 23:39:04 »
Se l'applicazione crasha non puoi chiuderla perché è tutto bloccato.
Occorre prevedere e prevenire che ciò non accada e la dove capitasse un imprevisto, dobbiamo premunirci con Catch e inserirvi codice per la via di fuga, qualunque esso sia.

vuott, mi riferivo a questa discussione:
https://www.gambas-it.org/smf/index.php?topic=7921.msg48765#msg48765

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

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Come chiudere un'applicazione FullScreen. se crasha
« Risposta #5 il: 07 Settembre 2020, 23:52:46 »
Se l'applicazione crasha non puoi chiuderla perché è tutto bloccato.
Infatti.
kicco, se la procedura di elaborazione del codice si inchioda con il crash (che tra l'altro potrebbe anche determinare la chiusura improvvisa del programma), come fai a operare con routine di Eventi del programma medesimo... bloccato ?  :rolleyes:
In caso di blocco del programma io, spostandomi, su un altro desktop dello schermo, terminerei il processo del programma bloccato con l'applicazione "Monitor di sistema".
Lo si potrebbe terminare anche da Terminale con il comando "kill", ma l'utente deve essere in grado di trovare il PID del processo del programma Gambas bloccato, oppure con "killall" inserendo il nome "gbx3".


Occorre prevedere e prevenire che ciò non accada e la dove capitasse un imprevisto, dobbiamo premunirci ....
Condivido in pieno anche questo.
Per esempio, richiamando quello che tu kicco dicevi, devi prevedere nel codice l'eventualità di una maldestra sconnessione della porta seriale.
« Ultima modifica: 08 Settembre 2020, 09:27:01 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 kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Come chiudere un'applicazione FullScreen. se crasha
« Risposta #6 il: 08 Settembre 2020, 10:20:04 »
Avete entrambi ragione!

Citazione
Per esempio, richiamando quello che tu kicco dicevi, devi prevedere nel codice l'eventualità di una maldestra sconnessione della porta seriale.
Sì certo, in effetti faccio i controlli durante la connessione iniziale, ma se la seriale si disconnette  oltretutto acquisisce un numero differente!
Ho poi provveduto con F1 e F2 a attivare o disattivare il Fullscreen e questa soluzione "banale" m'ha risolto un po' di problemi in caso di crash!
Grazie per le dritte!  :-*
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)