21. januar 2006 - 17:21Der er
17 kommentarer og 1 løsning
Registry read, Object not set to an instance of an object!?
Jeg er ved at virke virkelig pissed over at den skal blive VED med at sige "Object not set to an instance of an object" når det F****** ligger linien over :(
ved alt andet virker det, bare ikke denne! hva kan der være galt!? baah
- så er det fordi enten network_key eller DhcpDefaultGateway er null. Du angiver ikke hvilken af dem det er der fejler, så nærmere kan jeg ikke komme det lige nu.
Synes godt om
Slettet bruger
22. januar 2006 - 10:40#6
Det er:
Networks[NICCount, 3] = DhcpDefaultGateway[0];
Men lavede noget debuggin, det er alle værdier der er af typen REG_MULTI_SZ hvor data er = null
Men hvis data i dit REG_MULTI_SZ-felt er null, så er der jo heller ikke nogen strenge. Dermed bliver DhcpDefaultGateway et streng-array af længde 0. Derfor kan du heller ikke skrive DhcpDefaultGateway[0] uden at det giver en fejl. Imidlertid burde denne fejlbesked være en IndexOutOfRangeException - og altså ikke en "Object not set to an instance of an object" fejl. En sådan fejl burde kun komme hvis DhcpDefaultGateway-feltet slet ikke findes.
Kan ikke lige se hvofor det ikke virker, men her er en singleton klasse jeg bruger til at læse ActiveSync registry key med. Kan være du kan pille noget ud...
using System; using Microsoft.Win32;
namespace AgroSync { /// <summary> /// RegistryReader is used to read registry keys /// </summary> public class RegistryReader { private static RegistryReader instance = null; private static object lockObj = new object();
/// <summary> /// The Instance property returns the Singleton instance of the RegistryReader. It is read only. /// </summary> public static RegistryReader Instance { get { lock(lockObj) { if(instance == null) { instance = new RegistryReader(); }//if return instance; }//lock }//get }//property instance
/// <summary> /// GetActiveSyncVersion returns the current version of ActiveSync /// installed on the computer. /// </summary> /// <returns>ActiveSync version.</returns> public string GetActiveSyncVersion() { RegistryKey rk = baseRegistryKey.OpenSubKey(subKeyActiveSync); if ( rk == null ) return null; else { try { return "" + (int)rk.GetValue(activeSyncKeyNameMajor)+"."+(int)rk.GetValue(activeSyncKeyNameMinor); }//try catch(Exception) { return null; }//catch }//else }//GetActiveSyncVersion
... jeg har derimod to andre GUID's som passer. Begge har en Parameters\tcpip-subkey, men kun den ene har en variabel DhcpDefaultGateway af typen REG_MULTI_SZ.
Synes godt om
Slettet bruger
23. januar 2006 - 19:55#11
Hey alle sammen, endelig har jeg fået det til at virke, det var en nogle nøgler den ikke kunne finde, og forkert brug af strings/arrays det lavede fejlene. Men nu skulle den virke perfekt:
public String[,] GetNetworkInformation() { //Array Information //Networks["NIC Count","Information"] //[x][0] Networkcard Name //[x][1] DHCP Status //[x][2] IP Address //[x][3] Subnet Mask //[x][4] Default Gateway //[x][5] DHCP Server
network_key.Close(); } else if (network_key.GetValue("EnableDHCP").ToString() == "0") { //DHCP Is NOT Enabled Networks[NICCount, 1] = "DHCP Is Not Enabled";
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.