 |
 |
 |
| Autor |
Mensagem |
Lemos
Usuário


Registrado: 14/04/09 Mensagens: 803 Localização: Rio de Janeiro - RJ |
|
Qual o erro no Script: reconhecer o PC e alterar a variável? |
|
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 |
|
 |
Edirlei
Administrador


Registrado: 15/03/08 Mensagens: 758
|
|
|
|
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:
 |  | 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 |
|
 |
Lemos
Usuário


Registrado: 14/04/09 Mensagens: 803 Localização: Rio de Janeiro - RJ |
|
|
|
Cara, vou checar isso o quanto antes, valeu mesmo! 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... 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!
Mais uma vez, obrigado.
_________________ Lemos
http://alemdanimacao.zip.net/
 |
|
| Qui Out 29, 2009 11:28 am |
|
 |
Lemos
Usuário


Registrado: 14/04/09 Mensagens: 803 Localização: Rio de Janeiro - RJ |
|
|
|
Edirlei, consegui! 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 |
|
 |
|
|
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
|
|
 |
 |
 |
|