Há coisas que nem Freud explica

Categoria(s): (C/C++, Coding, Rapidinhas) por Naftali em 23-08-2008

Tags : , ,

Pois bem, estava eu, programando como sempre, quando percebi que meu programa começou a dar alguns erros estranhos. Ao estudar os parâmetros vi que tudo estava correto. Mas mesmo assim o programa insistia em fazer o contrário do que imaginava.

Então resolvi dar a minha última cartada: Depurar o código com nosso querido break-point (pode parecer estranho, mas eu tento evitar o break-point. Uso apenas quando o caso é supremo, como esse).

Pois é, ao depurar o código eu vi realmente que o programa estava entrando na condição contrária a que imaginava para aquela situação. Verifiquei os dados de entrada e estavam todos corretos.

- Caralho piii, o que tá acontecendo aqui? - Pensei comigo mesmo já na fúria.

Pois então resolvi ver qual era o real valor que estava dando a condição. Acredita que era verdadeiro? E mesmo assim entrava no else? Não acredita? Veja com seus próprios olhos!

Eae, algum palpite?

Manipulando registro em C

Categoria(s): (C/C++, Coding) por Naftali em 30-07-2008

Tags :

Olá, para iniciar meus posts na categoria Coding, vou ensinar como abrir chaves e escrever valores no registro. É uma aplicação bem simples que utiliza a API do windows.

Nessa aplicação eu vou mostrar como fazer para trocar o papel de parede do windows (Lembrando que quando se escreve o endereço do papel de parede manualmente no registro é preciso reiniciar o computador para aplicar).

  1. #include < windows.h >
  2. #include < stdio.h >
  3. #include < conio.h >
  4. #include < strings.h >
  5.  
  6. #define MAX_STRING 250
  7.  
  8. /*
  9.         Essa aplicação tem como finalidade demonstrar algumas formas de manipular
  10.         o registro do windows. Nesse exemplo, vamos mudar o papel de parede do
  11.         usuário atual
  12.  
  13.         Aplicação criada por: Naftali Andrade Santos
  14.         Site: blog.wiiarenerds.com.br
  15. */
  16. main()
  17. {
  18.         // variável que vai conter o caminho para a imagem que vai ser o papel de
  19.         // parede
  20.         char caminho[MAX_STRING];
  21.         // Essa variável vai conter o endereço de memória para a chave que foi
  22.         // aberta
  23.         HKEY chave;
  24.  
  25.         printf("Digite o caminho para a imagem: ");
  26.         gets(caminho);
  27.  
  28.         // Vamos abrir a chave que precisamos
  29.         if(RegOpenKey(HKEY_CURRENT_USER, "Control Panel\\Desktop", &chave) != 0)
  30.                 printf("Problemas ao abrir a chave, verifique se ela realmente existe");
  31.         else
  32.         {
  33.                 printf("Chave aberta com sucesso");
  34.                 // Depois de aberta vamos manipular algumas informações nela
  35.                 if(RegSetValueEx(chave, "WallPaper", 0, REG_SZ, (LPBYTE)caminho, strlen(caminho)) != 0)
  36.                    printf("\nOcorreu um erro ao escrever o valor!");
  37.                 else
  38.                    printf("\nValor escrito corretamente!");
  39.         }
  40.  
  41.         // Lembre-se de fechar a chave
  42.         RegCloseKey(chave);
  43.  
  44.         printf("\nPressione qualquer tecla para continuar");
  45.         getch();
  46. }

Link para o código-fonte: Registro - Source
Link para o executável: Registro - Executável

PS.: Esse post foi criado para responder a dúvida presente no forum Ajuda na Web. Segue o link: http://www.ajudanaweb.com/index.php?showtopic=427