Newsgroup: it.comp.lang.visual-basic
Titolo: Help

Sintetizzando
C'č un modo per passare un determinato valore da un programma ad un
altro!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 altro!
grazie.
quale?
(hai notato quale segno di interpunzione ho utilizzato?)
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 (hai notato quale segno di interpunzione ho utilizzato?)
Scusa la mia ignoranza ma non ho capito cosa intendi



Che tu hai fatto una domanda usando il punto esclamativo, ergo in realtà hai
fatto un'affermazione.... Anzi, un'esclamazione!
:-)
-- 
Guarda, ma non toccare!
Tocca, ma non gustare!
Gusta, ma non inghiottire!
Per rispondere in privato elimina dall'indirizzo "togliquesto"
MasterDavidex - David Ruscelli

 fatto un'affermazione.... Anzi, un'esclamazione!
ok avete ragione ma siete un po' delicati cacchio!!


 ok avete ragione ma siete un po' delicati cacchio!!
sai com'è, è estate, c'è un po' di tempo libero e si possono notare anche i
piccoli dettagli :-)
tornando al tuo problema: dipende dal programma a cui vuoi passare i dati,
deve essere lui a darti la possibilità di interagire.
nello specifico di winfax... non lo so :-)


 nello specifico di winfax... non lo so :-)
Pensavo di potesse trovare in qualche modo un numero che identificasse
la casella che interessa a me e metterci il valore che volevo io.
Ma allora, scusa se ti porto un esempio non dei migliori, i crack come
fasso a passare i valori alle celle?


 fasso a passare i valori alle celle?
I crack?
Quali celle?


 fasso a passare i valori alle celle?
Il numero di identificazione che cerchi e' l'handle di finestra del
controllo; una volta ottenuto quello puoi effettivamente agire sul
controllo, tramite le funzioni dell'API, quasi come se fosse integrato
nell'applicazione...
il problema e' che l'handle viene generato sul momento da Windows e non e'
costante da un'esecuzione all'altra, quindi il sistema e' estremamente
fragile perche' legato alla struttura della finestra.
Non e' una cosa immediata da spiegare, comunque in due parole:
come prima cosa devi conoscere la classe dei controlli che ti interessano
(questo lo puoi scoprire con l'utility Spy++ inclusa in VB6); a questo punto
devi recuperare l'handle della finestra principale e, successivamente,
scorrere gli handle dei controlli figli fino a trovare quello che ti
interessa, cosa che puo' essere piu' o meno facile a seconda di come e'
strutturata la finestra. Ottenuto l'handle devi usare le funzioni opportune
per cambiare le proprieta' del controllo stesso.
Personalmente e' un sistema che ti sconsiglio, ma se proprio non sai dove
andare a parare ecco un esempio abbastanza semplice, proprio perche' la
finestra in questione (Internet Explorer) ha pochi controlli e ben definiti.
Piazza tutto in un modulo BAS
'Scriviamo un testo nel combo box degli indirizzi di IE
'NOTA BENE: l'applicazione deve essere gia' in esecuzione
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
    (ByVal hWnd1 As Long, ByVal hWnd2 As Long _
    , ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function SendMessageStr Lib "user32" Alias "SendMessageA" _
    (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long _
    , ByVal lParam As String) As Long
Public Const WM_SETTEXT = &HC
Sub Main()
Dim hwndIExplorer   As Long
Dim hwndTemp    As Long
'l'handle principale di IE data la classe della finestra
hwndIExplorer = FindWindow("IEFrame", vbNullString)
If hwndIExplorer Then
    'l'handle della barra degli strumenti che e' figlia
    'di una non meglio identificata finestra WorkerW,
    'figlia a sua volta della classe principale
    hwndTemp = FindWindowEx(hwndIExplorer, 0&, "WorkerW", vbNullString)
    If hwndTemp = 0 Then
        MsgBox "Handle non trovato"
        Exit Sub
    End If
    hwndTemp = FindWindowEx(hwndTemp, 0&, "ReBarWindow32", vbNullString)
    If hwndTemp = 0 Then
        MsgBox "Handle non trovato"
        Exit Sub
    End If
    'ora il combo box degli indirizzi, figlio della barra degli strumenti
    hwndTemp = FindWindowEx(hwndTemp, 0&, "ComboBoxEx32", vbNullString)
    If hwndTemp = 0 Then
        MsgBox "Handle non trovato"
        Exit Sub
    End If
    'scriviamo il testo desiderato
    SendMessageStr hwndTemp, WM_SETTEXT, 0&, "Ciao mamma!"
End If
End Sub
Un occhiata su MSDN per i dettagli
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown