PDA

View Full Version : Associazione tra estensioni e programmi. HELP!


cypher76
14-07-2004, 10:10
Ciao a tutti.
Sto scrivendo un programmino in C++ (compilato con Borland FreeCommandLineTools) che restituisce il path del programma associato da Windows per l'apertura di un file con una determinata estensione.
Ho pensato subito alla tabella MIME e a Explorer.
L'unica cosa che sono riuscito a fare, per ora, è ottenere il path del programma associato per i tipi di file trattati da Office (xls, doc, mdb..) utilizzando le seguenti API:
- GetClassFileOrMime()
- RegOpenKey() e RegQueryValue() leggendo il CLSID restituitomi dalla funzione precedente.
Se però tento di ottenere, tramite GetClassFileOrMime(), il CLSID per estensioni come ".txt" o tante altre la funzione mi restituisce un errore che indica che tale tipo di file non risulta registrato.
Fra l'altro, anche per i tipi di file Office, mi viene restituito un path in formato "vecchio" DOS che riporta cioè il carattere ~ dopo l'ottavo carattere di un nome di cartella.
:mc:

Conoscete per caso un metodo migliore per ottenere il path del programma associato ad una estensione? Guardando le "Opzioni Cartella"->"Tipi di File" da esplora risorse ho notato che ci sono informazioni dettagliate per ogni associazione, addirittura legate alla singola operazione (apri, nuovo, apri in sola lettura...).
Come si può fare con un programma ad ottenere queste informazioni?
Tenete presente che il programma deve essere scritto in C/C++ e generare un exe "nativo", quindi senza l'uso di .Net FrameWork etc..

Grazie anticipate a tutti!:D