2009-09-04 11 views
7

Vorrei poter misurare le funzionalità della nostra applicazione che vengono utilizzate. Ad esempio, quante finestre vengono aperte, alcuni controlli vengono fatti clic. Posso immaginare uno strumento che misuri questo e invia un rapporto a un server web, che può ulteriormente elaborarlo per creare dati significativi da essoÈ disponibile una libreria C++ o Qt per misurare l'utilizzo delle funzionalità di un'applicazione

+0

Come detto da SadSido, probabilmente no. Abbiamo cercato e poi eseguito il rollover, consistendo essenzialmente in un hook di messaggi di windows (registrazione di azioni dell'utente come "tasto X cliccato"), istruzioni di registro per le funzionalità rilevanti e un set di script python per filtrare, formattare e aggirare il risultati. – peterchen

risposta

6

Prima domanda: dovresti farlo? Le persone non amano quando il loro software telefoni casa senza il loro consenso. Ma supponendo che stiano bene allora:

È tecnicamente possibile, con due approcci: automatico o manuale. Naturalmente, data la tua domanda, presumo che tu stia usando Qt.

automatica:

  • dare un nome proprio di tutti i QObject che si desidera tracciare
  • installare un filtro evento sulla vostra applicazione di catturare tutti i ChildEvent sugli oggetti che vengono creati e distrutti.
  • dal ChildEvent, è possibile estrarre il object's name
  • allora si può già accedere quanto spesso si crea l'oggetto. È inoltre possibile utilizzare l'opportunità di aggiungere un listener di eventi per quell'oggetto specifico, ricevere una notifica quando viene visualizzato o nascosto o traccia altro tipo di utilizzo
  • log di tutto per un file di log

manuale:

  • aggiungi dichiarazioni di registro alla parte pertinente del codice che desideri monitorare.

finale:

  • inviare il file di log su base regolare
+0

E non dimenticare di tenere d'occhio la dimensione del tuo file di registro. Gli errori "Spazio su disco" possono essere molto fastidiosi. – pmr

+1

È uno strumento prezioso per le beta pubbliche: solo per vedere la copertura delle funzioni che hai davvero raggiunto. – peterchen

+0

Dubito che questa domanda riguardasse il fare questo senza il consenso dell'utente. Dopotutto, di solito ci sono delle leggi che riguardano la raccolta e la conservazione dei dati e, almeno in Europa, non è possibile andare in giro semplicemente rintracciando l'utente senza che lo sappiano (eccetto per le pagine web dove è essenzialmente impossibile dimostrare che le tue interazioni vengono monitorate ... evviva) . – Joey

1

immagino, la tua risposta è "No". Non penso che ci siano tali librerie.

Penso anche che la soluzione migliore qui sia la registrazione, il che significa che dovresti introdurre manualmente alcune funzioni di registro nelle funzioni del tuo programma principale e inviare di nuovo il file di registro. Quando si tratta di registrazione, si può prendere in considerazione l'uso della programmazione orientata all'aspetto (e lì sono tali strumenti per C++), può semplificare il compito ...