Newsgroup: it.comp.lang.visual-basic
Titolo: [REQ] Stringhe Fantasma

Il pezzo di codice che segue (trovato in internet) cerca in InternetExplorer
il combo box dove si digitano gli url, quindi lo riempie con uno degli url
sorteggiato trova il button 'go' e ci clicca sopra (funziona perfettamente).
Quello che mi interessa e' il metodo per puntare al combo partendo dall'
hndw di "ieframe".
Le stringhe "workera";"rebarwindow32";"comboboxex32";"combobox";"edit" non
sono state trovate dal progetto ma inserite dall'autore.
Come avra' fatto a trovare tali stringhe    ?    ?    ?    ?    ?    ?    ?
Mi sembra molto interessante acquisire le cognizioni per puntare a qualsiasi
oggetto interno ad una qualsiasi window esterna.
Ho chiesto all'autore in merito ma la sua risposta non e' stata esaustiva
(probabilmente ha copiato anche lui).
Questo e' il link per chi volesse vedere il prg completo.
http://www.planet-source-code.com/upload/ftp/CODE_UPLOAD775.zip
*    *    *    *    *    *    *    *    *    *
ie& = FindWindow("ieframe", vbNullString)
'wait untill it is visible
worker& = FindChildByClass(ie&, "workera")                            'find
the sub class for the bar across the top
rebar& = FindChildByClass(worker&, "rebarwindow32")           'find the bar
across the top
combo32& = FindChildByClass(rebar&, "comboboxex32")         'find the sub
class for the combo box
combo& = FindChildByClass(combo32&, "combobox")               'find the
combo box
edit& = FindChildByClass(combo&, "edit")
'find where to put the adress in
X = Int(Rnd * 16) + 1
If X = 16 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.altavista.com
")      'this just randomly picks a web
If X = 15 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.hotbot.com
")         'page and sets it in the adress box
If X = 14 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.askjeeves.com
")
If X = 13 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.winfiles.com
")
If X = 12 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.skateboarding.com
")
If X = 11 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.yahoo.com
")
If X = 10 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.espn.com
")
If X = 9 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.planetsourcecode.com
")
If X = 8 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.windows.com
")
If X = 7 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.sports.com
")
If X = 6 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.asdf.com
")
If X = 5 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.microsoft.com
")
If X = 4 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.wwwheels.com
")
If X = 3 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.basketball.com
")
If X = 2 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.football.com
")
If X = 1 Then giveweb& = SendMessageByString(edit&, WM_SETTEXT, 0,
"
www.autobytel.com
")
gobutton& = FindChildByClass(combo32, "toolbarwindow32")
'find the go button
Click& = SendMessage(gobutton&, WM_LBUTTONDOWN, 0, 0&)
'click the go button
Click& = SendMessage(gobutton&, WM_LBUTTONUP, 0, 0&)
'*** funzioni ***
Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Function FindChildByClass(parentw, childhand)
    Dim Firs As Integer, Firss As Integer, Room As String
    Firs% = GetWindow(parentw, 5)
    If UCase(Mid(Get_Class(Firs%), 1, Len(childhand))) Like UCase(childhand)
Then GoTo Digital
        Firs% = GetWindow(parentw, GW_CHILD)
    If UCase(Mid(Get_Class(Firs%), 1, Len(childhand))) Like UCase(childhand)
Then GoTo Digital
    While Firs%
        Firss% = GetWindow(parentw, 5)
        If UCase(Mid(Get_Class(Firss%), 1, Len(childhand))) Like
UCase(childhand) Then GoTo Digital
        Firs% = GetWindow(Firs%, 2)
        If UCase(Mid(Get_Class(Firs%), 1, Len(childhand))) Like
UCase(childhand) Then GoTo Digital
        Wend
        FindChildByClass = 0
Digital:
Room$ = Firs%
FindChildByClass = Room$
End Function

 wrote in message 3842e...@news.megasys.it...


 ha scritto nel messaggio
news:8jk25e$33b$1...@nslave1.tin.it...


 wrote in message 38436...@news.megasys.it...
