Oppure

Loading
02/02/15 22:00
pbe
Però se per esempio alla fine della funzione Associate() metto:
MessageBox.Show(AppAssoc.ToString());

Il testo stampato è: "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bee".

Ho notato che è il valore assegnato all'inizio della funzione e che non subisce cambiamenti nemmeno dopo la riga di codice:
AppAssoc.CreateSubKey("UserChoice").SetValue("Progid","Software\Classes\Applications\Text.exe");


Analogamente anche per AppReg non avviene nessun cambiamento.

E' questo l'errore?
Ultima modifica effettuata da pbe 02/02/15 22:01
aaa
02/02/15 22:04
TheDarkJuster
Intanto il registro di sistema è uno solo. E poi che ne diresti di leggere un thread iniziato da qualcuno che volteva fare ESATTAMENTE ciò che volevi? social.msdn.microsoft.com/Forums/vstudio/en-US/630ed1d9-73f1-4cc0-bc84-04f29cffc13b/… giusto per non fare un lavoro di traduzione senza guardare il testo in inglese............ Quando lo avrai letto potremo discutere. Comunque vorrei sapere come fai a capire che la associazione non funziona così come la hai fatta tu. Perchè "non funziona" non è assolutamente abbastanza per capire dove è il problema, in quanto il non funziona può teoricamente essere dovuto a migliaia di motivi diversi....
aaa
02/02/15 22:13
pbe
Da quello che ho capito al posto di HKEY_CURRENT_USER devo usare HKEY_CLASSES_ROOT.
Ultima modifica effettuata da pbe 02/02/15 22:19
aaa
02/02/15 22:18
pbe
Io ho detto che il programma "non funzionava" in quanto ho usato un codice apparentemente giusto e che però all'esecuzione non dava i risultati desiderati.

Ho letto il tuo link e ho capito quali sono i passaggi da fare, ma sapere come applicarli è diverso.
Ultima modifica effettuata da pbe 02/02/15 22:25
aaa
02/02/15 22:52
Roby94
pbe, cerca di leggere e comprendere quello che ti viene scritto, il tuo codice funziona e su questo non ci piove, usi solo funzioni del framework che si occupano di scrivere sul registro. Il problema sta in quello che scrivi sul registro!
Il registro Windows è una ramificazione di chiavi, con 5 chiavi di base tra cui HKEY_CLASSES_ROOT, tu dovrai andare a scrivere in questa chiave; Registry.CurrentUser quindi è un istruzione sbagliata perché ti porta a puntare alla chiave HKEY_CURRENT_USER.
Le path di cui si è parlato all'inizio sono quelle che ti devono interessare, parti creando le chiavi che ti servono direttamente con il tool di sistema chiamato regedit, verifichi che l'associazione sia avvenuta, una volta che ci sarai riuscito potrai progettare la tua applicazione per svolgere questo compito in automatico.
aaa
03/02/15 6:05
pbe
Ok, ora provo ad informarmi su COME fare quello che hai detto.
Se mi aiutaste con qualche suggerimento ve ne sarai grato.
aaa
03/02/15 8:10
Thejuster
La mia miglior soluzione e sempre quella di usare un installer.
Ce ne sono molto gratuiti con funzioni che associano estensioni ai file, icone ecc. ecc.

Almeno io lavoro in questo modo.

Basta anche una sola virgola sbagliata per non funzionare.

Ho trovato questa discussione
prova se funziona

stackoverflow.com/questions/2681878/…


mire.forumfree.it/ - Mire Engine
C# UI Designer
03/02/15 8:39
pbe
Per l'installer devo creare un progetto WiX? Poi come associo estensione al programma?

Però ci dobbiamo decidere, o parliamo dell'installer o del mio file Program.cs, non entrambi, sennò facciamo solo casino e non arriviamo ad una soluzione.
Ultima modifica effettuata da pbe 03/02/15 8:53
aaa