VB.NET auf Vista, versuchen Datum zu erhalten (Heute) verursacht Sicherheitsausnahme

StackOverflow https://stackoverflow.com/questions/64469

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe ein VB6-Programm, das jemand vor kurzem hat mir geholfen, zu VB.NET zu konvertieren

Im Programm beim Speichern von Dateien, ich stempeln sie mit dem Datum, das ich wurde durch den Aufruf der Today () Funktion zu bekommen.

Wenn ich versuche, den neuen VB.NET-Code in Vista laufen sie eine Erlaubnis Ausnahme für das Heute führt (). Wenn ich Visual Studio Express (dies ist die 2008 Express-Version) im Admin-Modus laufen, dann tritt das Problem nicht auftreten, aber klar möchte ich mit einem Stand-alone-Programm, um am Ende, die für alle Benutzer ohne Phantasie Berechtigungen ausgeführt wird.

Wie kann ein normales VB.NET Programm in Vista heutigem Datum bekommen?

War es hilfreich?

Lösung

Verwenden DateTime.Now oder DateTime.Today. Diese sind vollständig verwaltet und sollten nicht die Sicherheit Ausnahmen auslösen.

Die alten VB6-Funktionen wie Len(), Left(), Right(), OpenFile(), FreeFile() sind alle in der .NET Framework in der Microsoft.VisualBasic DLL. Zur Aufrechterhaltung der Abwärtskompatibilität, sie alle alten Funktionen in nicht verwalteten Code aufrufen. Unmanaged Code erfordert besondere Sicherheitsberechtigungen, weil es gefährlich sein kann.

Wenn möglich, versuchen und die neueren .NET-Funktionen verwenden. Sie sind in der Regel viel schneller (File IO-Streams zum Beispiel verwendet wird) und sicherer zu machen.

Andere Tipps

Wenn ich versuche, die folgende Anweisung:

Dim result As String = Today()

Es gibt mir die heutige Datum, wie ich erwarten würde, und ich bin mit VB2005 auf Vista. Können Sie die Frage mit der Version von VB ändern Sie verwenden? Außerdem können Sie die folgende Anweisung anstelle Today() versuchen zu sehen, es für Sie ohne Ausnahme funktioniert?

Dim result As String = Now()

Die Today () Funktion sollte richtig auf Vista verhalten. Ich glaube, dass hinter den Kulissen es einfach ist, die DateTime.Today Eigenschaft bewerten, so sollte es keine Ausnahmen werfen. Wenn Sie VB VB.NET sind die Portierung sollten Sie wahrscheinlich voran gehen und die DateTime.Today Eigenschaft verwenden, anstatt die VB6-Code-Kompatibilität.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top