Prezados colegas
Meu aprendizado está indo muito bem, ainda falta um bocado para ficar um expert como o Pablo ou um mestre como o Claudio Soto, mas se eu chegar perto disso me dou por satisfeito, o sistema tá ficando bacana, alguns vícios, um errinho pra cá, uns trocentos pra lá, mas tá indo bem.
Como forma de agradecimento segue abaixo uma função que sei que muitos colegas procuram e não encontram facilmente, acabei de criar, pesquisando como proteger meu sistema, descobri algo que vai com certeza ajudar muito.
A função usa um comando nativo do Windows, então dá pra usar com qualquer linguagem.
Esse comando consegue retornar dezenas de informações sobre o SO, rede e do equipamento (inclusive remotamente via ip)
Serial de fabrica do(s) hd(s), serial da placa mãe, dados da bios, etc...
Fiz em Clipper "puro" pra facilitar
Código: Selecionar todos
cls
run wmic /output:s1.txt csproduct get uuid
Run wmic /output:s2.txt baseboard get product
Run wmic /output:s3.txt baseboard get version
Run wmic /output:s4.txt baseboard get serialnumber
Run wmic /output:s5.txt diskdrive get serialnumber
s1=memoread("s1.txt")
a=strtran(s1,chr(00))
a=strtran(a,chr(10))
a=alltrim(strtran(a,chr(13)))
info1=substr(a,rat(" ",a)+1,len(a)-rat(" ",a))
@ 02,00 say "UUID do Computador: "+info1
s2=memoread("s2.txt")
a=strtran(s2,chr(00))
a=strtran(a,chr(10))
a=alltrim(strtran(a,chr(13)))
info2=substr(a,rat(" ",a)+1,len(a)-rat(" ",a))
@ 03,00 say "Modelo da Placa Mae: "+info2
s3=memoread("s3.txt")
a=strtran(s3,chr(00))
a=strtran(a,chr(10))
a=alltrim(strtran(a,chr(13)))
info3=substr(a,rat(" ",a)+1,len(a)-rat(" ",a))
@ 04,00 say "Versao da Placa Mae: "+info3
s4=memoread("s4.txt")
a=strtran(s4,chr(00))
a=strtran(a,chr(10))
a=alltrim(strtran(a,chr(13)))
info4=substr(a,rat(" ",a)+1,len(a)-rat(" ",a))
****owrit("s1ok.txt",info1)
@ 05,00 say "Serial da Placa Mae: "+info4
s5=memoread("s5.txt")
a=strtran(s5,chr(00))
a=strtran(a,chr(10))
a=alltrim(strtran(a,chr(13)))
info5=substr(a,rat(" ",a)+1,len(a)-rat(" ",a))
@ 08,00 say "*** A cereja do bolo abaixo ***"
@ 10,00 say "Serial do HD (de fabrica) : "+info5
ferase("s1.txt")
ferase("s2.txt")
ferase("s3.txt")
ferase("s4.txt")
ferase("s5.txt")
***** O serial retornado esta em hexadecimal ***
***** Quem quiser pegar o serial certinhho ***
***** tera que usar uma funcao para converter ***
***** de Hexa para Ascii ***
***** No clipper pode se usar a função HEXTOSTR() da Lib Clipper Tools
***** Neste caso a linha ficaria assim :
***** @ 10,00 say "Serial do HD (de fabrica) : "+Hextostr(info5)
***** Se o computador tiver mais de um HD sera retornado *****
***** todos os seriais com espaco em branco separando ****
***** como estou com preguica botei so pra pegar apenas um ****
***** Esse comando tambem funciona via rede *****
***** ou seja, pode se pegar informacoes de um computador remoto
***** via ip ***
***** Divirtam-se ****
return
Mais informações sobre o wmic em :
http://norfipc.com/comandos/informacion ... -wmic.html
Nesse site tem inclusive um gerador de código para várias linguagens (C++, VB, VB.net, Phyton, etc...) então se alguém se habilitar a criar uma dll, ajudaria muito.
ou
http://www.josecosta.net/doku/doku.php/wmi
Até logo.
Marcelo