PDA

View Full Version : Come ottenere applicazione correntemente attiva?


serbring
20-03-2015, 07:26
buonggiorno a tutti, avrei bisogno di creare un'applicazione che gira in background che istante per istante mi dica quale sia l'applicazione correntemente attiva, cioè quella che effettivamente utilizza l'utente con il mouse. Avete un consiglio su come fare questo? C'è un API di windows che fa questo?

x_Master_x
20-03-2015, 14:38
GetCursorPos + WindowFromPoint + GetAncestor ( GA_ROOT )
Oppure più semplicemente quale finestra è attiva ( GetActiveWindow ) o quella che ha il focus ( GetFocus )

serbring
20-03-2015, 17:38
GetCursorPos + WindowFromPoint + GetAncestor ( GA_ROOT )
Oppure più semplicemente quale finestra è attiva ( GetActiveWindow ) o quella che ha il focus ( GetFocus )

grazie, ma queste sono API di windows? In caso potrei anche farle girare in matlab, giusto?

x_Master_x
20-03-2015, 18:18
Sì sono API di Windows, le trovi tutte su MSDN per ogni informazione/implementazione relative al tuo caso.

serbring
21-03-2015, 09:03
Sì sono API di Windows, le trovi tutte su MSDN per ogni informazione/implementazione relative al tuo caso.

grazie mille. Considerando che l'unico linguaggio che conosco è Matlab, qual'è il modo più semplice per implementare un'API del genere e creare un'applicazione windows che scrive secondo per secondo il nome dell'applicazione su un file di testo o excel?

x_Master_x
21-03-2015, 09:33
Mi dispiace ma non conosco Matlab, non ti posso aiutare da quel punto di vista.

serbring
21-03-2015, 15:51
matlab supporta i MEX files che sono dei file scritti in C e compilati e poi integrati nel runtime di matlab stesso... ma devi comunque programmare in C. in matlab che io sappia non e' assolutamente possibili sfruttare le API di windows direttamente da MATLAB, che e' essenzialmente un ambiente di calcolo e non di programmazione in generale.

neanche usando i mex file?

serbring
21-03-2015, 17:21
senza mex, direttamente da matlab, sicuramente no.

tramite mex file, probabilmente, anche se con molte limitazioni... e.s. un mex file lo puoi vedere come una funzione matlab scritta in C e precompilata per le prestazioni, non so a quali limitazioni è soggetta.

Ti ringrazio e quale linguaggio semplice da usare mi potresti consigliare per fare questo lavoro?

serbring
22-03-2015, 13:57
non sono esperto di programmazione su windows, magari qualcun'altro interverrà dopo di me con una idea migliore... forse C#?

grazie mille per la consulenza ;)