Bonjour,
malgré mon pessimisme, j'ai essayer de créer une petite applet qui permet de changer une valeur dans le registre Windows.
Mon problème est soit un message d'erreur en déboguant le code soit mon code n'est pas compilé et ne se lance donc pas .
Je vous demande de l'aide, merci .
Voici mon code :
En déboguant j'ai un message d'erreur à cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.Win32; namespace ColorChanger { public partial class Form1 : Form { public Form1() { InitializeComponent(); RegistryKey cle = Registry.Users.OpenSubKey(@"HKEY_CURRENT_USER\Control Panel\Colors", false); string back = cle.GetValue("Window").ToString(); label3.Text = back; string text = cle.GetValue("TitleText").ToString(); label4.Text = text; string intext = cle.GetValue("InactiveTitle").ToString(); label6.Text = intext; } private void button1_Click(object sender, EventArgs e) { ColorDialog ColorDialog = new ColorDialog(); // Keeps the user from selecting a custom color. ColorDialog.AllowFullOpen = false; // Sets the initial color select to the current text color. ColorDialog.Color = button1.ForeColor; // Update the text box color if the user clicks OK if (ColorDialog.ShowDialog() == DialogResult.OK) { button1.ForeColor = ColorDialog.Color; label3.Text = ColorDialog.Color.R +" "+ ColorDialog.Color.G +" "+ ColorDialog.Color.B.ToString(); } } private void button2_Click(object sender, EventArgs e) { ColorDialog ColorDialog = new ColorDialog(); ColorDialog.Color = button2.ForeColor; if (ColorDialog.ShowDialog() == DialogResult.OK) { button2.ForeColor = ColorDialog.Color; label4.Text = ColorDialog.Color.R + " " + ColorDialog.Color.G + " " + ColorDialog.Color.B.ToString(); } } private void button4_Click(object sender, EventArgs e) { ColorDialog ColorDialog = new ColorDialog(); ColorDialog.Color = button4.ForeColor; if (ColorDialog.ShowDialog() == DialogResult.OK) { button4.ForeColor = ColorDialog.Color; label6.Text = ColorDialog.Color.R + " " + ColorDialog.Color.G + " " + ColorDialog.Color.B.ToString(); } } private void button3_Click(object sender, EventArgs e) { RegistryKey cle = Registry.Users.OpenSubKey(@"HKEY_CURRENT_USER\Control Panel\Colors", true); cle.SetValue("Window", label3.Text); cle.SetValue("TitleText", label4.Text); cle.SetValue("InactiveTitle", label6.Text); cle.Close(); } } }
Avec comme message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part string back = cle.GetValue("Window").ToString();
L'exception System.NullReferenceException n'a pas été gérée
Message=La référence d'objet n'est pas définie à une instance d'un objet.
Source=ColorChanger 0.1
StackTrace:
à ColorChanger.Form1..ctor() dans M:\ColorChanger 0.1\ColorChanger 0.1\Form1.cs:ligne 20
à ColorChanger.Program.Main() dans M:\ColorChanger 0.1\ColorChanger 0.1\Program.cs:ligne 18
à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Threading.ThreadHelper.ThreadStart()
InnerException:
Partager