Newsgroup: it.comp.programmare
Titolo: aggiungere funzioni a programmi già esistenti

Salve,
se tramite un mio programma volessi aggiungere delle funzioni ad un
programma già esistente cosa dovrei fare? Mi spiego meglio: se io
volessi che tutti l'utente installando il mio programma, si ritrovasse
una particolare funzione nel suo, ad es., mailreader e newsreader,
come puo' il mio programma inserirsi tra le voci di menù di outlook
express, pegasus, eudora o anche per Linux Knode, Kmail etc...
(escludo tutti i programmi senza interfaccia grafica)? In pratica
serve una versione del programma per ogni tipo di mailreader o
newsreader? Oppure ne basta uno che debba essere installato nella
directory del programma che l'utente usa?
Grazie

 programma già esistente cosa dovrei fare?
A meno che il programma in questione non metta a disposizione già di per
se' una qualche maniera per aggiungere comandi alla sua interfaccia (come
nel caso di IE), devi:
1) ottenere l'handle della finestra principale del programma in questione
ogni volta che esso viene avviato
2) modificarne il menu tramite apposite funzioni API
3) fare il subclassing della finestra e intercettare tutti i messaggi
WM_COMMAND
quando ti arriva un messaggio WM_COMMAND con l'ID che hai assegnato al tuo
menu item, rispondi appropriatamente dal tuo codice. Ovviamente fai
attenzione a non assegnare al tuo menu item un ID già assegnato ad un
altro item.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 altro item.
E come faccio a conoscere l'ID degli altri items? 
--
Noixe
Inviato da 
www.mynewsgate.net

 E come faccio a conoscere l'ID degli altri items? 
Devi analizzare il programma in questione con un tool tipo Spy++ o
WinSight; attento però, che corri il rischio che in future versioni del
programma gli ID vengano modificati.


 programma gli ID vengano modificati.
 
Ma quindi bisogna che il mio programma preveda già quali newsreader ne 
faranno uso? Cioè non si puo' fare in modo che a prescindere del newsreader 
che l'utente abbia, il mio programma funzioni? In pratica pensavo che fosse 
tutto piu' "automatizzabile".
Grazie


 tutto piu' "automatizzabile".
Certo... Potresti "automatizzare" la fase di discovery degli ID già
utilizzati :-)
Ma in ogni caso guardiamoci bene in faccia, se poni queste domande, non
saresti in ogni caso in grado di realizzare quello che ti proponi :-)
Ti do una metodologia buona per analizzare la fattibilità di una cosa: se è
già stata fatta, allora è realizzabile. Se non è già stata fatta, forse
(raramente) è realizzabile ma molto ma molto probabilmente è ben al di sopra
delle tue capacità :-)
--- bye

 delle tue capacità :-)
Beh, prima o poi qualcuno dovrà fare qualcosa di nuovo no? :)
Cmq, la mia era solo una curiosità...
ciao


 Cmq, la mia era solo una curiosità...
Ti farò un'analogia... Non puoi costruire un motore migliore se non sai come
funziona un motore.
--- bye

 Ti farò un'analogia... Non puoi costruire un motore migliore se non sai come
funziona un motore.
Non si nasce "imparati"... tutto si può apprendere. Quello che manca al
nostro amico è una buona conoscenza delle API spicciole, ma chi ti dice
che a lui manchino le potenzialità per raggiungere i suoi scopi? :-)


 che a lui manchino le potenzialitą per raggiungere i suoi scopi? :-)
Nono... A lui mancano proprio le conoscenze spicciole... Nessuna persona con
un minimo di intuito e di conoscenze potrebbe chiedersi "posso sbisigare in
generici altri programmi, legati fra di loro solo da un tenue fattore
legante (essere news reader), senza sapere niente di come sono fatti
dentro?" (traducibile in "Posso sbisigare in una black-box? No, se no non
sarebbe una black-box... E anche se potessi farlo, cambiando la black box
con un'altra bb equivalente salterebbe tutto)
Il concetto di potenzialitą č tutto un altro discorso. Io non sto dicendo
che fra 3 anni lui non saprą fare cose grandiose. Dico che adesso non sa
neanche di cosa parla.
--- bye

 neanche di cosa parla.
In effetti questo discorso non fa una piega... ^^
