[ electroNik @ 28.08.2006. 20:35 ] @
Kako? |
[ electroNik @ 28.08.2006. 20:35 ] @
[ 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: 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.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 [ 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 Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|