Aktualizacja czasu systemu Windows

0

Czy istnieje możliwość aktualizowania czasu systemu Windows na konkretne żądanie?
Piszę program w C++, którym pobieram czas z systemu razem z milisekundami i potrzebuję jak najbardziej dokładny pomiar czasu.
Dlatego wymyśliłem coś takiego, aby np. co 1 minutę program aktualizował czas w systemie.

Istnieje taka możliwość?

0

ale... po co dlaczego?

oczywiscie ze mozesz to zrobic do tego sluzy WinApi (poszukaj sobie w dokumentacji na temat system clock, czy system clock tray) Ale jezeli co minute bedziesz aktualizowal czas to... bedzie to kolejna minuta.
To tak jakbym mial licznik w samochodzie i co kazdy kilometr aktualizowal licznik o kilometr (a on przeciez sam juz to robi) Widzisz bezsensownosc swojego pomyslu?

https://www.google.nl/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#q=winapi%20windows%20clock
http://stackoverflow.com/questions/7099505/how-set-the-windows-clock-using-c

0

Program klika w odpowiednie miejsce na stronie internetowej o odpowiednim czasie (w odpowiednim przedziale milisekund).
Musi wykonać tą czynność w jak najszybszy sposób. Niestety zuważyłem, że czasami różnie to klika, są różnice 200-400 ms.
Gdy zaktualizowałem czas, puściłem program, odchylenia te zmalały do 20-50 ms.
Dlatego stąd potrzeba aktualizacji czasu.

0

to robisz cos kompletnie zle. Nie powinienes polegac na aktualnym czasie systemowym...
robisz petle while(true) i pobierasz tick od systemu. Jezeli jest tyle tickow ile Cie interesuje to klikasz tam gdzie chcesz. Nie bedziesz miec przez to opoznien

0

Mam taką pętle:

while (true)
			{
				SYSTEMTIME st;
				GetLocalTime(&st);

				int godzina = st.wHour;
				int minuta  = st.wMinute;
				int sekunda = st.wSecond;
				int milisekunda = st.wMilliseconds;
				if(godzina == wyslac_godzina && minuta == wyslac_minuta && sekunda == wyslac_sekunda && milisekunda > wyslac_milisekunda_od && milisekunda < wyslac_milisekunda_do)
				{
						//klika ENTER
						GenerateKeyDown(VK_RETURN, TRUE);
						GenerateKeyUp(VK_RETURN, TRUE);

						GenerateKeyDown(VK_RETURN, TRUE);
						GenerateKeyUp(VK_RETURN, TRUE);
				}
			}

Jest poprawna?

0

czytasz co ja pisze?

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724408%28v=vs.85%29.aspx

albo nawet mozesz zrobic jeszcze inaczej
Uzyj timera ktory liczy co 1ms (jeden tick).

Pobierasz na poczatku GetLocalTime i co jakis czas N (zwiekszasz czas poprzez swoj timer) wykonujesz ta operacje ktora chcesz

0

Przepraszam, zakręcony jestem.
Zaraz przeczytam na ten temat. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1