Esiste un API che mi restituisce il nome della finestra attiva????
Esiste un API che mi restituisce il nome della finestra attiva????
GetActiveWindow ritorna l'handle della finestra
GetWindowText ritorna il testo di una finestra di cui sai l'handle
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
innnanzitutto grazie per la rispost.
ho aperto l api viewer e ho cercato le 2 api.
questa è abbastanza chiara.codice:Public Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
questa un po meno: il primo argomento che gli passo è l handle, ma gli altri 2? e poi nn dovrebbe restituirmi una string?codice:Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
la seconda gli passi
l'handle , una stringa lunga quanto il numero che passi nel terzo parametro ovvero
codice:sbuffer = space(255) GetWindowText(handle,sbuffer,255) sbuffer = trim(sbuffer)
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
quindi il nome della finestra rimarrà memorizzato in sbuffer????
si le api restituiscono solo valori numerici a 32bit (indovina come mai?) se vuoi che ritornino una stringa gli devi creare un buffer di scrittura
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
mmm c'è un problema. apparentemente funziona solo che mi "riconosce" solamente il form stesso e il visual bsic, se provo ad attivare un altra finestra (tipo internet explorer nn va!). pensavo fosse perchè bisognava prima compilarlo e invece nn funziona comunque
ecco il codice che utilizzo
codice:Private Declare Function GetActiveWindow Lib "user32" () As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Sub Timer1_Timer() Dim h As Long Dim a As String h = GetActiveWindow a = Space(255) GetWindowText h, a, 255 a = Trim(a) List1.AddItem a End Sub