Differenze tra le versioni di "Individuare il nome della finestra di un programma"
Riga 1: | Riga 1: | ||
− | E' possibile ottenere il nome della finestra del programma principale usando due proprietà della classe ''DesktopWindow''. | + | =Uso della Classe ''DesktopWindow''= |
+ | |||
+ | E' possibile ottenere il nome della finestra del programma ''principale'' usando due proprietà della classe ''DesktopWindow''. | ||
==Uso della proprietà ''.VisibleName''== | ==Uso della proprietà ''.VisibleName''== | ||
Riga 39: | Riga 41: | ||
− | ==Conoscere il nome di <SPAN style="text-decoration:underline">tutte</span> le finestre attive presenti sul desktop | + | =Uso della proprietà ''Application.ActiveWindow'' e della Classe Window= |
+ | Per conoscere il nome della ''finestra'' attiva (cioè ove è posto un ''Controllo'' in quel momento attivo) del programma principale, si potrà utilizzare la proprietà ''.ActiveWindow'' della Classe ''Application'' congiuntamente con la Classe ''Window''. In tal modo sarà possibile gestire la finestra atttiva del programma come un oggetto ''Window'': | ||
+ | '''Public''' Sub Button2_Click() | ||
+ | |||
+ | Dim w As Window | ||
+ | |||
+ | w = Application.ActiveWindow | ||
+ | |||
+ | With w | ||
+ | <FONT color=#006400>' ''Vediamo il PID della "finestra" attiva del programma:''</font> | ||
+ | Print .Id, Hex(.Id) | ||
+ | <FONT color=#006400>' ''Vediamo il nome del programma:''</font> | ||
+ | Print .Name | ||
+ | <FONT color=#006400>' ''Vediamo il nome della "finestra" attiva del programma:''</font> | ||
+ | Print .Title | ||
+ | End With | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | |||
+ | =Conoscere il nome di <SPAN style="text-decoration:underline">tutte</span> le finestre attive presenti sul desktop= | ||
Se, invece, intendiamo conoscere il titolo di tutte le finestre presenti sul desktop, basterà usare la funzione ''Desktop.Windows[n].VisibleName'': | Se, invece, intendiamo conoscere il titolo di tutte le finestre presenti sul desktop, basterà usare la funzione ''Desktop.Windows[n].VisibleName'': | ||
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() |
Versione delle 00:35, 18 feb 2013
Indice
Uso della Classe DesktopWindow
E' possibile ottenere il nome della finestra del programma principale usando due proprietà della classe DesktopWindow.
Uso della proprietà .VisibleName
La proprietà .VisibleName restituisce il nome della finestra visibile, vale a dire il titolo della finestra come visualizzato dal gestore di finestre.
E' il caso di ricordare che il nome visibile della finestra può essere diverso dal nome del programma, quando due o più finestre hanno lo stesso nome.
Public Sub Button1_Click() Dim s As String Dim dw As New DesktopWindow ' Individuiamo la finestra attiva corrente di primo livello, di cui raccogliere il nome: dw = New DesktopWindow(Desktop.ActiveWindow) s = dw.VisibleName Print s End
Uso della proprietà .Name
Si potrà utilizzare anche la proprietà ".Name", la quale estituisce il nome della finestra come specificata dall'applicazione a cui appartiene quella finestra.
Public Sub Button1_Click() Dim s As String Dim dw As New DesktopWindow ' Individuiamo la finestra attiva corrente di primo livello, di cui raccogliere il nome: dw = New DesktopWindow(Desktop.ActiveWindow) s = dw.Name Print s End
Uso della proprietà Application.ActiveWindow e della Classe Window
Per conoscere il nome della finestra attiva (cioè ove è posto un Controllo in quel momento attivo) del programma principale, si potrà utilizzare la proprietà .ActiveWindow della Classe Application congiuntamente con la Classe Window. In tal modo sarà possibile gestire la finestra atttiva del programma come un oggetto Window:
Public Sub Button2_Click() Dim w As Window w = Application.ActiveWindow With w ' Vediamo il PID della "finestra" attiva del programma: Print .Id, Hex(.Id) ' Vediamo il nome del programma: Print .Name ' Vediamo il nome della "finestra" attiva del programma: Print .Title End With End
Conoscere il nome di tutte le finestre attive presenti sul desktop
Se, invece, intendiamo conoscere il titolo di tutte le finestre presenti sul desktop, basterà usare la funzione Desktop.Windows[n].VisibleName:
Public Sub Button1_Click() Dim i As Integer For i = 0 To Desktop.Windows.Count - 1 Print Desktop.Windows[i].VisibleName Next End
oppure con la combinazione della Classe Desktop e la Classe DesktopWindow:
Public Sub Button1_Click() Dim dw As DesktopWindow Dim j As Byte For j = 0 To Desktop.Windows.Count - 1 dw = New DesktopWindow(Desktop.Windows[j].Id) With dw ' In questo caso vediamo di ciascuna finestra sia il numero del PID (in esadecimale ed in decimale) che il Nome: Print Hex(.Id), .Id, .VisibleName End With Next End