Discussione Malware Avere Informazioni Da un PC Remoto (Delphi XE)

Stato
Discussione chiusa ad ulteriori risposte.
Ho aggiornato anche questo codice:
Codice:
procedure TForm1.ConnettiClick(Sender: TObject);
var
client: TIdTCPClient;
begin
client := TIdTCPClient.Create;
client.Port := 2630;
client.Host := edit3.text;
client.ReadTimeout := 10000;
Writeln('Starting client...');
while True do
begin
try
if not client.Connected then
begin
client.Connect;
Writeln('Connected!');
SendHello(client.IOHandler);
end;
while client.Connected do
if not HandleResponse(client.IOHandler) then
break;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end;
Writeln('Closing');
end;

Il problema sta qui, hai copiato il codice della console application in un bottone di una VCL application. L'errore probabilmente è causato da ogni singola chiamata a Writeln per cui basta toglierle o sostituirle con un assegnazione a una label o su una memo. L'altro problema: il codice è disegnato per lavorare in modo blocking su un thread, significa che una volta risolto l'errore succederà che dopo aver cliccato il bottone il programma funzionerà, ma l'interfaccia grafica verrà congelata, crashando se provi a cliccare da qualche parte.

Se vuoi continuare ad usare un form VCL e risolvere il problema del freeze sposta il codice in un thread separato e sincronizzalo quando vuoi leggere/scrivere qualcosa nel form.

Credo ti sia stato fornito sufficiente supporto su quest'argomento, sul forum non è la regola dare esempi già pronti, a questo punto dovresti approfondire ciò che ti ho suggerito per conto tuo per comprendere meglio ed essere in grado di continuare da solo. Se hai nuovi problemi a cui non vieni a capo apri pure un nuovo thread, in tal modo avrà un titolo più coerente con ciò che stai chiedendo ed altri utenti potranno usufruirne, cosa che non accadrebbe in questo thread visto che la domanda iniziale era una e dopo vari problemi-soluzioni si è arrivato a tutt'altro.
 
  • Mi piace
Reazioni: Hastro
Stato
Discussione chiusa ad ulteriori risposte.