[VB.Net] SetSystemTime levert Exception op

Pagina: 1
Acties:
  • 668 views sinds 30-01-2008
  • Reageer

  • F-Tim
  • Registratie: November 2003
  • Laatst online: 23-02 12:35
Goede middag inmiddels alweer,

mijn probleem is als volgt, ik haal de tijd op van een NTP server. Dit gaat inmiddels perfect. Echter als ik daarna de systeem tijd probeer te veranderen aan de hand van die waarde geeft VB.Net de volgende foutmelding: Poging tot het lezen of schrijven van beveiligd geheugen. Dit duidt er vaak op dat ander geheugen is beschadigd.

Ik heb op internet gezocht naar het gebruik van de SetSystemTime functie, maar overal waar ik zoek staat code die vergelijkbaar is met die van mij. Hieronder zal ik een kleine code snippet posten van de code:
code:
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
 Imports System.Runtime.InteropServices
..
Public Structure SYSTEMTIME
    Public wYear As UInt16
    Public wMonth As UInt16
    Public wDayOfWeek As UInt16
    Public wDay As UInt16
    Public wHour As UInt16
    Public wMinute As UInt16
    Public wSecond As UInt16
    Public wMilliseconds As UInt16
End Structure

Public Class NetworkTimeClient

Declare Function SetSystemTime Lib "kernel32" Alias "SetSystemTime" (ByVal lpSystemTime As SystemTime) As Long
..
    Public ReadOnly Property Time() As DateTime
        Get
                ..
                localtime = TimeZone.CurrentTimeZone.ToLocalTime(receiveTime)
                Dim systime As New SYSTEMTIME
                systime.wYear = CUInt(receiveTime.Year)
                systime.wMonth = CUInt(receiveTime.Month)
                systime.wDay = CUInt(receiveTime.Day)
                systime.wHour = CUInt(receiveTime.Hour)
                systime.wMinute = CUInt(receiveTime.Minute)
                systime.wSecond = CUInt(receiveTime.Second)
                SetSystemTime(systime)
                ..
        End Get
    End Property
  End Function
End Class


Echter als ik deze code uitvoer, dan krijg ik de melding zoals ik deze boven gepost heb. Ik heb op google gezocht, en deze, deze en deze website bekeken. Alle 3 geven ze echter een vergelijkbaar resultaat. Maar het werkt bij mij dus niet. Wie kan me vertellen waarom niet?

Edit: Nevermind, maak van de Long als returnwaarde bij SetSystemTime een Integer en het werkt 8)7

[ Voor 6% gewijzigd door F-Tim op 29-03-2006 16:01 . Reden: Problem solved ]

Wanna play?