Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [c#] screenshot remoto (parte client)
Forum - C# / VB.NET - [c#] screenshot remoto (parte client)

Avatar
ianna93 (Normal User)
Newbie


Messaggi: 11
Iscritto: 23/04/2010

Segnala al moderatore
Postato alle 11:30
Sabato, 19/06/2010
Allora parto con la spiegazione: volevo capire come funzionasse un programma tipo teamviewer o showmypc, ecc.
Mi sono messo a crearne uno (non l'avessi mai fatto..):rofl:!

Il server invia correttamente un immagine gif 1024x768 (max 100kb) (forse l'immagine è troppo grande? no perché in precedenza riuscivo ad inviare immagini png 1280x1024) e il client li riceve corretamente. Secondo me il problema sta nel fatto che la form ricevendo l'immagine non fa in tempo a prepararsi perché è già pronta a cambiarla e quindi a riceverne un'altra! :-| non so se si capisce...
Dovrei aggiungere, non so, qualche evento? boh aiutatemi voi!! se non avete capito basta chiedere. Posto il codice se serve!
Grazie in anticipo!:k:


I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L'insieme dei due costituisce una forza incalcolabile!!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5686
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:33
Sabato, 19/06/2010
Non si è capito nulla ... in particolare, il server spedisce correttamente, il client riceve correttamente ... e il problema allora qual è?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:33
Sabato, 19/06/2010
Meglio se posti il codice... E che spieghi meglio cosa intenedi per "non fa in tempo a prepararsi".


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
delta (Normal User)
Pro


Messaggi: 96
Iscritto: 01/09/2009

Segnala al moderatore
Postato alle 17:44
Sabato, 19/06/2010
la form è lato client, suppongo. quindi il problema è l'aggiornamento dell'immagine, che non avviene abbastanza rapidamente?


programmatore è chi, non sapendo come realizzare un'idea, studia e trova il modo di farla. E' un lamer chi, non sapendo come realizzare un'idea, copia il codice degli altri.

"http://deltatheprogrammer.blogspot.com

Life_Universe_Everything
PM Quote
Avatar
ianna93 (Normal User)
Newbie


Messaggi: 11
Iscritto: 23/04/2010

Segnala al moderatore
Postato alle 18:30
Lunedì, 21/06/2010
Allora in pratica ho capito il problema, ma non ho capito come risolvere:

Codice sorgente - presumibilmente C++

  1. using System;
  2. using System.Net.Sockets;
  3. using System.IO;
  4. using System.Drawing;
  5. using System.Windows.Forms;
  6.  
  7. namespace screenclient
  8. {
  9.     public partial class screenning : Form
  10.     {
  11.         public screenning()
  12.         {
  13.            while(true)
  14.            {
  15.              // codice del programma dove riceve l'immagine e la mette come sfondo della form che devo far visualizzare.
  16.            }
  17.         }
  18.     }
  19. }



ricevendo in continuazione le immagini (screenshot) in un ciclo in loop, crea la form, ma è bianca e come se fosse bloccata. Questo è anche logico! Ma come risolvo? Si è capito il problema ora?


I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L'insieme dei due costituisce una forza incalcolabile!!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5686
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:56
Lunedì, 21/06/2010
Se usi un ciclo senza usare un nuovo thread, il thread corrente non ha il tempo di fare il refresh del form attuale.

O usi un nuovo thread, oppure provi ad inserire una

Application.DoEvent();

all'interno del ciclo


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
ianna93 (Normal User)
Newbie


Messaggi: 11
Iscritto: 23/04/2010

Segnala al moderatore
Postato alle 13:13
Martedì, 22/06/2010
Testo quotato

Postato originariamente da nessuno:

Se usi un ciclo senza usare un nuovo thread, il thread corrente non ha il tempo di fare il refresh del form attuale.

O usi un nuovo thread, oppure provi ad inserire una

Application.DoEvent();

all'interno del ciclo



Application.DoEvent(); niente male come cosa!! grazie 1000:k:


I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L'insieme dei due costituisce una forza incalcolabile!!
PM Quote