Esse exemplo demonstrará como enumerar (listar) chaves, nomes ou valores. Extremamente importante se você quer fazer uma função de pesquisa no registro. Segue o código comentado:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
inclua'win'; k = win.RegAbraChave( HKEY_CURRENT_USER,'PrismaInfo', KEY_LEITURA); //enumerando os nomes da chave 'k' : "HKEY_CURRENT_USER\\PrismaInfo\\" v = win.RegEnumere( k ) se v entao //lendo os valores para i , v em ipares( v ) inicio imprima(v); //obtendo informacao de tipo de chave e valor, e tamanho: (retorno é uma tabela com os campos: tipo , tamanho local t = win.RegObtInfoValor(k , v ) imprima( 'tamanho: ' .. t.tamanho); se t.tipo == REG_BINARY entao imprima('\n'.. t.tipo , 'tipo binario') imprima( desempacote(win.RegLeiaChaveBin(k,v) ) ); senaose t.tipo == REG_SZ entao imprima('\n'.. t.tipo , 'tipo string') imprima( win.RegLeiaChaveStr(k,v) ); senaose t.tipo == REG_EXPAND_SZ entao imprima( '\n'.. t.tipo , 'tipo string com variaveis de ambiente') imprima( win.RegLeiaChaveStr(k,v) ); senaose t.tipo == REG_MULTI_SZ entao imprima( '\n'.. t.tipo , 'tipo multi string') local tt = win.RegLeiaChaveStr(k,v) ; imprima( desempacote(tt) ); senaose t.tipo == REG_DWORD entao imprima('\n'.. t.tipo , 'tipo numero') imprima( win.RegLeiaChaveNum(k,v) ); fim fim //fim para imprima( v.tipo ); fim win.RegFecheChave(k); win.poe'Ok para sair'; |
Detalhes: A função para listar todas as subchaves de uma chave maior é:
1 |
v = win.RegEnumere( k ) |
Onde ‘k’ é a chave aberta anteriormente. O retorno é uma tabela Prisma em…
Continue reading