Lancio un mio piccolo .exe tramite 2 collegamenti sul Desktop: uno normale ed uno a cui ho aggiunto nella riga di comando: "C:\Percorso\MiaApp.exe" , autorun... lo scopo è di eseguire nel secondo caso la Sub "Esegui()" automaticamente e chiudere il programma, senza premere i relativi pulsanti del primo caso.
In Form_Load (praticamente le prime due righe di codice):
codice:
MessageBox.Show(Environment.CommandLine)
MessageBox.Show("prova - " & My.Settings.M3 & " - " & My.Settings.Path3)
In Form_Shown:
codice:
If Environment.CommandLine.Contains("autorun") Then
MessageBox.Show("true - " & My.Settings.M3 & " - " & My.Settings.Path3)
Esegui()
Me.Close()
Else
MessageBox.Show("false - " & My.Settings.M3 & " - " & My.Settings.Path3)
End If
Le stranezze:
1) Nella CommandLine non compare solo "autorun" ma compare anche l' intero percorso del file (infatti sono obbligato a mettere un "Contains").. ma è la cosa meno importante.
2) Se lancio con "autorun" la prima MessageBox appare senza pulsante di Ok... se premo dove si dovrebbe trovare il pulsante si chiude egualmente. Se inverto le due righe nulla cambia: nella prima MessBox il pulsante di Ok non compare... e qui c' è già qualcosa che non va.
La assurdità:
Se lancio senza "autorun" i Settings sono correttamente rilevati.
Se lancio con "autorun" My.Settings.Path3 viene rilevata = Nothing
per cui il programma non funziona. Viene portata a Nothing da subito: gia in Form_Load è nulla. My.Settings.M3 viene invece tranquillamente rilevato in entrambi i casi, cosa ancor più inspiegabile: Sia M3 che Path3 sono String.
Tuttavia il My.Settings.Path3 c' è, nel senso che se subito dopo rilancio tramite Link senza "autorun" viene correttamente rilevata.
Per quale arcano motivo se aggiungo "autorun" un Settings non viene rilevato?? Ed in seconda instanza... perché uno si ed uno no? Il codice è praticamente tutto lì (La Sub Esegui è ininfluente).