Newsgroup: it.comp.lang.visual-basic
Titolo: Handle di Internet Explorer

Come faccio per ottenre l'handle di una finestra di internet explorer,
ho provato ad usare la funzione FindWindow dandogli come
nome della finestra "iexplore", ma non funziona... Avete qualche idea?
--------------------------------------------
             ASSA
http://assatarram.yohoo.it
Napster: Assatarram3
it.comp.lang.visual-basic: Assatarram
--------------------------------------------

nome della finestra "iexplore", ma non funziona... Avete qualche idea?
Sto pensando ad alta voce:
Prova con lo spy ad inviduare la classe di finestra ed a passare quella a FindWindow.
Per esempio, la finestra di IE 5 e' di classe IEFrame.
ciao, hal

 ha scritto nel messaggio
news:9a7pfe$436d5$1...@ID-56381.news.dfncis.de...

Domanda da novellino:
Dove posso scaricarmi lo spy? Se è in grado di dirmi la classe di
appartenenza
degli oggetti sicuramente mi può essere utile...
Ora sono riuscito ad individuare l'ultima finestra attivata di Explorer, con
lo spy
riesco ad individuare la classe di appartenenza della barra degli indirizzi
per
poter ottenere l'handle anche di quella?
Grazie!


poter ottenere l'handle anche di quella?
con lo spy++ puoi monitorare finestre, processi e messaggi
(e' stato maledettamente istruttivo per me, figuriamoci per uno come te
che ha i neuroni freschi e scattanti :)
ciao, hal

 ha scritto nel messaggio
news:9a7t4o$41uvt$1...@ID-56381.news.dfncis.de...

Avresti un esempio di utilizzo dell'API GetWindowText?
Ho individuato l'handle di Iexplore e gliel'ho passato, ma mi
rimanda sempre errore... Bisogna impostare qualcosa in modo
specifico?
Ancora Grazie


 Ancora Grazie
Ho capito ugualmente, grazie comunque!
Lo scrivo qua sotto, magari serve anche a qualcun altro:
Private Declare Function GetWindowText Lib "user32.dll" Alias
"GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As
Long) As Long
Dim Stringa As String * 127 'Io sbagliavo a non dimensionare questa
variabile
GetWindowText Hwnd, Stringa, 127
Debug.print Stringa
ciao


specifico?
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" ( _
                                         ByVal hwnd As Long, _
                                         ByVal lpString As String, _
                                         ByVal cch As Long _
                                         ) As Long
Public Function vbGetWindowText(ByVal a_hWnd As Long) As String
    If (a_hWnd = 0) Then Exit Function
 
    Dim mi_Size As Long
    Dim ret As Long
    Dim buffer As String
 
    mi_Size = 255
    buffer = String(mi_Size, 0)
 
    ret = GetWindowText(a_hWnd, buffer, mi_Size)
    If ret Then
        vbGetWindowText = Left$(buffer, ret)
    End If
End Function
ciao, hal

 >specifico?
Grazie mille, qui ho risolto...
Ma ora insorge un altro problema:
Sono riuscito, tramite i vari FindWindowEx a trovare
l'handle della barra degli indirizzi di IE, ci ho fatto sopra
il mio bel GetWindowText... ma non funziona, sono allora
andato a guardarmi una spiegazione dell'API su 
allapi.net
,
ma non ho scoperto nulla di nuovo...
Esistono altre funzioni simili al GetWindowText, che però
funzionino con tutti i tipi di controlli?
Per l'ennasima volta grazie!


il mio bel GetWindowText... ma non funziona, 
certo, perche' la GetWindowText ti da il "titolo" della finestra,
non il suo contenuto
La finestra dell' indirizzo e' una Edit, e per ottenere il testo che contiene
va usato SendMessage:
Private Const EM_GETLINE = &HC4
Public Function vbGetEditText(ByVal a_hWnd As Long) As String
    Dim buffer As String
    Dim ret As Long
 
    buffer = String(1024, &H20)
    ret = SendMessage(a_hWnd, EM_GETLINE, 0&, ByVal buffer)
 
    If ret Then
        vbGetEditText = Left$(buffer, ret)
    End If
 
End Function
Nel dimensionare il buffer, se prevedi dgli url piuttosto lunghi, vedi di tenerti largo :)
ciao, hal

 va usato SendMessage:
Grazie mille!!!!
Ti chiedo ancora una cosa (non indipensabile) e poi ti lascio in pace:
È possibile modificara il menu che appare con il click col destro su
questa Edit? Mi servirebbe aggiungergli una voce per rendere più
comoda la memorizzazione dell'indirizzo...
Ancora grazie 1000!!!!!!!!
ciao
