Newsgroup: it.comp.programmare.win32
Titolo: e' una cosa che mi son sempre chiesto...

come faccio ad unire dei file di una mia applicazione all'applicazione
stessa...
mi riferisco al fatto che, ad esempio Word, crea dei file .doc con una loro
specifica icona
e al fatto che, anche solo cliccandoci sopra viene automaticamente lanciato
il programma che la fa partire (Word nel caso), e che la visualizza come
appena aperta...
insomma... cosa biosgna sapere per avere questa piccola chicca in un proprio
programma?
grazie 1000, e ciao


Se ho capito bene.
Non devi unire il tuo file al programma devi registrare l'estensione dei tui
dati all'interno del registro di windows
in HKEY_CLASSES_ROOT registri due chiavi
la prima che avra' come come l'estensione del tuo file es ".AAA", e metti
come valore predefinito un nome univoco (in genere si usa un nome legato al
programma) es "AAA.programma".
Registri una seconda chiave che chiami con il valore che hai dato di default
alla prima chiave (ES. AAA.programma)
In questa seconda chiave crei due sottochiavi
* DefaultIcon
   questa contiene come valore di default l'icona da associare al file
   D:\MIEI\MIO.EXE,2
   dice di prendere la seconda icona dall'eseguibile "MIO.EXE"
* Shell\Open\Command
   Per fare in modo da aprire l'eseguibile devi aggiungere poi al valore di
default
   "D:\MIEI\MIO.EXE"  "%1"
--HKET_CLASSES_ROOT
         +
         +------------ .AAA:        AAA.programma
          |
          |
         +----------- Shell
                               |
                               + Command
                                          |
                                         + Open: "c:\programmi\mio.exe" "%1"
Se ti puo' tornare utile ti invio questo esempio in delphi (per funzionare
pero' richiederebbe anche altre funzioni, ma dovrebbe lo stesso dare un idea
migliore di quello che serve)
(********** Registra l'esetensione **********)
    Root      := HKEY_CLASSES_ROOT;
    KeyName   := '.AAA';
    ValueName := ''; // Valore di default
    StrValue  := 'Documeno';
    Root      := HKEY_CLASSES_ROOT;
    KeyName   := 'Documeno';
    ValueName := ''; // Valore di default
    StrValue  := 'Documeno';
(********** Aggiunte al menu **********)
    Root      := HKEY_CLASSES_ROOT;
    KeyName   := 'Documeno\Shell\Open\Command';
    ValueName := ''; // Valore di default
    StrValue  := '"'+percorso+'MIO.EXE" /a "%1"';
    Root      := HKEY_CLASSES_ROOT;
    KeyName   := 'Documeno\Shell\Print\Command';
    ValueName := ''; // Valore di default
    StrValue  := '"'+percorso+'MIO.EXE" /p "%1"';
    Root      := HKEY_CLASSES_ROOT;
    KeyName   := 'Documeno\Shell\PrintTo\Command';
    ValueName := ''; // Valore di default
    StrValue  := '"'+percorso+'MIO.EXE" /s "%1"';
uso i vari "/a", "/p", "/s" per sapere l'operazione che devo svolgere.
(********** Icona di default **********)
    Root      := HKEY_CLASSES_ROOT;
    KeyName   := 'Documeno\DefaultIcon';
    ValueName := ''; // Valore di default
    StrValue  := percorso+'MIO.EXE,2';
(********** File Nuovo **********)
    Root      := HKEY_CLASSES_ROOT;
    KeyName   := '.AAA\ShellNew';
    ValueName := 'NullFile';
    StrValue  := 'Documeno';
  end;
--
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
Per rispondere in privato rimuovere 1975 dall'indirizzo
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

compliementi per la chiarezza...
ora vado a provare...

   dice di prendere la seconda icona dall'eseguibile "MIO.EXE"
se clicco sul file, il programma me lo lancia, ma non mi mostra l'icona...
io una ce l'ho pronta nelle risorse, ho provato a cambiare l'header e a
metttre valore 2, ma pare non considerarlo...


Ho dimenticato di dirti che il valore "2" era l'indice dell'icona, e'
possibile che tu debba usare 0 oppure 1 (se non erro la prima icona dovrebbe
essere di indice 0).
purtroppo non riesco a trovare dove avevo preso le informazioni.


purtroppo non riesco a trovare dove avevo preso le informazioni.
Sì l'indice parte da zero
--
Marco Barisione (ICQ 84277092)

si, con ExtractIcon si possono vedere le icone di qualsiasi file...
pero' quando modifico l'icona, continuo stranamente a vedere sempre la prima