Autore Topic: impedire avvio multiplo  (Letto 17 volte)

Online Gratisweb

  • Grande Gambero
  • ***
  • Post: 173
    • Mostra profilo
impedire avvio multiplo
« il: Ieri alle 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.307
  • 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. »

Online Gratisweb

  • Grande Gambero
  • ***
  • Post: 173
    • Mostra profilo
Re:impedire avvio multiplo
« Risposta #2 il: Oggi alle 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