Копирование раздела реестра Windows

Di_Maria7
Дата: 28.10.2014 18:14:10
Здравствуйте. Необходимо разработать программу для копирования заданного раздела реестра в другой
раздел со всеми подразделами и всех целочисленных и строковых параметров.
В общем использовал WinAPI функцию RegCopyTree чтобы, например, скопировать ключ Software в другой раздел реестра
#include "stdafx.h"
#include "windows.h"
#include "conio.h"

int _tmain(int argc, _TCHAR* argv[])
{
	BOOL Success;
	char value[]="Software";
	Success=RegCopyTree(HKEY_CURRENT_USER,TEXT("Software"),HKEY_USERS);
	if(Success)
	{
		printf("Success!\n");
	}
	else printf("Failure.\n");
	_getch();
}

В результате выводит Success, то есть функция сработала. Однако изменений в реестре так и не происходит. Подскажите, в чем может быть проблема
Dimitry Sibiryakov
Дата: 28.10.2014 18:20:35

Di_Maria7
в чем может быть проблема

Очевидно в том, что "If the function succeeds, the return value is ERROR_SUCCESS". А твоя
проверка... э-э-э... сильно другая.

Posted via ActualForum NNTP Server 1.5

Di_Maria7
Дата: 28.10.2014 18:27:12
да,неверна проверка, но не суть. Ошибка как я понимаю в параметрах функции. Кто-нибудь может что сказать по этому поводу?
mayton
Дата: 28.10.2014 18:49:11
Di_Maria7
да,неверна проверка, но не суть. Ошибка как я понимаю в параметрах функции. Кто-нибудь может что сказать по этому поводу?

Ты читал что тебе Дмитрий говорит? У тебя логика проверки неправильная. Исправь сначала.
White Owl
Дата: 28.10.2014 18:49:26
Сказать по поводу можно только одно: читай документацию.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa379768(v=vs.85).aspx
Dimitry Sibiryakov
Дата: 28.10.2014 18:49:42

Di_Maria7
Кто-нибудь может что сказать по этому поводу?

По этому поводу может многое сказать "FormatMessage function with the
FORMAT_MESSAGE_FROM_SYSTEM flag", но для этого придётся программировать на одну строчку
больше.

Posted via ActualForum NNTP Server 1.5

Di_Maria7
Дата: 28.10.2014 19:02:38
mayton, вообще да, читал.
#include "stdafx.h"
#include "windows.h"
#include "conio.h"

int _tmain(int argc, _TCHAR* argv[])
{
	BOOL Success;
	char value[]="Software";
	Success=RegCopyTree(HKEY_CURRENT_USER,TEXT("Software"),HKEY_USERS);
	if(!Success)
	{
		printf("Success!\n");
	}
	else printf("Failure.\n");
	_getch();
}

Верно?
Di_Maria7
Дата: 28.10.2014 19:05:54
White Owl, читал документацию, думаю проблема во втором параметре. Но как правильно передать туда значение, вот в чем вопрос
Dimitry Sibiryakov
Дата: 28.10.2014 19:16:32

Di_Maria7
думаю

Не надо думать, не тот ещё у тебя уровень. Надо читать какая ошибка возникает.

Posted via ActualForum NNTP Server 1.5

White Owl
Дата: 28.10.2014 23:56:16
Di_Maria7
White Owl, читал документацию, думаю проблема во втором параметре. Но как правильно передать туда значение, вот в чем вопрос
Ты не читал документацию. У тебя ошибка во всех трех параметрах.
Вместо "скопировать такую-то книгу в библиотеке", ты пытаешься скопировать планету.