Riproduzione File Audio se Notifica Windows parola chiave

di il
3 risposte

Riproduzione File Audio se Notifica Windows parola chiave

Buongiorno a tutti.

E' possibile creare un codice VB net per fare in modo che all'arrivo di una notifica windows (quelle classiche che appaiono temporaneamente sullo schermo) che contiene una parola chiave (definita nel codice) mi venga riprodotto un file audio (definito nel codice)?

L'utente che poi “eseguirà" questa applicazione non ha diritti di amministratore.

Io ho iniziato a scrivere qualche riga di codice ma non funziona, sembra quasi che non vengano controllate le notifiche.

Ho scritto questo codice (abbinato ad un pulsante di test ) ed in effetti mi fa apparire una notifica :

  Private Sub btnTestNotifica_Click(sender As Object, e As EventArgs) Handles btnTestNotifica.Click
        Dim notification As New NotifyIcon()
        notification.Icon = SystemIcons.Application
        notification.BalloonTipTitle = "Notifica di prova"
        notification.BalloonTipText = "Questa è una notifica di prova contenente la parola TEST"
        notification.Visible = True
        notification.ShowBalloonTip(5000)
    End Sub

Poi questo, abbinato ad un timer (che da codice è enabled true, quindi attivo :

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        'Controlla l'elenco delle finestre attive alla ricerca di notifiche contenenti la parola "TEST"
        Dim hwnd As IntPtr = GetForegroundWindow()
        Dim sb As New StringBuilder(256)
        GetWindowText(hwnd, sb, sb.Capacity)
        Dim notificationText As String = sb.ToString()
        Dim regex As New Regex("\bTEST\b")
        Dim match As Match = regex.Match(notificationText)
        If match.Success Then
            MessageBox.Show("Parola 'TEST' trovata nella finestra attiva.")
            'Riproduci il file audio
            If System.IO.File.Exists("C:\Users\xxx\Music\Audio.wav") Then
                My.Computer.Audio.Play("C:\Users\xxx\Music\Audio.wav", AudioPlayMode.Background)
            Else
                MessageBox.Show("File audio non trovato.") 'Aggiunto MessageBox per segnalare l'errore
            End If
        End If
    End Sub

Ho anche aggiunto un pulsante di test per far riprodurre l'audio ed il Player (che ho aggiunto come componente) e funziona, l'audio viene riprodotto.

C'è qualche modo per “capire” se il problema sta nel fatto che non riesce a capire che sono arrivate delle notifiche?

Non voglio che mi scriviate il codice, solo qualche spintarella nella giusta direzione. 

P.S. Se scrivo :

Dim regex As New Regex("\b\w+\b")  ' quindi con qualsiasi cosa

La notifica audio viene riprodotta ( in modo continuo ma questo sarà poi un altro problema.. un passo alla volta ..)

Grazie

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte