Avviare Applicazione Tramite Parametro

venerdì 29 giugno 2012 - 10.58
Tag Elenco Tags  C#

HardTekCrash Profilo | Newbie

Ciao Raga

Sto sviluppando un'applicazione formata da due exe:
1)è un launcher
2)Applicazione vera e propria.

Ora, io vorrei che l'utente debba per forza avviare prima il launcher e in caso avvii direttamente l'applicazione senza passare dal launcher, questo riceve un messaggio di errore (o magari avvii automaticamente il Launcher).
Per far ciò avevo pensato a fare un check sul parametro passato all'avvio dell'Applicazione, mi spiego meglio...
Se l'applicazione viene avviata con il parametro "-run" (per esempio) questa si avvia normalmente, quindi dal Launcher quando si tenterà di avviare poi l'applicazione principale, questo avvierà l'exe con il parametro "-run" così che l'applicazione si avvii normalmente, in caso contrario se non viene passato nessun parametro, all'avvio dell'aplicazione l'utente riceverà un messaggio di errore e l'applicazzione verrà chiusa, oppure come dicevo prima, l'applicazione avvii automaticamente il launcher.
Io stavo guardando la funzione Enviornment.GetCommandLineArgs e avevo provato a buttare giu questo codice:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Però ovviamente non funziona, non mi mostra nessuno dei due messagebox.
Avete qualche idea su come risolvere questa situazione??
Scusate se non mi sono spiegato molto bene, in caso vogliate maggiori spiegazioni a riguardo chiedete pure.
Grazie mille raga, siete sempre molto gentili e disponibili!
Scusate se ogni volta caccio domande strane hehehehe
Buona giornata e soprattutto buon week-end

nico839 Profilo | Senior Member

ciao...
io in vb.net uso My.Application.CommandLineArgs(index)

ad esempio
dim param as string = My.Application.CommandLineArgs(0)

che in c# dovrebbe essere :

string param = My.Application.CommandLineArgs(0);
Ciao.
Nicolas

http://perledinico.blogspot.com

HardTekCrash Profilo | Newbie

Ciao ti ringrazio per la risposta.
In teoria il comando è quello che ho postato, ovvero: Enviornment.GetCommandLineArgs
Però non riesco a capire come fare a controllare all'avvio dell'applicazione, se l'applicazione è stata avviata tramite un determinato parametro o meno.
Tu come fai in VB.Net?
Preciso che sto parlando di Application Form e non Console.
Grazie

nico839 Profilo | Senior Member

ciao, si scusa quello era per una applicazione console, per una app form invece io creo un modulo ad esempio Moduel1.vb, al cui interno c'è una sub Main che legge la riga di comando

Sub main(ByVal args() As String) Dim ArgVal(UBound(args)) As String Dim i As Integer ' Leggo gli eventuali parametri passati da riga di comando For i = 0 To UBound(args) ArgVal(i) = args(i) Next Application.Run(Form1) End Sub

poi nelle proprietà del progetto, imposto come oggetto di avvio la Sub main.
Ciao.
Nicolas

http://perledinico.blogspot.com

HardTekCrash Profilo | Newbie

Grazie mille Nicolas per il tuo consiglio ;-)
Comunque ho risolto, anche se forse in un modo un po "rozzo" però funziona, lo posto qui così che magari può servire a qualche altro utente ;-)

string[] parametro = Environment.GetCommandLineArgs(); if (param[1] == "/a") { //FUNZIONE DA INSERIRE SE IL PARAMETRO PASSATO è GIUSTO } else { //FUNZIONE DA INSERIRE SE IL PARAMETRO PASSATO è ERRATO }

Grazie ancora per l'aiuto, sceglierò la tua risposta come giusta.
Grazie e buon week-end ;-)

nico839 Profilo | Senior Member

prego!buon week end anche a te!
Ciao.
Nicolas

http://perledinico.blogspot.com
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5