Gygabyte017 Posted July 18, 2007 Report Share Posted July 18, 2007 (edited) Ho scritto un nuovo modulo per scrivere del testo nella clipboard del cellulare, che sarà accessibile da tutte le altre applicazioni... L'uso è semplicissimo: clipboard.write(textstring); Attenzione: textstring deve essere inferiore a 256 caratteri, e non deve contenere caratteri unicode! Solo gli ascii sono permessi (o meglio, con gli ascii funziona sicuramente, con caratteri unicode non so che potrebbe succedere.... al massimo provateci! ) Testato sul mio 6630 con MShell 2.0 Provatelo e fatemi sapere se fuziona... Se tutto va bene, creo anche la funzione clipboard.read ma non so se è utile.... Installazione: rinominate il file in Clipboard.mm (il forum non mi fa postare file con questa estenzione) e copiatelo in "E:\documents\mshell" Ciao! ClipBoard.txt Edited July 18, 2007 by Gygabyte017 Link to comment Share on other sites More sharing options...
masmil1988 Posted July 19, 2007 Report Share Posted July 19, 2007 Grande Gyga!!! Non è poi un processo difficilissimo!!! Utile Link to comment Share on other sites More sharing options...
Giovilomby Posted July 19, 2007 Report Share Posted July 19, 2007 cavoli!.....tempo fa avevo fatto la stessa richiesta x python e nessuno mi aveva saputo risp.... Link to comment Share on other sites More sharing options...
Gygabyte017 Posted July 20, 2007 Author Report Share Posted July 20, 2007 Grande Gyga!!!Non è poi un processo difficilissimo!!! Utile Grazie! E' bastato studiare il file format del file in questione.... alla fine non era complicato... cavoli!.....tempo fa avevo fatto la stessa richiesta x python e nessuno mi aveva saputo risp.... Prova a fare un porting in python tanto saranno una cinquantina di righe di codice..... Link to comment Share on other sites More sharing options...
dokkis Posted July 20, 2007 Report Share Posted July 20, 2007 bravo gyga... era un pò che nn ti facevi sentire sul forum eh? xD ma le specifiche del file della clipboard le hai dedotte tu studiandotelo o hai trovato qlk info da qlk parte? ps: vi saluto! stasera parto e torno il 28! ciaoooooo!!! Link to comment Share on other sites More sharing options...
giuppe92 Posted July 20, 2007 Report Share Posted July 20, 2007 Ottimo Gygabyte! Sarebbe bello averlo anche in python! Link to comment Share on other sites More sharing options...
Giovilomby Posted July 20, 2007 Report Share Posted July 20, 2007 Grazie! E' bastato studiare il file format del file in questione.... alla fine non era complicato...Prova a fare un porting in python tanto saranno una cinquantina di righe di codice..... ...non ho idea....mi spiegheresti?Grazie! Link to comment Share on other sites More sharing options...
Gygabyte017 Posted July 20, 2007 Author Report Share Posted July 20, 2007 bravo gyga...era un pò che nn ti facevi sentire sul forum eh? xD ma le specifiche del file della clipboard le hai dedotte tu studiandotelo o hai trovato qlk info da qlk parte? ps: vi saluto! stasera parto e torno il 28! ciaoooooo!!! Si perchè l'esame di maturità m'ha distrutto psicologicamente Cmq no me lo sono studiato per conto mio, diciamo che ho copiato 6-7 volte il file (con contenuti diversi ovviamente, ogni volta copiavo un testo nuovo), e poi con un hex editor ho analizzato somiglianze&differenze e ci sono riuscito... mi sono un pò impicciato con i byte che contenevano la lunghezza del testo (ce ne sono 2 diversi, mi sfugge il motivo?!?!?) perchè erano rovesciati, cioè da leggere da destra a sinistra (mi pare codifica big endian può essere?) Ottimo Gygabyte! Sarebbe bello averlo anche in python! ...non ho idea....mi spiegheresti?Grazie! Diciamo che chi 1)conosce mshell 2)conosce python, può tentare di fare il "porting" ovvero trascrivere linea per linea il codice mshell in codice python, adattandolo ovviamente al nuovo linguaggio.... Se trovo tempo lo faccio io... Link to comment Share on other sites More sharing options...
Giovilomby Posted July 21, 2007 Report Share Posted July 21, 2007 Diciamo che chi 1)conosce mshell 2)conosce python, può tentare di fare il "porting" ovvero trascrivere linea per linea il codice mshell in codice python, adattandolo ovviamente al nuovo linguaggio....Se trovo tempo lo faccio io... se combini sarebbe ottimo x tutti i pythoniani!... Link to comment Share on other sites More sharing options...
masmil1988 Posted July 24, 2007 Report Share Posted July 24, 2007 (edited) Gyga te la prendi se ho continuato il modulo Clipboard? Ho creato pure la funzione read()... per i pythoniani, non penso sia un problema tradurre il codice, credo sia abbastanza semplice interpretare il codice di mShell e riportarlo in python (come anche il contrario)... Edited July 24, 2007 by masmil1988 Link to comment Share on other sites More sharing options...
Gygabyte017 Posted July 24, 2007 Author Report Share Posted July 24, 2007 Gyga te la prendi se ho continuato il modulo Clipboard?Ho creato pure la funzione read()... per i pythoniani, non penso sia un problema tradurre il codice, credo sia abbastanza semplice interpretare il codice di mShell e riportarlo in python (come anche il contrario)... Si mi sono offeso!! Ci dovevo mettere il copyright! No dai scherzo m'hai anticipato perchè mi ci sarei messo io, ma se l'hai già fatto meglio, postalo! Cmq ciò significa che il codice che ho scritto era ben comprensibile! Senti ma visto che ci sei, tu che ne pensi dell'Unicode? Hai visto i due campi di lunghezza del testo? Il primo indica il numero di bytes+25, e il secondo il numero di caratteri. Ora, presupponendo di togliere il 25 al primo, è ovvio che i due numeri sono uguali se le lettere sono ASCII (<256), ma se provi a copiare un carattere unicode, vedrai che ci sono sorprese. Ad esempio copiandone uno solo, vedi che il numero di caratteri resta sempre 1, ma il numero di bytes diventa 3+25. Andando a controllare quali sono questi 3 bytes, scopri che gli ultimi due sono l'effettivo valore in unicode, ma il primo non capisco a che serve! Modificandolo, corrompe il file e non si può + incollare la clipboard.... Per esempio, se scrivi (in mshell) char(0x3E8), ti fai stampare il carattere, lo copi e vai a controllare l'hex della clipboard, noterai che c'è nel campo dei dati 0E 03 E8. A che serve lo 0E? Boh?!? .... Con altri caratteri invece ne scrive solo due, che (sembra) non hanno niente a che fare con l'hex originale... Hai qualche idea?!?!?!?!?! Link to comment Share on other sites More sharing options...
masmil1988 Posted July 24, 2007 Report Share Posted July 24, 2007 (edited) Uhm... Non ho purtroppo guardato il codice, ho studiato un po' quel file in un momento che non avevo niente da fare e ho aggiunto la funzione read(9, asp che posto il file A che servono la variabile reverse, la funzione WriteBytes, puoi spiegarmelo in poche parole? Per evitare di guardare il codice. Credo comunque di non aver studiato a fondo il file, perchè la storia dei byte non l'ho attenzionata. La funzione read funziona in modo semplicissimo, apre il file, e prende tutto il testo del file esclusi i primi 24 byte e gli ultimi 10 byte. L'unico problema l'ha dato il carattere "a capo" che non sempre è registrato con la stessa sequenza di byte, viene fatto allora il controllo e quando viene identificata una determinata sequenza viene sostituita con i byte 13, 10 (in decimale). Allegato aggiornato alle 20:50 del 24/07/07 ClipBoard.txt Edited July 24, 2007 by masmil1988 Link to comment Share on other sites More sharing options...
giuppe92 Posted July 24, 2007 Report Share Posted July 24, 2007 Bene, se fosse come dice masmill sarebbe fantestico se lo faceste anche in pythonnn!!!!! Link to comment Share on other sites More sharing options...
Gygabyte017 Posted July 24, 2007 Author Report Share Posted July 24, 2007 (edited) A che servono la variabile reverse, la funzione WriteBytes, puoi spiegarmelo in poche parole? Per evitare di guardare il codice. Allora WriteBytes scrive data sul file file, ribaltando la stringa se reverse=true) Mi spiego meglio: file è l'oggetto restituito dalle funzioni IO, tipo file.create, ed è il file dove andrà a scrivere data rappresenta che cosa scrivere sul file. Può essere o un array di bytes (tipo [0x00,0x01,0x02,...] vedi per esempio le costanti Header e Footer), oppure una stringa esadecimale (tipo "000102") che la funzione poi converte in array di bytes. E poi byte per byte, scrive l'array su file. Se reverse è true, allora scrive l'array rovesciato, cioè inizia dalla fine e finisce all'inizio. Tutto qua. Esempi pratici: f=io.create("..."); stringa = "123456FF"; arr = [0x12, 0x34, 0x56, 0xFF]; WriteBytes(f, stringa) >> scrive 12 34 56 FF WriteBytes(f, stringa, true) >> scrive FF 56 34 12 WriteBytes(f, arr) >> scrive 12 34 56 FF WriteBytes(f, arr, true) >> scrive FF 56 34 12 Credo comunque di non aver studiato a fondo il file, perchè la storia dei byte non l'ho attenzionata.La funzione read funziona in modo semplicissimo, apre il file, e prende tutto il testo del file esclusi i primi 24 byte e gli ultimi 10 byte. L'unico problema l'ha dato il carattere "a capo" che non sempre è registrato con la stessa sequenza di byte, viene fatto allora il controllo e quando viene identificata una determinata sequenza viene sostituita con i byte 13, 10 (in decimale). Non ho capito il discorso dell'a capo... cioè viene codificato con bytes diversi?! Edit: spè forse ho capito. Praticamente l'a capo a seconda dell'applicazione che scrive sulla clip, può essere codificato da [14,32,40], [28,64,168] o [168] ?? Ma come li hai trovati?? Io non c'avevo pensato all'a capo in effetti...... ce ne potrebbero essere anche altri?!? Edit2: ma non esiste un qualche doc che spieghi la struttura ufficiale di questo file?!?!? Edited July 24, 2007 by Gygabyte017 Link to comment Share on other sites More sharing options...
masmil1988 Posted July 24, 2007 Report Share Posted July 24, 2007 (edited) Si, esatto, gli "a capo" sono identificati da questi 3... Li ho visti perchè sapevo dove si trovavano e ho visto che li mette in questi 3 modi diversi (sinceramente non ne capisco il motivo né il perchè utilizzi l'uno o l'altro). Ho provato anche con testi lunghi e sembra che funzioni. Forse però esiste un'ulteriore codifica per l'"a capo" perchè mi da ancora un problema... Controllo subito... risolto, mancava il controllo per [14,32,41] ho riallegato il file corretto Edited July 24, 2007 by masmil1988 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now