Ich habe eine Anwendung, der ich an arbeite, um das MAC address einer Maschine von einem Registerschlüsselwert zu ergreifen. Ich dann nehme diesen Wert und vergleiche ihn mit einer Textdatei, die 2 Spalten, MAC- und Wirtsnamen hat. Die Idee ist, das MAC address vom Register zu nehmen, es mit der Akte zu vergleichen, und den Wirtsnamen zu verwenden und einen NETDOM Befehl zu konstruieren überschritten zu werden, um den Computer zum Gebiet mit dem korrekten Problem des Wirtes name.
The zu verbinden, das ich habe, ist, wenn sie eine Funktion benennen, die den Befehl in einem „cmd“ Oberteil durchführt, aber, erhält einer Störung „nicht alle Codewegrückkehr ein Wert“.
Here ist der Code für die Funktion:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
|
allgemeiner Static int ExecuteCommand (Schnur Befehl, int-Abschaltung)
{
Versuch
{
int ExitCode;
Prozessprozeß;
ProcessStartInfo ProcessInfo;
ProcessInfo = neues ProcessStartInfo („cmd.exe“,“ /C " + Befehl);
ProcessInfo.CreateNoWindow = falsch;
ProcessInfo.UseShellExecute = falsch;
Prozess = Process.Start (ProcessInfo);
Process.WaitForExit (Abschaltung);
ExitCode = Process.ExitCode;
Process.Close ();
RückholExitCode;
}
Fang (TimeoutException objException)
{
MessageBox.Show (objException.ToString ());
}
} |
The Unterseite des Codes ist wie folgt. Ich eingeschlossen nicht die Schnuranrufe, die die Struktur von einigen der Anrufe enthalten, wie das Registery. Mir vertrauen, dass die myvar Schnur die Werte des Register-Schlüssels enthält, der das MAC address hält. Und dass der Wert in MyVar das MAC ist, das, mit den Werten in der txt Akte zu vergleichen addrese ist. Dass der Teil fein, es ist, ist das Benennen der ExecuteCommand Funktion, die das issue.
1 hat:
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:
6:
37:
|
private Lücke Form1_Load (Gegenstandabsender, EventArgs e)
{
##################################
##################################
Benennen von varriables das brauchen Sie nicht zu sehen:-)
##################################
##################################
foreach (Schnurlinie in File.ReadAllLines („C:\ \ IP_DATA.txt“))
{
aufreihen [] zerteilt = Linie. Spalte ('');
foreach (Schnuranteil an Teilen)
{
[] regreturn aufreihen = myvar. Aufspalten („; ");
foreach (Schnur MyVal im regreturn)
{
wenn (MyVal.ToUpper () .ToString () == part.ToUpper () .ToString ())
{
Schnur NetDomCommand = „NETDOM HINZUFÜGEN“ + Teile [1] .ToUpper () .ToString () + „/Domain: “ +
TRDomain.ToString () + „/Userd: “ + UserID.ToString () + „/Passwordd: “ +
UserPW.ToString () L ";
Versuch
{
ExecuteCommand (NetDomCommand.ToString (), 0);
}
Fang (Ausnahme trs)
{
MessageBox.Show („{0}} zweite Ausnahme verfing. “, trs.ToString ());
}
}
}
i++;
}
}
} |
The Störung ist: Störung 1 „Name_Changer_1.Form1.ExecuteCommand (Schnur, int)“: nicht alle Codewege zurückbringen ein Wert ###path zu executable#### ##path, 84, die 27 Name_Changer2
Any ist appreciated. raten
|