11/06/10 17:58
genni_96
Ciao sapete come associare i file con una certa estensione ad un mio programma??
Mi spiego meglio:
ho scritto un programma con le API Window che modifica i file txt, simile al blocco notes di window. Il programma funziona benissimo, i file possono essere aperti da un menu in cui c'è la voce Apri. Il problema e che vorrei associare i file txt al mio programma in modo che quando ci clicco sopra vengono aperti direttamente con il mio programma invece del blocco notes di Windows.
Sapreste aiutarmi??
Ultima modifica effettuata da genni_96 11/06/10 17:59
aaa
11/06/10 19:11
HeDo
guarda che non funziona così, oppure non ho capito.
quando il tuo programma è associato ad una estensione (ad esempio .txt), e viene aperto un file di quel tipo, il sistema operativo richiama l'eseguibile associato con una riga di comando contenente il/i file(s) su cui è stato fatto partire:
programma.exe file.txt [file2.txt] ...
per aggiungere programmaticamente un'associazione di estensione devi guardarti le chiavi di registro coinvolte (trovi valanghe di materiale su internet)
invece se vuoi aggiungere un'associazione non da codice devi seguire la guida che ti ho linkato.
aaa
11/06/10 19:28
genni_96
Ho seguito la tua guida(anche se lo sapevo gia), ma quando apro un file associato al mio prgramma non viene letto automaticamente, come se aprissi normalmente il programma.
Faccio un esempio di come avrei intenzione di risolvere(se possibile)
LRESULT CALLBACK WProc(HWND hwnd,UINT msg,WPARAm w,LPARAM l)
{
switch(msg)
{
case WM_COMMAND:
if(LOWORD(w)==ID_APRI) //ID del comando apri nel menu
{
//Apre il file e mostra il contenuto
}
break;
//questo è il codice da aggiungere
case //messagio che arriva quando viene fatto doppio click sul file
//associato (se esiste)
//Apre il file e mostra il contenuto
break;
}
}
Ultima modifica effettuata da genni_96 11/06/10 19:29
aaa
11/06/10 19:40
genni_96
Come faccio a capire qual'è il file aperto leggendo il parametro pCmdLine??
aaa
11/06/10 19:43
genni_96
Grazie,ho capito come fare, il parametro cmdLine contiene il path del file quando lo apro.
Grazie!
aaa