T103
Messages postés177Date d'inscriptionlundi 11 août 2003StatutMembreDernière intervention21 avril 2010
-
23 mars 2007 à 17:42
T103
Messages postés177Date d'inscriptionlundi 11 août 2003StatutMembreDernière intervention21 avril 2010
-
23 mars 2007 à 20:34
Voila j'ai développé un programme sur mon pc, je l'ai ensuite publié pour la tester sur le pc de mon frère et de ma mère mais helas, quand je lance l'application j'ai ce message d'erreur qui apparait juste avant :
************** Texte de l'exception **************
System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
à GestionProcess.Form1.initRegistre()
à GestionProcess.Form1.Form1_Load(Object sender, EventArgs e)
à System.Windows.Forms.Form.OnLoad(EventArgs e)
à System.Windows.Forms.Form.OnCreateControl()
à System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
à System.Windows.Forms.Control.CreateControl()
à System.Windows.Forms.Control.WmShowWindow(Message& m)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ScrollableControl.WndProc(Message& m)
à System.Windows.Forms.ContainerControl.WndProc(Message& m)
à System.Windows.Forms.Form.WmShowWindow(Message& m)
à System.Windows.Forms.Form.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Comment se fait il que j'ai cette erreur sachant que sur mon pc sa marche ??
string val = cle.GetValue("Enable").ToString();
switch (val)
{
case "Y":
rbtnActDefrag.Checked = true;
break;
case "N":
rdbtnDesactDefrag.Checked = true;
break;
}
//creer la clé si existe pas
lblCachActuIco.Text = "Cache actuel " + cleIconeDll.GetValue("Max Cached Icons").ToString() + " Ko";
nUDCacheIco.Value = Int32.Parse(cleIconeDll.GetValue("Max Cached Icons").ToString());
//creer la clé si existe pas
if (Int32.Parse(cleIconeDll.GetValue("AlwaysUnloadDll").ToString()) == 1)
rdbtnDechDll.Checked = true;
else
rdbtnChargDll.Checked = false;
//creer la clé si existe pas
lblTimeout.Text = "Valeur actuel : " + cleTimeout.GetValue("HungAppTimeOut").ToString() + " ms";
nUDTimeout.Value = Int32.Parse(cleTimeout.GetValue("HungAppTimeOut").ToString());
PiterTheWood
Messages postés48Date d'inscriptionsamedi 19 avril 2003StatutMembreDernière intervention23 mars 20071 23 mars 2007 à 19:25
Je crois que le problème c'est que les clefs que tu essayes de lire sur l'ordinateur de ton frère ne sont pas créer mais que sur ton ordinateur ils le sont.
Je te conseille d'effectuer une vérification si les clefs existe,
Utilise la fonction GetValueNames() qui retroune un tableau de chaîne.
ex: string[] tblClefDisponible = cleIconeDll.GetValueNames();
Et lorsque tu effectues une lecture dans à l'aide de la fonction GetValue(), transmet lui une valeur par défaut.
ex: object objClef = cleIconeDll.GetValue("AlwaysUnloadDll", 0);
int ValeurClef = Convert.ToInt32(obtClef);
if (ValeurClef != 0)
{
...
}
Et tu pourrais (si tu désire) effectuer une réorganisation du code
Par exemple :
// Clef "Software\\Microsoft\\Dfrg\\BootOptimizeFunction"
// vérification de l'existance des clefs
// obtenir la valeur
// traiter le résultat
Dernier petit conseille c'est d'utiliser des try catch pour s'asssurer que l'opération s'effectue sans problème
ex:
try
{
object objClef = cleIconeDll.GetValue("AlwaysUnloadDll", 0);
int ValeurClef = Convert.ToInt32(obtClef);
if (ValeurClef != 0)
{
...
}
}
catch (Exception ex)
{
// Opération à faire en cas d'erreur
...
}