J'ai un problème avec le chargement des paramètres dans mon programme. Après un redémarrage du système, le programme démarre automatiquement, mais ne charge pas les paramètres comme il se doit. Il les charge cependant quand j'exécute l'application manuellement.C# charger les paramètres du programme après le redémarrage de l'ordinateur
Démarrage du programme avec le système
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkApp.SetValue("Monitor", BaseDir+"\\Monitor.exe");
classe responsable des paramètres de chargement
class MySettings : AppSettings<MySettings>
{
public string filePath = null;
public string interval = "0";
}
public class AppSettings<T> where T : new()
{
private const string DEFAULT_FILENAME = "settings.jsn";
public void Save(string fileName = DEFAULT_FILENAME)
{
File.WriteAllText(fileName, (new JavaScriptSerializer()).Serialize(this));
}
public static void Save(T pSettings, string fileName = DEFAULT_FILENAME)
{
File.WriteAllText(fileName, (new JavaScriptSerializer()).Serialize(pSettings));
}
public static T Load(string fileName = DEFAULT_FILENAME)
{
T t = new T();
if (File.Exists(fileName))
t = (new JavaScriptSerializer()).Deserialize<T>(File.ReadAllText(fileName));
return t;
}
}
J'utilise le code suivant pour charger mes paramètres
MySettings settings = MySettings.Load();
string inter = settings.interval;
Pourquoi la les paramètres ne sont chargés qu'après le redémarrage de l'application?
1. Le programme commencera avec le système, ne charge pas les paramètres du fichier. 2. Désactiver les applications 3. Activer les applications, les paramètres sont chargés, ne sais pas pourquoi dans la première étape ne se charge pas. – lukassz
Essayez d'utiliser le chemin absolu vers le fichier (par exemple 'DEFAULT_FILENAME = @" C: \ myApplication \ settings.jsn "') au lieu d'utiliser uniquement un nom de fichier. Peut-être qu'un répertoire de travail diffère lorsque l'application est exécutée par le système et que le fichier est introuvable. S'il vous plaît laissez-moi savoir si cela résout votre problème. –
J'ai essayé de le faire: 'private const chaîne DEFAULT_FILENAME = basedir +" \\ settings.json ";' mais obtient une erreur 'La valeur par défaut du paramètre 'fileName' doit être une constante de compilation'' – lukassz