[ electroNik @ 28.08.2006. 20:35 ] @
Kako?
[ StrokaviKod @ 29.08.2006. 10:14 ] @
API !!

Imports System.Runtime.InteropServices

<StructLayoutAttribute(LayoutKind.Sequential)>
Private Structure SYSTEMTIME
Public year As Short
Public month As Short
Public dayOfWeek As Short
Public day As Short
Public hour As Short
Public minute As Short
Public second As Short
Public milliseconds As Short
End Structure


<DllImport("coredll.dll")>
Private Shared Function SetLocalTime(ByRef time As SYSTEMTIME) As Boolean
End Function
[ electroNik @ 29.08.2006. 11:37 ] @
Kol'ko sam ja shvatio, treba da napravim referencu ka coredll.dll biblioteci, i iz nje iskoristim metodu za promenu datuma. Jel da?
Nije mi jasno kako to da nisam uspeo da nađem tu biblioteku na hardu. Da nije to zato što imamo različite verzije windowsa (ja imam XPSP2)?
Objasni mi malo opširnije jer nikad do sada nisam radio sa WinAPI-jem.
[ electroNik @ 30.08.2006. 09:23 ] @
Rešio sam problem. Ukoliko nekoga zanima... Evo kako:
Code:
Imports System.Runtime.InteropServices
Public Class ImeKlase

    <StructLayoutAttribute(LayoutKind.Sequential)> _
    Private Structure SYSTEMTIME
        Public year As Short
        Public month As Short
        Public dayOfWeek As Short
        Public day As Short
        Public hour As Short
        Public minute As Short
        Public second As Short
        Public millisecond As Short
    End Structure

    Private Declare Function SetSystemTime Lib "kernel32.dll" (ByRef stru As SYSTEMTIME) As Int32

    Private Shared Sub PromeniLokalnoVreme()
        Dim objNovoVreme As SYSTEMTIME
           '
    '
    'kod koji postavlja parametre strukture: objNovoVreme
    '    
    '
        SetSystemTime(objNovoVreme)
    End Sub
End Class
Vodite racuna o tome da vreme šaljete f-ji SetSystemTime bude u UTC formatu jer ce Windows da pomeri sate unapred ili unazad u zavisnosti od toga u kojoj se vremenskoj zoni nalazite.
[ StrokaviKod @ 30.08.2006. 09:49 ] @
Ne, ne treba ti referenca na "coredll" vec samo ovo sto sam ti napisao

Pametno bi bilo da napravis klasu.

Npr.
Code:

Imports System.Runtime.InteropServices
Public Class SystemTime

    <StructLayoutAttribute(LayoutKind.Sequential)> _
        Private Structure SYSTEMTIME
        Public year As Short
        Public month As Short
        Public dayOfWeek As Short
        Public day As Short
        Public hour As Short
        Public minute As Short
        Public second As Short
        Public milliseconds As Short
    End Structure


    <DllImport("coredll.dll")> _
    Private Shared Function SetLocalTime(ByRef time As SYSTEMTIME) As Boolean
    End Function

    Public Sub SetSysTime(ByRef NewDate As DateTime)
        Dim st As SystemTime
        st.year = Convert.ToInt16(NewDate.Year)
        st.month = Convert.ToInt16(NewDate.Month)
        st.dayOfWeek = Convert.ToInt16(NewDate.DayOfWeek)
        st.day = Convert.ToInt16(NewDate.Day)
        st.hour = Convert.ToInt16(NewDate.Hour)
        st.minute = Convert.ToInt16(NewDate.Minute)
        st.second = Convert.ToInt16(NewDate.Second)
        st.milliseconds = Convert.ToInt16(NewDate.Millisecond)

        SetLocalTime(st)

    End Sub

End Class



I to bi bilo to

Edit: Kasno marko na kosovo stize :)

[Ovu poruku je menjao StrokaviKod dana 30.08.2006. u 11:07 GMT+1]
[ StrokaviKod @ 30.08.2006. 10:11 ] @
evo ti koristan link za pregled API funkcija, tipova i konstanti

http://www.activevb.de/rubriken/apiviewer/index-apiviewereng.html
[ electroNik @ 30.08.2006. 11:01 ] @
Probaću taj tvoj način.
Hvala na odgovorima i linkovima.
[ StrokaviKod @ 30.08.2006. 11:12 ] @
Moja greska, nije "coredll.dll" nego "kernel32.dll" kao sto si i sam primetio. Sorry!!!
[ ganjaman @ 22.11.2006. 07:10 ] @
Ovaj problem sam resavao s vb6 verzijom i nisam uspeo samo datum da promenim dok mi neko lepo nije napisao nesto ovako:

Date xx/xx/xx sve to u dokument .cmd i nema nikakvih problema

mozda nekog zanima ja sam bas imao problem