Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    669

    [VB.NET]Chiusura automatica dell'applicazione

    Ciao a tutti!

    Vorrei creare un funzione che rileva se il programma non viene utilizzato per tot minuti viene chiuso automaticamente.
    Pensavo di utilizzare all'interno del form un oggetto timer che ogni tot minuti eseguo il controllo. fin qui nessun problema, non so però come sapere se il programma è stato effettivamente utilizzato. qualcuno di voi ha un idea di come fare?

    ciao grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cerca in rete info sulla API

    GetLastInputInfo

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    669
    ho trovato questo esempio .

    quindi praticamente se ho capito bene l'API GetLastInputInfo mi restituisce il tempo trascorso dall'ultima volta che ho eseguito un comando da tastiera o da mouse sulla form attiva. Giusto?

    grazie, ciao

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    L'ultima attivita' di mouse e tastiera in generale nel sistema, non solo nella form attiva.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    669
    quindi anche se l'utente non utilizza il mio programma ma utilizza cmq il PC il mio programma non si chiudera' perchè cmq risulta utilizzato il sistema?

    se volessi invece sapere solo se il mio prog è utilizzato o meno?

    ciao e grazie per l'aiuto.

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    In maniera brutale potresti sempre far si che ogni volta che l'utente fa click col mouse resetti il timer.. però è mooolto brutale

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    669
    inizialmente l'avevo pensata cosi, solo che mi sono accorto che l'implementazione era un casino perchè le form contengono pulsanti, listview, datagridview e altro ancora e intercettare ogni singolo controllo per saper ogni volta che utilizzo il programma era praticamente impossibile. posso premere un pulsante oppure cliccare con il mouse oppure scorrere solo una scrollbar.
    era veramente una cosa assurda.
    mi sa che mi adeguerò all'utilizzo dell'intero sistema, credo di non avere altra scelta.

    grazie, ciao

  8. #8
    Forse puoi cavartela usando il subclassing: credo che basti resettare il timer ad ogni messaggio WM_COMMAND.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    669
    Forse puoi cavartela usando il subclassing: credo che basti resettare il timer ad ogni messaggio WM_COMMAND
    Scusa la mia ignoranza, potresti farmi un esempio?

    grazie, ciao.

  10. #10
    Inserisci all'interno della tua classe-form il seguente codice (ovviamente completandolo):
    codice:
        Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
            If m.Msg = &H111 Then
                'codice per resettare il contatore
            End If
        End Sub
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

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.