Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

C-Sharp, Umwandlung Registry Zeitwerte in String

Frage Entwicklung C und C++

Mitglied: Nobby1805

Nobby1805 (Level 1) - Jetzt verbinden

14.08.2009, aktualisiert 21:23 Uhr, 4754 Aufrufe, 7 Kommentare

Hallo Leute,
stehe mir gerade selbst auf der Leitung und komme nicht weiter, vermutlich sehe ich den Wald vor lauter Bäumen nicht

Ich möchte ein C# Programm erweitern indem ich eine Zeitangabe, die in der Registry steht, auslese und anzeige.

Auslesen kein Problem, das Anzeigen prinzipiell auch nicht, wenn ich denn die Zeit in einen String konvertiert bekommen würde.

Das Ergebnis des Registryzugriffs gibt einen Wert vom Type object zurück, die Konvertierung erwartet den Type long. Wenn ich ein casting auf long einbaue kommt eine Fehlermeldung, dass die angegebene Umwandlung ungültig ist..

Hier der Code Schnipsel (der wegen der diversen Tests nicht ganz optimal ist aber das kann man ja später anpassen)
01.
                            object Zeito = (tempKey.GetValue(valueName)); 
02.
                            long Zeit = (long) Zeito; 
03.
                            node.Nodes.Add(valueName + ":---------------: " +  DateTime.FromBinary(Zeit).ToString("dd.MM.yyyy hh:mm:ss"));
Bin für jeden Tipp dankbar ..

Gruß Nobby
Mitglied: filippg
14.08.2009 um 21:39 Uhr
Hallo,

ohne zu wissen, wie Datumswerte in der Registry gespeichert werden: Eine Konvertierung String -> Long sollte mit Convert.ToInt64(string) funktionieren, siehe http://msdn.microsoft.com/en-us/library/system.convert.toint64(VS.71).a ...
Was du versucht hast ("(long)") ist keine Konvertierung, sondern ein Type-Cast.

Gruß

Filipp
Bitte warten ..
Mitglied: Nobby1805
14.08.2009 um 21:44 Uhr
Danke für deinen Hinweis .. aber die Zeit steht in der Registry als 8 Byte Wert von denen nur 4 belegt sind (-> long), deshalb will ich auch casten weil 4 Byte = long ... schon mal vorab ... casting auf Uint64 klappt genau so wenig

Wie gesagt kommt bei der Abfrage ein Wert vom Type object zurück und den will ich in einen String wandeln nicht zurück
Bitte warten ..
Mitglied: filippg
14.08.2009 um 22:00 Uhr
casting auf
Uint64 klappt genau so wenig
Was klappt denn daran nicht? Gegebenenfalls musst du vorher das Object in einen String konvertieren (ich dachte aber, da wird ein impliziter Cast gemacht). Also Zeit = Convert.ToInt64(Zeito.ToString());

Ach ja, manchmal lohnt es sich, gepostet Links zu lesen. Es gibt eine Überladung ToInt64(object). Diese fordert jedoch, dass object IConvertible implementiert, was deins wahrscheinlich nicht tut. Dann ist klar, dass nicht implizit gecastet wird (eine passend Überladung wurde ja gefunden), sondern du explizit in String wandeln musst.

Gruß

Filipp
Bitte warten ..
Mitglied: Nobby1805
14.08.2009 um 22:08 Uhr
Zitat von filippg:
sondern du explizit in String wandeln musst.

Gruß

Filipp

und genau das klappt nicht ... alle Kovertierungsfunktionen die ich versuche zu verwenden wollen object nicht
Bitte warten ..
Mitglied: filippg
14.08.2009 um 22:42 Uhr
und genau das klappt nicht ... alle Kovertierungsfunktionen die ich
versuche zu verwenden wollen object nicht
Kann ich mich nur wiederholen: Was klappt denn daran nicht? Fehler zur Compile- oder zur Laufzeit? Fehlermeldung? Mal getestet, ob dein object vielleicht null ist? Ziemlich sicher implementiert object eine .ToString()-Methode, die dann ziemlich sicher auch ein String zurückgibt. Somit ist das Problem nicht mehr, dass "alle Kovertierungsfunktionen" object "nicht wollen"... daneben verfügt object auch über eine GetType-Methode, die man ja spaßeshalber auch mal verwenden kann.
Bitte warten ..
Mitglied: Nobby1805
15.08.2009 um 11:13 Uhr
Hallo Filipp,

erst einmal vielen Dank, dass du dich mit dem Thema beschäftigst. Ich hatte gehofft, dass es jemand liest der schon einmal das gleich Problem hat und den Registry Zugriff kennt.

Ja, das object hat eine ToString Methode. Aber bei diesem Registry-Schlüssel wandelt die in den Text: "System.Byte[]" und das ist natürlich nicht das Ziel.
Nein, das object ist nicht null, sondern byte[8] und der Inhalt ist genau der den man auch mit regedit sehen kann.
GetType ergibt ebenfalls SystemByte[]

Ich mache es jetzt mit der mühsamen Methode die einzelnen Bytes verschieben und dann oder'n !!

Nobby
Bitte warten ..
Mitglied: filippg
15.08.2009 um 17:01 Uhr
Ja, das object hat eine ToString Methode. Aber bei diesem
Registry-Schlüssel wandelt die in den Text:
"System.Byte[]" und das ist natürlich nicht das Ziel.
Das war das, was ich mit "ohne zu wissen, wie Datumswerte in der Registry gespeichert werden" meinte. Einen Byte-Array bekommt man so natürlich nicht in ein long. Ich war von einem QWord-Typ ausgegangen..
http://msdn.microsoft.com/de-de/library/microsoft.win32.registrykey.get ... verrät die möglichen Speichertypen, und wie man sie bearbeitet.

Gruß

Filipp
Bitte warten ..
Ähnliche Inhalte
C und C++
C-Sharp - String-Manipulation (SQL String manuell generieren)
gelöst Frage von WP8FanC und C++6 Kommentare

Hallo, Ich habe folgendes Problem in C# In einer Anwendung soll eine SQL Abfrage angestoßen werden. die Felder die ...

IDE & Editoren
IDE für C-Sharp und C++ auf Windows
gelöst Frage von BugdroidIDE & Editoren8 Kommentare

Hallo, Ich nutze derzeit Visual Studio, aber auf Dauer ist es mir etwas zu Ressourcenfressend und für meine Zwecke ...

C und C++
C-sharp Form buggt
gelöst Frage von YanmaiC und C++2 Kommentare

Hallo ihr Administratoren. Ich habe ein kleines Problem. Unszwar möchte ich eine Ordner von C# zu einem PHP Script ...

C und C++
C Sharp - DLL einbinden
gelöst Frage von EisbrecherinC und C++3 Kommentare

Hallo zusammen! Ich bin gerade etwas am Verzweifeln beim Einbinden von DLLs. Ich habe ein Projekt in C# (erstellt ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 5 StundenBatch & Shell7 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 7 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 22 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 23 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...