#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <strings.h>

#define MAX_STRING 250

/*
	Essa aplicação tem como finalidade demonstrar algumas formas de manipular
	o registro do windows. Nesse exemplo, vamos mudar o papel de parede do
	usuário atual
	
	Aplicação criada por: Naftali Andrade Santos
	Site: blog.wiiarenerds.com.br
*/
main()
{
	// variável que vai conter o caminho para a imagem que vai ser o papel de 
	// parede
	char caminho[MAX_STRING]; 
	// Essa variável vai conter o endereço de memória para a chave que foi 
	// aberta
	HKEY chave;
	
	printf("Digite o caminho para a imagem: ");
	gets(caminho);

	// Vamos abrir a chave que precisamos
	if(RegOpenKey(HKEY_CURRENT_USER, "Control Panel\\Desktop", &chave) != 0)
		printf("Problemas ao abrir a chave, verifique se ela realmente existe");
	else
	{
		printf("Chave aberta com sucesso");
		// Depois de aberta vamos manipular algumas informações nela
		if(RegSetValueEx(chave, "WallPaper", 0, REG_SZ, (LPBYTE)caminho, strlen(caminho)) != 0)
		   printf("\nOcorreu um erro ao escrever o valor!");
		else
		   printf("\nValor escrito corretamente!");
	}
	
	// Lembre-se de fechar a chave
	RegCloseKey(chave);
	
	printf("\nPressione qualquer tecla para continuar");
	getch();
}

