Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [VB.NET] Argomenti mancanti in nella riga di comando

    Salve a tutti, premetto che sono un autodidatta alle prime armi con VB 2008 e sto cercando di programmare una semplice applicazione che, per vari scopi, carica un file .txt dentro una textbox e fin qui non ho riscontrato nessun problema. Per rendere più completa l'applicazione ho cercato un modo per far si che se l'avvio da un file di testo .txt( facendo doppio click su di esso per intenderci, avendolo impostato come programma predefinito ) l'applicazione si avvii e legga direttamente il file di testo ad cui è stata avviata. Ho trovato tanti esempi su Google ma tutti che usano CommandLine come questi esempi che ho testato

    Dichiarazione della variabile:
    codice:
    Dim CommandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = My.Application.CommandLineArgs
    Ciclo for:
    codice:
    For i As Integer = 0 To CommandLineArgs.Count - 1 MessageBox.Show(CommandLineArgs(i)) Next
    Oppure inserendo un semplice(all'evento form load):
    codice:
    MsgBox (My.Application.CommandLineArgs(1)
    Dove 1 si può cambiare per scegliere quale argomento restituire.

    Il problema è che con il primo blocco di codice non appare nessun message box ( come se non ci fossero argomenti e quindi il ciclo for non venisse eseguito neanche una volta ) e nel secondo caso mi restituisce errore dicendo che "Index non compreso nell'intervallo...".
    Quindi riassumendo la mia domanda è: è possibile che non ci siano argomenti nella CommandLine e come potrei ottenere altrimenti il percorso del file da cui viene avviata l'applicazione ? Scusate per le troppe parole ma volevo essere più preciso possibile.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Questo codice è quello che serve al programma per ottenere il file da trattare ma, per associare il file al tuo eseguibile devi indicarlo a Windows (o modificare il registro).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Grazie per la risposta e se con l' "associare il file al tuo eseguibile " intendi fare in modo che Windows usi il mio .exe per aprire il file allora è già stato fatto, il problema è proprio che non riesco a ottenere il percorso del file da cui è stato lanciato e quindi non riesco poi a caricarlo nelle textbox, se ho frainteso chiedo perdono per la mia ignoranza.

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non c'è molto da dire.
    Qui trovi una routine già pronta per leggere gli argomenti:
    http://msdn.microsoft.com/en-us/libr...(v=vs.90).aspx

    Se questo non ti funziona significa che Windows NON ha associato l'estensione del file che apri con la tua applicazione.


  5. #5
    Usando cioè che ho trovato in quel link all'avvio dell'applicazione mi appare il message box contenente "No input name", quindi presumo che il problema sia nell'associazione dell'estensione al file, ma non saprei proprio da dove cominciare, non ho mai fatto nulla del genere :S
    Grazie ancora per la pazienza.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma non avevi detto che era associato? Come l'hai associato?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Come avevo scritto, avevo fatto in modo che Windows utilizzi il mio .exe per aprire i file .txt ma in maniera "manuale" ( Apri Con -> programma predefinito -> ecc... ) e se è questo ciò che intendete con "Associare l'estensione" allora si, l'ho già fatto altrimenti no non ho fatto nient'altro.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E questo va bene. Quindi, quando fai doppio click su un file con l'estensione che hai scelto, viene avviato il tuo programma?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Esattamente ma mi restituisce il msgbox contenente "No input names" che quindi indica che non trova argomenti e ovviamente non viene letto il file dalla mia applicazione.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Lascia perdere quell'esempio (che prevede l'input con uno switch) ma scrivi semplicemente

    MessageBox.Show (My.Application.CommandLineArgs(0))

    e mi raccomando con indice 0 non 1.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.