Conforme eu havia comentado há alguns dias, estava desenvolvendo um recurso que fosse uma alternativa menos limitada ao utilitário U2F. Depois de pesquisar e procurar pelas melhores alternativas, conclui o trabalho e incorporei o novo recurso ao WAPI, que já está disponível para download.
Eis uma relação atualizada dos switches que fazer parte do WAPI. O que está em asterísco é o novo recurso. Por meio dele pode-se fazer exatamente o que o U2F fazia: baixar arquivos pela Internet. Mas há duas vantagens: como eu troquei a API do ActiveX por outra melhor, pude desenvolver um código mais controlado, o que me permitiu desligar o cachê, que sempre foi uma coisa problemática no U2F. A segunda vantagem é que agora pode-se definir um TimeOut para forçar um retorno após certo tempo sem tráfego.
Código: Selecionar todos
-DELETEREGISTRY:<fullKeyPath>;<entryName>;<resultFile>
-FLASH:<times>[;<handle>]
-GETAPPSINFO:<resultFile>
-GETCLIPBOARD:<resultFile>
-GETDEFPRINTER:<resultFile>
-GETHDINFO:<resultFile>
-GETMYHANDLE:<resultFile>
-GETPRINTERS:<resultFile>
-GETWINDOWSINFO:<resultFile>
-HIBERNATE
-PLAYWAVE:<source>
-POWEROFF
-PRINT:<printerName>;<inputFile>;<reportTitle>;<resultFile>
-READREGISTRY:<fullKeyPath>;<entryName>;<resultFile>
-REBOOT
-SETAPPTITLE:<title>
-SETBUTTONX:<on|off|del>
-SETCLIPBOARD:<valueType>;<value>;<resultFile>
-SETSTARTBUTTON:<hide|show|disable|enable>
-SETTASKBUTTON:<hide|show>[;<handle>]
-SUSPEND
* -URL2FILE:<URL>;<fileName>;<timeOut>;<resultFile>
-WRITEREGISTRY:<fullKeyPath>;<entryName>;<valueType>;<value>;<resultFile>
Também foram adicionadas à biblioteca WAPI duas funções pra abstrair o acesso ao novo recurso:
DLoadFile() e
IsInternet().
Há alguns dias estava discutindo com alguns colegas algumas idéias a respeito de atualização de programa via Internet. O elo que faltava era justamente uma função que pudesse fazer teste de conexão e download com um pouco mais de controle do que a U2F proporcionava. Agora já é possível.
Claro que, uma vez que há um meio de baixar arquivos, é bem possível também interagir com servidor por meio de alguns scripts. Quem tem site, naturalmente tem acesso a isso. Uma utilidade para o novo recurso é justamente a proteção de um software, seja para validar uma licença ou mesmo renová-la, principalmente para quem aluga software. Eu próprio fiz um teste simples para obter a data do server para comparar com a data do sistema e saber se houve alguma alteração indevida. O script PHP abaixo me retorna um texto com a data e hora no formato DDMMYYYY;hh:mm:ss.
O programa XBase abaixo recupera e mostra essa data e hora, caso seja detectada uma conexão.
Código: Selecionar todos
clear
set date british
set century off
*
if IsInternet()
cSrv := "buzinello.com"
cRet := ""
if DLoadFile("www."+cSrv+"/servertime.php",@cRet)
? "No servidor " + cSrv + ":"
? "--------------------------"
? "Date: " + DtoC(StoD(Left(cRet,8)))
? "Time: " + Transf(Right(cRet,6),"@R 99:99:99")
else
? "ERRO desconhecido!"
end
else
? "ERRO: desconectado ou bloqueado pelo firewall!"
end
?
A partir disso é fácil imaginar que novos tipos de controles poderão ser feitos para atender a demanda nessa área. Basta baixar a saída do script (seja de que tipo for: HTML, texto, etc), cujos parâmetros podem ser passados na URL. Podem ser executadas tarefas das mais diversas: conversões, cálculos, pesquisas em MySQL, etc. Tudo parametrizado na própria URL. A imaginação é o limite.
O README.TXT, que acompanha o ZIP contém, contém descrições mais detalhadas. Aconselho sua leitura, assim como a leitura dos fontes das funções de abstração.
Link para download:
http://buzinello.com/download/wapi.zip
[]'s
Maligno
http://www.buzinello.com/prg