Oppure

Loading
11/11/09 22:02
LittleHacker
Postato originariamente da Gianluca87:

dimentichi il fatto che le emoticon si trovano in 2 pc diversi....la clipboard non è la stessa... e usare la clipboard così mi sembra un pò un accrocchio...


e allora come posso fare per visualizzare le faccine(sulla ritchtextbox e textbox)?:hail::k:
aaa
11/11/09 22:12
Gianluca87
sulla textbox non credo si possa...
cmq ho guardato un pò in giro... e tutti usano la clipboard...probabilmente mi sbaglio io ed è l'unico modo...
codeproject.com/KB/edit/…
aaa
11/11/09 22:37
Alfonso
Dalla dichiarazione delle funzione

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.

Per cui se fosse vb6:

SendMessage(Picture.hdc , WM_COPY, 0, 0)

Controlla in vb.net
aaa
12/11/09 12:00
TheKaneB
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 12/11/09 12:01
aaa
12/11/09 14:26
Il Totem
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.
aaa
12/11/09 15:07
LittleHacker
Postato originariamente da Il Totem:

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.

Vorrei inviarlo sotto forma di stringa...
aaa
12/11/09 16:12
Alfonso
Non mi sembra di aver postato una procedura complicatissima in vb6

in fin dei conti la differenza mi sembra sia solo .hdc(vb6) e .handle(.net)

Per cui dire:
< non voglio vedere post del tipo "se fosse vb6 sarebbe così" >
mi sembra eccessivo.

Volevo solo cercare di spiegare perchè, secondo me, c'è l'errore in :

SendMessage(Image1 'Qui mi dà l'errore , WM_COPY, 0, 0)
aaa
12/11/09 16:21
TheKaneB
Postato originariamente da Il Totem:
[...]

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 12/11/09 16:22
aaa