Amiguinhos,
Em Clipper é possivel sim acessar uma .DLL mas executando os comandos via prompt usando RUN ou similar
A linha de comando para Rundll é da seguinte maneira:
RUNDLL32.EXE <dllname>,<entrypoint> <optional arguments>
Segue um exemplo:
RUNDLL32.EXE SHELL32.DLL,Control_RunDLL desk.cpl,,0
Nunca testei a SAT.DLL via DOS mas se ela permitir acesso via RunDLL32 então será possivel.
Sintaxe do comando AtivarSAT:
AtivarSAT( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )
Um exemplo com a SAT.DLL:
RUNDLL32.EXE SAT.DLL,AtivarSAT 123456, 1, 123123, 01333222000109, 35 > retorno.txt
O retorno.txt deverá conter a captura do comando enviado. Veja que é apenas explanação e não testei para ver se funciona.
Função para gerar um numero randomico. Este numero deve possuir até 6 digitos ou seja deve iniciar em 100000 e terminar em 999999.
FUNCTION Random( nMaximo )
static nRandom
local nTemporal
nMaximo = if( nMaximo == NIL, 65535, nMaximo )
if nRandom == NIL
nRandom = seconds()
endif
nTemporal = ( nRandom * seconds() ) % ( nMaximo + 1 )
nRandom = ( nTemporal + seconds() )
RETURN int( nTemporal )
Agora é mãos a obra.