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