Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Problema con il lancio di un'applicazione all'avvio di Windows
Forum - C# / VB.NET - Problema con il lancio di un'applicazione all'avvio di Windows

Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Segnala al moderatore
Postato alle 14:59
Domenica, 15/01/2017
Ciao a tutti.

Ho scritto un'applicazione che quando si avvia effettua le seguenti operazioni (nell'ordine):

1) Carica (se salvato precedentemente) un file contenente delle credenziali (e notifica ciò in una schermata di Log).
2) Legge dal registro due chiavi contenenti le impostazioni salvate (in particolare il lancio dell'app all'avvio di Windows e l'esecuzione automatica di un Timer all'avvio dell'App). Se non trova le chiavi, scrive le impostazioni di default.
3) Fa quello che deve fare...

Ora, se avvio l'applicazione manualmente, il tutto funziona alla perfezione.
Se scrivo il path dell'exe nella chiave "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", l'applicazione si avvia all'accensione di Windows ma non effettua nessuna delle operazioni di cui sopra! Le credenziali non vengono caricate (il file delle credenziali ESISTE) ed il Timer non si avvia automaticamente (nel registro, l'impostazione è salvata in modo tale che lo debba fare).

Da cosa può dipendere tutto ciò? :noway:
Ripeto: se avvio manualmente l'applicazione, lettura dal registro, lettura del file e avvio automatico del Timer funzionano!

Grazie in anticipo!

EDIT: Non posto del codice per il momento perchè non avrebbe senso: comprende un 5 o 6 file e non saprei quale delle parti descritte postare.

Ultima modifica effettuata da a_butta il 15/01/2017 alle 15:06
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 8:42
Lunedì, 16/01/2017
Una possibile causa il perché non legga i file delle credenziali probabilmente è che non trova
correttamente la directory dove contenuto il file.


Normalmente usiamo:

Codice sorgente - presumibilmente Plain Text

  1. Application.StartupPath() + "\\file.txt";




Prova con Path.GetFullPath(Application.StartupPath() + "\\file.txt");

dovrebbe andare


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Segnala al moderatore
Postato alle 9:22
Martedì, 17/01/2017
Usare path relative è sbagliato? Ho sempre caricato il file semplicemente come "file.txt", sottointendendo che il file si trovi sempre nella stessa cartella dell'eseguibile. Quale sarebbe il problema?

Comunque sia ora provo ad inserire il riferimento assoluto e vedo se funziona. Grazie mille!

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:04
Martedì, 17/01/2017
Dipende dai casi butta,

se è l'utente a lanciare l'applicazione, il percoso relativo va benissimo.
Ma se è un'altro process a lanciare l'applicazione, allora no.
Il percorso relativo non va per nulla bene.

Lo dico con certezza perché mi è capitato per il mio motore di gioco.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Segnala al moderatore
Postato alle 19:51
Martedì, 17/01/2017
Testo quotato

Postato originariamente da Thejuster:

Dipende dai casi butta,

se è l'utente a lanciare l'applicazione, il percoso relativo va benissimo.
Ma se è un'altro process a lanciare l'applicazione, allora no.
Il percorso relativo non va per nulla bene.

Lo dico con certezza perché mi è capitato per il mio motore di gioco.



Bingo Thejuster! Evidentemente il processo di windows che avvia la mia App non poteva leggere il file! Grazie mille sia per la soluzione che per la spiegazione! :D

PM Quote