Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, _
ByVal lParam As Object) As Integer
si capisce che come primo parametro vuole l'handle dell'oggetto (hwnd)
Non ho sottomano il net ma ricordo che in vb6 il controllo Image non ha la proprietà hdc, mentre il controllo Picture si.
Codifica l'immagine in Base64 e invia un tag del tipo <image data="TestoCriptatoInBase64..."> al client... puoi ottimizzare creando degli id univoci per ogni immagine ed effettuando l'invio dei dati solo se il client non possiede già una copia di quella immagine, ma è una complicazione che non credo tu sia in grado di affrontare in questo momento...
EDIT: ovviamente il client dovrà riconvertire lo stream in Base64, salvare il risultato, riaprire il file salvato come immagine e usare la clipboard per "appiccicarla" nella finestra della chat...
Ultima modifica effettuata da TheKaneB il 12/11/2009 alle 13:01
Per favore, non voglio vedere post del tipo "se fosse vb6 sarebbe così", perchè VB.NET NON E' una riedizione di VB6, e di simile ha solo la sintassi.
Ricordo, inoltre, che la codifica a base 64 occupa circa il 25% in più di spazio, e non è ottimale per un programma che scambia dati in rete. Puoi spedire l'immagine direttamente come stream di dati.
Tuttavia, la tua richiesta non è ben chiara. Vuoi che digitando un certo codice appaia una certa immagine (cosa che fa messenger)? In questo caso, basta lavorare in locale e la clipboard va bene: quando il messaggio verrà inviato, sarà comunque solo testo e l'altro client lo riconvertirà in immagine.
Se, al contrario, vuoi spedire proprio l'immagine, fai come ho detto prima inviando direttamente il flusso di dati: magari potresti comprimerlo con un algoritmo, ad esempio Deflate, per aumentare la velocità di scambio.
Per favore, non voglio vedere post del tipo "se fosse vb6 sarebbe così", perchè VB.NET NON E' una riedizione di VB6, e di simile ha solo la sintassi.
Ricordo, inoltre, che la codifica a base 64 occupa circa il 25% in più di spazio, e non è ottimale per un programma che scambia dati in rete. Puoi spedire l'immagine direttamente come stream di dati.
Tuttavia, la tua richiesta non è ben chiara. Vuoi che digitando un certo codice appaia una certa immagine (cosa che fa messenger)? In questo caso, basta lavorare in locale e la clipboard va bene: quando il messaggio verrà inviato, sarà comunque solo testo e l'altro client lo riconvertirà in immagine.
Se, al contrario, vuoi spedire proprio l'immagine, fai come ho detto prima inviando direttamente il flusso di dati: magari potresti comprimerlo con un algoritmo, ad esempio Deflate, per aumentare la velocità di scambio.
Ricordo, inoltre, che la codifica a base 64 occupa circa il 25% in più di spazio, e non è ottimale per un programma che scambia dati in rete. Puoi spedire l'immagine direttamente come stream di dati.
[...]
Concordo pienamente con te, ma è un metodo utile se si ha il vincolo di inviare stringhe in formato testuale, come nel caso del protocollo usato dai mail server ad esempio... Non so come funzioni il protocollo usato da LittleHacker ma, se invia correttamente delle stringhe testuali, potrà sicuramente inviare un file codificato in Base64.
Se, invece, avesse la possibilità di inviare uno stream "raw" di dati ancora meglio, potrebbe impacchettare il file compresso tramite Deflate, LZMA o altri algoritmi.
Ciao!
Ultima modifica effettuata da TheKaneB il 12/11/2009 alle 17:22
Allora ho trovato il modo di "appiccichare" l'immagine nella RitchTextBox con questo codice, utilizzando una picturebox(quel codice di prima non andava neanche se lo prendevo a cali):
Codice sorgente - presumibilmente VB.NET
Sub InsertImageIntoRtb(ByVal rtb As RichTextBox, ByVal img As Image)
Clipboard.SetDataObject(img)
rtb.Paste()
EndSub
però adesso ho un'altro problema e cioè che l'emoticon non me la inseriscie nella linea dove si trova la stringa ma in alto a sinistra...la domanda è: come faccio a mettere l'emoticon dove c'è la stringa ad esempio:
Littlehacker Scrive >> Ciao come va?
Pinco scrive >> Ciao Bene bene