PDA

Visualizza la versione completa : [Delphi] Problema con "Showmessage" in Timer


Led64
08-03-2012, 23:55
Salve a tutti,
mentre esploravo i controlli mi sono imbattuto nel controllo TTimer, ho letto un po' su internet e ho capito che questo controllo quando è attivo esegue le operazioni a ogni intervallo specificato in millisecondi tra le proprietà.
Provo a fare una cosa banalissima, ovvero dando come istruzione da ripetere "Showmessage('Ciao');" pensando che il programma avrebbe mandato in out quella stringa ogni secondo (intervallo del timer a 1000). Con mia sorpresa, il "programma" è stato rilevato come Malware da parte dell'antivirus (Avast in questo caso).
A questo punto, ho inizialmente riprovato e sempre l'antivirus bloccava il tutto, poi ho provato a ripetere la stessa operazione utilizzando un MessageDlg. Questa volta il programma ha eseguito tutto come pianificato senza errori.
La domanda che mi faccio è: è normale che l'antivirus segni ciò? Perché dovrebbe essere rilevato come dannoso, mentre un MessageDlg(che poi in fondo quello che ho ottenuto è la stessa cosa, a parte l'aspetto grafico della finestra) viene riconosciuto come valido?
Mi sono per caso perso un passaggio importante mentre leggevo il funzionamento su internet di tale controllo?

denis76
09-03-2012, 09:41
Lo ShowMessage è un popup bloccante. QUando compare il primo in verità è necessario chiuderlo perché il programma possa camminare.

alka
09-03-2012, 15:16
Originariamente inviato da Led64
dando come istruzione da ripetere "Showmessage('Ciao');" pensando che il programma avrebbe mandato in out quella stringa ogni secondo (intervallo del timer a 1000). Con mia sorpresa, il "programma" è stato rilevato come Malware da parte dell'antivirus (Avast in questo caso).


Per quanto mi riguarda, tanto di cappello ad Avast che a mio avviso è stato bravo nel riconoscere un "pattern" comportamentale del programma che potrebbe essere davvero fastidioso: un'applicazione che volontariamente visualizza una nuova finestra di messaggio ogni secondo (da chiudere per continuare) a mio avviso non è il massimo, e sarei ben felice se l'antivirus me lo segnalasse.

Probabilmente, con la MessageDlg non funziona in quanto non viene usata una funzione API (MessageBox) ma la finestra viene creata usando un Form Delphi a tutti gli effetti, pertanto probabilmente il "pattern" si complica ed è tale per cui non viene più identificato come dannoso dall'antivirus.

Detto questo, mi pare un modo poco bello di mostrare notifiche in un'applicazione. :)

Loading