RegistrarBuscaFAQMembrosGruposEntrar
Qual o erro no Script: reconhecer o PC e alterar a variável?

 
Responder tópico    3D Game Builder - Índice » Programação Exibir tópico anterior
Exibir próximo tópico
Qual o erro no Script: reconhecer o PC e alterar a variável?
Autor Mensagem
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 803
Localização: Rio de Janeiro - RJ

Mensagem Qual o erro no Script: reconhecer o PC e alterar a variável? Responder com citação
Amigos, segui a dica do Edirlei e fiz o Seguinte:

//---Begin Script Builder: Mostrar a chave do meu Windows no label Key---//
SetLabelText('Key', 'Key: '+RegReadString($80000002, 'SOFTWARE\Microsoft\Windows\CurrentVersion\','ProductId','0'));
//---End Script Builder---//
WriteGlobalVar('PCID', 0);
//---Begin Script Builder: Alterar a variável PCID em função da identidade do Windows e mostrar o resultado no label PcID---//
if (RegValueExists($80000002, 'SOFTWARE\Microsoft\Windows\CurrentVersion\','CHAVE MOSTRADA NO LABEL') = true) then
WriteGlobalVar('PCID', 1);
//---End Script Builder---//
SetLabelText('Objeto16', 'PcID:' +IntToStr(ReadGlobalVar('PCID')));


Vamos lá:

//---Begin Script Builder: Mostrar a chave do meu Windows no label Key---//
SetLabelText('Key', 'Key: '+RegReadString($80000002, 'SOFTWARE\Microsoft\Windows\CurrentVersion\','ProductId','0'));
//---End Script Builder---//

Aqui a chave do PC onde roda o Jogo é mostrada no Label Key


//---Begin Script Builder: Alterar a variável PCID em função da identidade do Windows e mostrar o resultado no label PcID---//
if (RegValueExists($80000002, 'SOFTWARE\Microsoft\Windows\CurrentVersion\','CHAVE MOSTRADA NO LABEL') = true) then
WriteGlobalVar('PCID', 1);
//---End Script Builder---//
SetLabelText('Objeto16', 'PcID:' +IntToStr(ReadGlobalVar('PCID')));


Primeiro eu declarei a variável PCID=0. Depois eu usei a função RegValueExists para checar a chave existente. Pelo que entendi, se a chave for igual, ela retorna true. Então fiz um script que se ela fosse = a true, a variável PCID mudaria para 1. Depois eu fiz ela aparecer no Label Objeto16: SetLabelText('Objeto16', 'PcID:' +IntToStr(ReadGlobalVar('PCID')));

A verificação não mostra erros, eu salvei e rodei, mas a variável PCID, mostrada no Label, não sai de zero, testei colocando a chave mostrada no Label certinha, do jeito que está escrito e testei com uma outra chave.
O Objetivo é alterar uma variável global em função da chave do PC. O mapa inicial só carregaria se a chave checada fosse a correta, a variável retornaria 1. Qualquer valor diferente retorna 0 e o mapa não carrega, ou carrega um mapa com uma mensagem de erro.

Abraço!



_________________
Lemos
http://alemdanimacao.zip.net/
Qua Out 28, 2009 4:06 pm Exibir perfil de usuários Enviar mensagem privada Visitar o website do usuário
Edirlei
Administrador
Administrador


Registrado: 15/03/08
Mensagens: 758

Mensagem Responder com citação
Você não pode passar o valor da chave na função RegValueExists, com essa função só vai ser retornado true se você verificar se existe o "ProductId".

if (RegValueExists($80000002, 'SOFTWARE\Microsoft\Windows\CurrentVersion\','CHAVE MOSTRADA NO LABEL') = true) then

A função não vai ler o dado associado, e sim se aquele valor existe, mas não verifica o que esta gravado nele.

Um código fala mais do que mil palavras:

Código:
if (RegValueExists($80000002, 'SOFTWARE\Microsoft\Windows\CurrentVersion\','ProductId') = true) then
begin
  if (RegReadString($80000002, 'SOFTWARE\Microsoft\Windows\CurrentVersion\','ProductId','0') == 'CHAVE MOSTRADA NO LABEL') then
  begin
    //O valor ProductId existe e o dado associado a ele é o mesmo que foi mostrado antes no label.
  end
  else
    //O valor ProductId existe mas o dado associado a ele é diferente do que foi mostrado antes no label.
end
else
  //O valor ProductId não existe.

Qui Out 29, 2009 3:29 am Exibir perfil de usuários Enviar mensagem privada Enviar e-mail MSN Messenger
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 803
Localização: Rio de Janeiro - RJ

Mensagem Responder com citação
Cara, vou checar isso o quanto antes, valeu mesmo! Very Happy Mas me fala só mais uma coisa, para aprender essa linguagem, o que eu tenho que procurar, pque os materiais que eu tenho de Pascal nunca mostram elementos como esses que você passa, é como se eu estivesse estudando álgebra para uma prova de geometria... Confused Se for necessário, penso em fazer um curso mesmo, mas queria ir na boa, para não perder tempo e dinheiro.
Se nessa nova versão você melhorar a documentação com pelo menos 1 exemplo como esse para cada script, já vai clarear muito a nossa vida! Rolling Eyes
Mais uma vez, obrigado.

_________________
Lemos
http://alemdanimacao.zip.net/
Qui Out 29, 2009 11:28 am Exibir perfil de usuários Enviar mensagem privada Visitar o website do usuário
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 803
Localização: Rio de Janeiro - RJ

Mensagem Responder com citação
Edirlei, consegui! Very Happy Segui todo o passo-a-passo! Na condição = true (a chave existe e é igual, eu coloquei a variável em 1, na condição 2, existe mas é diferente, a variável muda para 2). Na condição = false, a chave inexiste, a variável ficaria em 0. Usei como teste as chaves do pc da firma e do meu e as variáveis mudam perfeitamente!
Com as variáveis sendo afetadas, basta fazer com que o mapa inicial só carregue se a variável PCID = 1, caso contrário carregaria um mapa com uma mensagem de erro!
Obrigado mesmo!
Agora vou aperfeiçoar o script para que os dados possam ser gravados em banco de dados.

Abraço!

_________________
Lemos
http://alemdanimacao.zip.net/
Qui Out 29, 2009 11:09 pm Exibir perfil de usuários Enviar mensagem privada Visitar o website do usuário
Mostrar os tópicos anteriores:    
Responder tópico    3D Game Builder - Índice » Programação Todos os horários são GMT
Página 1 de 1

 
Ir para: 
Você não pode enviar mensagens novas neste fórum
Você não pode responder mensagens neste fórum
você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode votar em enquetes neste fórum


Powered by phpBB © 2001, 2008 phpBB Group
Design by Edirlei
Traduzido por phpBB Brasil