Olá prezado Itamar, bom dia!
Como ainda sou novo no ramo da migração e apesar dos grandes avanços, como já disse em outros tópicos deste tão conceituado fórum PCTOLEDO, acho q informei no início quando V.Sa. me respondeu pela primeira vez com os 2 exemplos de arquivos. Aí perguntei se funcionava no harbour HMG 3.0.35.
Bom, se ao instalar a HMG 3.0.35 ela não atualiza o harbour é porque tenho que aprender muito ainda.
Então, como faço para saber a versão do meu harbour? e como instalo a versão mais atual?
Lembrando que não posso mudar muito o que já está pronto, pois na migração, fiz as recomendações dos tópicos e a única ferramenta prática que comigo funcionou e sem precisar "de muito trabalho" e/ou arquivos "BATs" foi a HMG 3.0.35.
Tenho também a 3.0.46 (sem instalar), mas, optei pela versão e a foi a que está dando certo até agora.
Quanto ao "REQUIRE" e etc, "fuçano" aqui, consegui fazer funcionar e até mesmo para quem tinha dúvidas como eu, #ficaadica de como fiz:
if .not. win_regRead( "HKCU\teste\teste1" ) = 1 // aqui verifica se existe a chave/registro "DWORD"
@ 07,00 say "Sistema violado" // acrescentada em 05/05/15w
inkey(0) // coloquei provisoriamente pra ver onde o SiCCA deu erro - 06/05/15w
close all
quit
endif
Essa parte àcima, verifica se existe a CHAVE/REGISTRO no REGEDIT/REGDT32 do Windows (versão win xp), ainda não testei no Win VI, 7, ... em diante.
Regtmp:= win_regRead( "HKCU\TESTE\teste2",,WIN_REG_EXPAND_SZ )
if ! RegTmp=nil
if val(Regtmp) < 4 .or. val(Regtmp) > 4
@ 07,00 say "Sistema Violado. Pressione <ENTER> para encerrar..." // acrescentada em 05/05/15w
close all
quit
endif
else
@ 07,00 say "Sistema Violado. Pressione <ENTER> para encerrar..." // acrescentada em 05/05/15w
close all
quit
endif
Já o código acima, funciona assim:
- 1º a CHAVE do REGEDIT de dentro do "TESTE2" é colocada para dentro da variável LOCAL de nome "RegTmp"
- 2º então verifico se ela existe através do "if .not. RegTmp <>nil", ou seja, se for NIL significa que ela não existe. Então o sistema vai para o ELSE e se encerra por violação (falta dessa chave).
- 3º agora, caso ela exista, ou seja, o conteúdo dela for diferente de "NIL" então é feita a verificação secundária. Qual o conteúdo que ela deve conter? O conteúdo deve ser uma string com o número 4, isso mesmo, uma string "4". Mas, para que a verificação dê certo, eu converto essa string "4" para um valor numérico pra se ter certeza que seja realmente o número 4. Se não for verdade o sistema encerra-se novamente.
Para tudo isso funcionar, com o meu harbour (HB32 é o nome da pasta e não sei que versão é) através da HMG 3.0.35 (que uso para compilar sem "burocracias" do código manual, pois estamos numa época em que tudo tem que ser mais rápido: aprendizado fácil, rápido e eficaz, etc...), usei no início no lugar de
"REQUIRE" usei o seguinte:
#include "G:\MVinfo\hb32\contrib\hbwin\hbwin.ch"
Como disse acima, encontrei 3 "HBWIN.CH" dentro de meu computador, e se eu usar somente #include "HBWIN.CH" essas funções não funcionarão corretamente pois pegará um "HBWIN.CH" que não seja o que realmente funcione.
Bom, espero ter respondido ao caro professor Itamar e principalmente a outros internautas, não só do fórum, mas de toda rede "google" e/ou "yahoo" ao buscarem cheguem até aqui e saciem-se com as "pérolas" que por aqui encontramos.
Abraços,
MICROVOLUTION
http://www.mvinfo.wmx.net.br