Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    evitare il riavvio di un'applicazione

    Ciao a tutti ho provato a fare delle ricerche nel forum ma senza esito (sicuramente non ho saputo ricercare) quindi mi trovo costretto ad aprire una nuova discussione.....

    Utilizzo vb6 e vorrei fare in modo che dopo aver ridotto un'applicazione ad icona (dove c'è l'orologio) in caso l'utente faccia doppio click sull'applicazione venga espansa quella ridotta e non avviata una nuova.

    Ciao a tutti e grazie per l'aiuto...........
    jake

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    codice:
      If App.PrevInstance Then
        AppActivate App.Title
        End
      End If
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    devo ammettere che non ci ho capito molto come dovrei fare con queste righe di codice....
    If App.PrevInstance Then
    AppActivate App.Title
    End
    End If
    ....dove le dovrei inserire???

    Non è che questo che mi hai dato funziona solo con versioni superiori a vb6???

    Ad ogni modo ricercando e ricercando sono arrivato a questo punto............

    nell'evento form_inizialize

    controllo se ci sono altre istanze della mia applicazione aperte e in caso dovrei arrestare l'esecuzione ma non ci riesco

    Allora:

    Private Sub Form_Initialize()
    hwindow = FindWindow(vbNullString, "Form1")
    #CON QUESTA FUNZIONE RILEVO SE L'APPLICAZIONE è GIA' APERTA.
    If hwindow <> 0 Then
    MsgBox ("chiudo")
    '***'
    End If
    End Sub

    A questo punto non so come impedire alla mia applicazione di avviarsi da codice.....
    ho provato a scrivere me.close, me.terminate, unload me....e varie cose ma non c'è verso....come si fa a chiudere un'applicazione da codice????

    Grazie e scusate
    al posto degli '***'
    jake

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    quella istruzione che ti ho mandato è per VB6.
    Deve essere la prima cosa che esegue il programma quando viene lancato.

    Quindi deve essere inserita o nel sub Main, oppure nella procedura che esegue all'inizio.

    Per far partire il programma premi direttamente F8, ecco, è proprio lì che la devi mettere....
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    Giusto per fare il punto della situazione..............allora ho risolto cosi..........
    -------------parte generale
    Private Declare Function IsWindow Lib "user32" _
    (ByVal hwnd As Long) As Long

    Private Declare Function FindWindow Lib "user32" _
    Alias "FindWindowA" _
    (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

    ---------------------form
    Private Sub Form_Initialize()
    hwindow = FindWindow(vbNullString, "Form1")
    If hwindow <> 0 Then
    End
    End If
    End Sub

    Cosi controllo se esiste un'applicazione già avviata e in caso chiudo
    jake

  6. #6
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    app.previnstance lo fa in automatico il controllo.....
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  7. #7
    ho inserito nel main


    If App.PrevInstance Then
    AppActivate App.Title
    End
    End If

    ma mi da errore..ad app. cosa devo sostiuire??? Il nome del form??? Il nome del progetto???

    Scusa ma non ho idea
    jake

  8. #8
    ho un mega problema..................

    con questa funzione

    Private Declare Function FindWindow Lib "user32" _
    Alias "FindWindowA" _
    (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

    è vero che cerca se l'applicazione è aperta....ma puo' essere che cerca anche nei PC collagati in rete al mio?????????????
    jake

  9. #9
    ma mi da errore..
    Che errore?
    ad app. cosa devo sostiuire??? Il nome del form??? Il nome del progetto???
    Non devi sostituire niente. App c'è scritto e App devi inserire.
    è vero che cerca se l'applicazione è aperta....ma puo' essere che cerca anche nei PC collagati in rete al mio?
    No.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    ok, tutto risolto...........solo che non riesco a usare
    If App.PrevInstance Then
    AppActivate App.Title
    End
    End If

    Mi sa che non so come si fa ad inserire nel main............sarebbe x caso la parte prima del form dove si scrive il codice degli eventi........

    In caso bisogna specificare l'avvio del project al posto di form come main????

    Il codice non mi funzionava proprio perchè il project aveva come titolo lo stesso del form......ho aggiunto una spazio ed è tutto risolto.....
    jake

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.