Newsgroup: it.comp.lang.visual-basic
Titolo: Estrarre testo da una Edit

Salve a tutti!
Come suggerito da hal1961 (che ringrazio ancora!), ho usato una function per
leggere il testo dentro ad un controllo Edit, di cui ho trovato l'handle
grazie all'API FindWindow. Il codice è questo:
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
Utilizzando questa funzione la prima volta non mi rimanda niente, se la uso
una seconda invece mi rimanda la stringa giusta, funziona anche in tutti i
tentativi seguenti... Quindi questa è la mia domanda:
Questa funzione ha bisogno in qualche modo di essere inizializzata? Non mi
darei altra spiegazione...
Grazie a tutti quelli che mi aiuteranno a risolvere il dilemma!
P.S. Se avvio il progatto da VB e chiamo la function quella funziona anche
al primo tentativo, l'errore che ho descritto qui sopra riguarda l'exe
compilato... (e questo è ancora più strano!)
--------------------------------------------
             ASSA
http://assatarram.yohoo.it
Napster: Assatarram3
it.comp.lang.visual-basic: Assatarram
--------------------------------------------

     ret = SendMessage(a_hWnd, EM_GETLINE, 0&, ByVal buffer)
Hai provato con l'API GetWindowText?
Ciao, M.

 ha scritto nel messaggio
news:9ac366$4fte0$1...@ID-77380.news.dfncis.de...


Hai provato con l'API GetWindowText?
non va bene per il suo caso (deve leggere il testo di una Edit)
ciao, hal

seconda volta in poi che la si richiama...
Non ha bisogno di nessuna inizializzazione. Forse fai qualche giro strano
col codice o manca qualche refresh.
ciao, hal

 ha scritto nel messaggio
news:9adpd3$4m2gj$1...@ID-56381.news.dfncis.de...

Giri strani non mi sembra di farne...
Uso di fila tutti i vari FindWindowEx finchè non trovo l'handle della
finestra che mi serve, quindi chiamo la tua funzione e puntualmente la prima
volta non funziona.... Mentre nelle successive sì... Ho anche provato a
isolare solo il codice di rilevamento e a metterlo in un exe a parte, ma la
questione è sempre la stessa... Vabbè, ricontrollerò ancora...


questione č sempre la stessa... Vabbč, ricontrollerň ancora...
mumble, mumble ...
qual e' la finestra che ti fa questo scherzetto ?
ciao, hal

 qual e' la finestra che ti fa questo scherzetto ?
Come ti ho detto č l'Edit che contiene l'URL del sito in navigazione di IE,
ti scrivo anche il codice che uso per trovarne l'handle:
Dim hwnd As Long
Dim Titolo As String * 256
Dim URL As String
hwnd = FindWindow("IEFrame", vbNullString)
    GetWindowText hwnd, Titolo, 256
hwnd = FindWindowEx(hwnd, 0, "WorkerW", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "ReBarWindow32", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "ComboBoxEx32", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "ComboBox", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "Edit", vbNullString)
    URL = vbGetEditText(hwnd)
Comunque ho anche controllato l'handle: quello lo rileva ogni volta ed č
giustamente sempre lo stesso...
Continuo a non capirci niente...
Se hai bisogno di qualche altro dato chiedi pure!


ciao
Scusami il ritardo con cui ti rispondo, ma negli ultimi 2 gg ho seguito poco
il ng.
Allora, hai ragione, la cappella e' mia.
Il messaggio da usare (stavolta ho provato il codice) e'
Private Const WM_GETTEXT = &HD
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, WM_GETTEXT, 255&, ByVal buffer)
    If ret Then
        vbGetEditText = Left$(buffer, ret)
    End If
End Function
Scusami per il tempo che ti ho fatto perdere.
ciao, hal

Mia moglie mi ha chiamato per la cena e mi sono distratto.
Il terzo argomento di SendMessage e' la lunghezza della stringa,
quindi se 
buffer = String(255, &H20)
allora
ret = SendMessage(a_hWnd, WM_GETTEXT, 255&, ByVal buffer)
ciao, hal


 Scusami per il tempo che ti ho fatto perdere.
Niente, figurati, anzi ancora una volta grazie!!!!!
Ora tutto gira per il verso giusto, sono finalmente
riuscito a fare quello che volevo!!!!!!!
Grazie ancora e ciao
--------------------------------------------
             ASSA
http://assatarram.yohoo.it
Napster: Assatarram3
it.comp.lang.visual-basic: Assa
--------------------------------------------