Autore Topic: impedire avvio multiplo  (Letto 1817 volte)

Offline Gratisweb

  • Grande Gambero
  • ***
  • Post: 186
    • Mostra profilo
impedire avvio multiplo
« il: 14 Maggio 2024, 22:30:36 »
Creo un programma in gambas e lo avvio, come si fà in modo che se si avvia di nuovo per sbaglio invece si deve chiudere automaticamente ?
Mi spiego......
Io credo un programma che si chiama ESEMPIO1
lancio ESEMPIO1 senza chiuderlo
lancio di nuovo ESEMPIO1 ed invece si deve chiudere perchè già l' ho aperto prima. Come si fà ?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
« 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 Gratisweb

  • Grande Gambero
  • ***
  • Post: 186
    • Mostra profilo
Re:impedire avvio multiplo
« Risposta #2 il: 15 Maggio 2024, 07:22:02 »
Ho provato questo è funziona......

Public Sub Form_Activate()   ' oppure "Sub Main()" se il programma è a "linea di comando"
 
 Dim s, cmdline As String
 Dim id As New String[]

 For Each s In Dir("/proc", "*", gb.Directory)
   If Exist("/proc" &/ s &/ "cmdline") Then
     cmdline = File.Load("/proc" &/ s &/ "cmdline")
     If (cmdline Like "*" & Application.Name & ".gambas*") Then
       id.Push(Split(File.Load("/proc" &/ s &/ "stat"), Chr(32))[0])
       If id.Count > 1 Then
         If id[id.Max] > id[id.Max - 1] Then Quit
       Endif     
     Endif
   Endif
 Next
   
End


Ma funziona solo se il file eseguibile finisce con .gambas.....
Ma se il file eseguibile non finisce con .gambas ma non ha estensionee?

Esempio invece di chiamarsi
esempio.gambas si chiama esempio

Perchè appena rinomino il file eseguibile togliendo il .gambas non funziona

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:impedire avvio multiplo
« Risposta #3 il: 15 Maggio 2024, 15:09:55 »
...prova a eliminare la parola ".gambas" dal codice.
In sostanza la nuova riga sarà:
Codice: [Seleziona]
 If (cmdline Like "*" & Application.Name & "*") Then
« 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:impedire avvio multiplo
« Risposta #4 il: 16 Maggio 2024, 22:41:04 »
...è possibile sapere se il suggerimento di modifica ha funzionato ?
« 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. »