Passaggio di parametri all'eseguibile

martedì 18 marzo 2008 - 08.50

Spartacus Profilo | Newbie

Ciao a tutti e perdonate la mia ignoranza ma ho un problema anche se penso che sia abbastanza da niubo.
Ho creato un mio programma che salva i file con una sua estensione "personale" ho creato il file di installazione apposito con Vs 2005 e con l'editor dei tipi di file ho associato le estensioni con l'eseguibile del mio programma. come azione ho impostato open come valore della proprietà verb. quando faccio click sul file mi si apre il programma ma non mi apre il file desiderato, qualcuno mi sa dire come posso intercettare il parametro che mi viene passato dal sistema operativo.
Grazie infinite per l'aiuto

Cristian

freeteo Profilo | Guru

ciao,
per recuperare i parametri passati all'applicazione ti basta modificare l'EntryPoint dell'applicazione, ovvero nel file "Program.cs" il metodoto "Main", specificando di ricevere dei parametri (string[] args) in questo modo:

static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); //--- per testare se viene passato if(args.Length > 0) MessageBox.Show(args[0]); Application.Run(new Form1()); } }


questo è sicuramente funzionante se fai "Esegui" e gli passi il parametro all'exe da riga di comando...da quello che hai fatto tu verifica se si comporta uguale...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Spartacus Profilo | Newbie

ciao, innanzitutto grazie per la celere risposta. in questo modo mi apre si il programma quando faccio doppio click sul file ma non mi visualizza il file specifico
Forse devo impostare in qualche modo la proprietà Arguments che di default è %1?
se si in che modo va impostata per dirgli che è il nome del file che mi deve passare

Cristian

freeteo Profilo | Guru

ciao,
ma hai provato il codice che ti ho postato? dovrebbe venirti fuori una MessageBox con il primo parametro passato...quindi dovresti capire gia' da li la forma con cui vienen passato e di conseguenza capire se è passato male da Windows...
Oppure non ti appare la Messagebox ?

Questa cosa del messaggio è proprio per fare un test iniziale per vedere cosa riceve il programma a runtime senza debug, da li poi decidere dove intervenire...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Spartacus Profilo | Newbie

ciao freeteo e grazie per l'aiuto, alla fine sono riuscito a capire che cosa non andava.
Sembra paradossale, ma era la ram del pc sul quale sviluppo che era danneggiata. Praticamente VS mi diceva che la compilazione era terminata ma in realtà non mi aghgirnava il compilato. Sostituita la RAM tutto ok.
Che bug incredibile però.
Grazie ancora per il tuo aiuto

Cristian

freeteo Profilo | Guru

>Sembra paradossale, ma era la ram del pc sul quale sviluppo che
>era danneggiata. Praticamente VS mi diceva che la compilazione
>era terminata ma in realtà non mi aghgirnava il compilato. Sostituita
>la RAM tutto ok.
>Che bug incredibile però.
caspita...incredibile!

>Grazie ancora per il tuo aiuto
di niente, siamo qui per questo.



ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5