IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> SetSystemTime, Функции Win32 API в VS C++
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Требуется установить системное время с использованием функции:

BOOL SetSystemTime(
const SYSTEMTIME* lpSystemTime
);



Вот что у меня получилось:

#include "stdafx.h"
#include "windows.h"
#include <stdio.h>
#include <conio.h>
#include <winbase.h>
#include <windef.h>

//....
SYSTEMTIME New_ST;
GetSystemTime(&New_ST);
printf("%02d \n", New_ST.wHour); //посмотрим, каким было системное время

New_ST.wHour = 10; //изменим часы
SetSystemTime(&New_ST);

GetSystemTime(&New_ST); //посмотрим результат
printf("%02d", New_ST.wHour);
getch();
//....



Скажи пожалуйста, правильно ли я использую функцию?
меня смущают получаемые результаты: например реальное время 18:...
результаты работы: до - 14, после 12...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
В каждом из случаев вызова GetLastError() - код ошибки 2....
blink.gif При чем здесь ошибка №2? Это ж "ERROR_FILE_NOT_FOUND: The system cannot find the file specified." Какой именно файл не найден, спрашивается? Кстати, в первом случае у тебя GetLastError() вызывается для операции printf, а не для GetSystemTime. Нужно вызывать получение кода ошибки сразу после проверяемой операции.

Пока думается только о том, что у тебя вызывается не глобальная Get/SetSystemTime, а одноименная функция из какого-нибудь namespace... Попробуй:

	SYSTEMTIME New_ST;
::GetSystemTime(&New_ST);
DWORD dwErr = GetLastError();
printf("%02d\nGetSystemTime LastError() = %d", New_ST.wHour, dwErr);

New_ST.wHour = 14; //изменим часы
::SetSystemTime(&New_ST);
dwErr = GetLastError();
printf("SetSystemTime LastError() = %d\n", dwErr);

::GetSystemTime(&New_ST); //посмотрим результат
dwErr = GetLastError();
printf("%02d\nGetSystemTime LastError() = %d\n", New_ST.wHour, dwErr);

P.S. Что с привилегиями?
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.05.2024 18:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name