PDA

View Full Version : [dubbio linguaggio] programmino per copiare dal buffer "appunti"


starmar
27-04-2012, 14:54
Ciao ragazzi, io e un' altro pugno di studenti di ing, vogliamo fare un piccolo sw da rilasciare che, resta in ascolto sul buffer "appunti" e copia il contenuto su un file di testo ogni volta che c'è qualcosa di nuovo. Abbiamo conoscenze di c, c++ e abbiamo usato a livello "grafico" solo le librerie qt. Visto che a quanto pare le qt non abbiano una buona gestione della clpboard, sapete dirmi, visto che partiamo da zero quale linguaggio conviene scegliere ?grazie

ingframin
27-04-2012, 15:53
A naso, se deve girare su windows, ti direi C# oppure C++ ma su Visual C++ con le librerie di microsoft.
Un'altra possibile scelta e' sempre C++ con WxWidgets o Python con WxPython (che in pratica e' sempre WxWidgets wrappato).
Attendo pero' conferme smentite da chi e' piu' esperto di me

Mettiu_
27-04-2012, 16:18
Tempo fa avevo fatto realizzato una cosa del genere (un pò più complessa) e avevo usato con profitto C# (solo per Win). Si riuscivano a gestire tante cosucce interessanti, ad esempio nella clipboard possono esserci file, immagini, contenuti multimediali e testo (caso tuo). Non dovreste avere grossi problemi se usate .NET, invece per quanto riguarda il linguaggio la scelta tra VB.NET, C#, Visual C++ e compagnia bella è solo una questione dei vostri gusti personali.
Date una spulciata alla documentazione MSDN (http://msdn.microsoft.com/en-us/library/system.windows.forms.clipboard.aspx). :)

tomminno
27-04-2012, 20:21
Ciao ragazzi, io e un' altro pugno di studenti di ing, vogliamo fare un piccolo sw da rilasciare che, resta in ascolto sul buffer "appunti" e copia il contenuto su un file di testo ogni volta che c'è qualcosa di nuovo. Abbiamo conoscenze di c, c++ e abbiamo usato a livello "grafico" solo le librerie qt. Visto che a quanto pare le qt non abbiano una buona gestione della clpboard, sapete dirmi, visto che partiamo da zero quale linguaggio conviene scegliere ?grazie

Che problemi avete avuto con la classe QClipboard?

Soprattutto non hai specificato il sistema operativo...

starmar
28-04-2012, 15:25
Scusate in effetti ho omesso la cosa piu importante ! vorremmo fare un qualcosa al momento per win e mac... per questo pensavamo alla suite Qt, visto che gira su tutte le piattaforme. Purtorppo non siamo molto esperti, visto che sarebbe il nostro primo progeetto idnividuale, quindi avevamo escluso eventuali .NET.
Tenete presente che quello che devo copiare DALLA clipboard darà solo una stinga di char, no cose multimediali.
Per quanto riguarda Qclipboard, forse ho capito male, ma non mi sembra che permetta di fare quello che vogliamo, visto che devo restare in ascolto di tutte le stringhe copiate in qualsiasi applicazione, mentre il nostro programmino, è attivo. Una specie di drag&drop in stile jdownloader per capirci...

ingframin
28-04-2012, 19:56
Mi sa che per fare questo dovete per forza fare uso delle api del sistema operativo.

tomminno
30-04-2012, 16:31
Per quanto riguarda Qclipboard, forse ho capito male, ma non mi sembra che permetta di fare quello che vogliamo, visto che devo restare in ascolto di tutte le stringhe copiate in qualsiasi applicazione, mentre il nostro programmino, è attivo. Una specie di drag&drop in stile jdownloader per capirci...

Veramente esiste il segnale dataChanged che viene chiamato tutte le volte che i dati presenti nella clipboard cambiano.

Forse il problema in cui siente andati incontro è su OSX (come da documentazione Qt):

On Mac OS X and with Qt version 4.3 or higher, clipboard changes made by other applications will only be detected when the application is activated.

Vari post a giro per la rete riportano come lo "sniffing" della clipboard su OSX sia problematico. Il problema pare essere proprio il meccanismo di funzionamento del sistema operativo che ti notifica del cambiamento della clipboard solo se il programma viene attivato. Pertanto la notifica non arriva per programmi che girano in background come nel vostro caso. Evidentemente per questo sistema operativo dovete trovare una modalità di funzionamento differente che non si basi sulla notifica, esempio polling continuo della clipboard (anche se sono riportati malfunzionamenti anche con questo workaround...).