sexta-feira, 17 de junho de 2016

Curso WinDev - Certificado - 003 - Ver se Certificado é Válido



Video Youtube


Nessa aula vou mostrar como verificar se certificado é válido

In this lecture I will show how to check if certificate is valid'll call procedure

Dans cette conférence, je vais vous montrer comment vérifier si le certificat est valid'll procédure d'appel
 

doc.windev.com/en-US/?1000019307&name=Certificate_constants
http://doc.pcsoft.fr/fr-FR/?1000019307&name=constantes_gestion_des_certificats

Blog - WinDev - Curso Certificado - 001/... - Seleciona Certificado - Certificate Select 
Blog - WinDev - Curso Certificado - 002/... - Certificate Type - Pegar Dados Certificado
Blog - WinDev - Curso Certificado - 003/... - Ver se Certificado é Válido
Blog - WinDev - Curso Certificado - 004/... - CertificateLoad - Chamar pfx/arquivo
Blog - WinDev - Curso Certificado - 005/... - Assinatura Digital Nfe - Parte 1/...
Blog - WinDev - Curso Certificado - 006/... - Assinatura nfe - Parte 2/... - System.xml.xmlDocument
Blog - WinDev - Curso Certificado - 007/... - Assinatura nfe - Parte 3/... - Assinar Documento
Blog - Windev - Curso Certificado - 008/... HttpListCertificate
Blog - WinDev - Curso Soap - 009/... Consulta Cadastro Sefaz - WebService
Blog - WinDev - Curso Soap - 010 - Status Nfe Sefaz - WebService

Exemplo Se certificado é válido

//Exemplo Se certificado é válido
//Example If the certificate is valid
//Exemple Si le certificat est valide

x//Ingles

_certificado is Certificate
_certificado = CertificateSelect()

s_retorno_certificado is string="" // s_retorno certificate // certificat s_retorn
verifica_certificado()  // check certificate // chèque certificat
IF s_retorno_certificado="Certificado Valido" THEN
    dados_certificado()    // certificate data //données de certificat
END


    INTERNAL PROCEDURE verifica_certificado()
      IF _certificado..Name="" THEN
            s_retorno_certificado="Erro"
            Info(s_retorno_certificado)
            RETURN
      END
      IF _certificado..ValidForSignature=False THEN
          s_retorno_certificado="O Certificado selecionado não pode ser utilizado para gerar uma assinatura"
        Info(s_retorno_certificado)
        RETURN
      END
      SWITCH _certificado..Reliability
          CASE certificateOk:
              s_retorno_certificado="Certificado Valido"
          CASE certificateInvalid:
            s_retorno_certificado="Certificado invalidido"
        CASE certificateUntrusted:
            s_retorno_certificado="Certificado Nao Confiavel"
        CASE certificateExpired:
            s_retorno_certificado="Expirado Certificado"
      END   
       Info(s_retorno_certificado)         
         
    END

    INTERNAL PROCEDURE dados_certificado()
    EDT_DadosDoCertificado="" // Limpando edt do certificado // cleaning edt certificate // certificat edt nettoyage
    EDT_DadosDoCertificado+="=====NOVOS WINDEV 21 ===============" //Novos Windev 21//new windev 21//
    EDT_DadosDoCertificado+=CR+"Nome Completo Emissor [ "+_certificado.FullIssuer+" ] "
    EDT_DadosDoCertificado+=CR+"Numero Associado ["+_certificado.Empreinte+" ]" // Em Frances // Em Ingles (Fingerprint)
    EDT_DadosDoCertificado+=CR+"-Objeto   [ "+_certificado.objet+" ]"  // Em Frances // Em Ingles (  object )
    EDT_DadosDoCertificado+=CR+"===== Já tinha Windev 20  ==============="
    EDT_DadosDoCertificado+=CR+"Nome Resumido  [ "+_certificado.Name+" ]"
    EDT_DadosDoCertificado+=CR+"Inicio Validade  [ "+_certificado.StartValidityDate+" ]"
    EDT_DadosDoCertificado+=CR+"Final Validade  [ "+_certificado.EndValidityDate+" ]"
    EDT_DadosDoCertificado+=CR+"Issuer- Emissora  [ "+_certificado.Issuer+" ]"
    EDT_DadosDoCertificado+=CR+"Reliability-Confianca  [ "+_certificado.Reliability+" ]"
    EDT_DadosDoCertificado+=CR+"Serial Numero  [ "+_certificado.SerialNumber+" ]"
    EDT_DadosDoCertificado+=CR+"Certificado Valido  [ "+_certificado.ValidForSignature+" ]"
    EDT_DadosDoCertificado+=CR+"Subject   [ "+_certificado.Subject+" ]"
    EDT_DadosDoCertificado+=CR+"Thumprint - Impressão Digital  [ "+_certificado.ThumbPrint+" ]"
    EDT_DadosDoCertificado+=CR+"======================================"
   
    END
    
x

y//Frances
//Selecionar o Certificado //Select the certificate //Spelectionnez le certificat
//Pegados Dados Do Certificado //taking certificate dice //Prenant certificat dice

_certificado est un Certificat
_certificado = CertificatSélecteur()

s_retorno_certificado est chaîne="" // s_retorno certificate // certificat s_retorno

verifica_certificado() // check certificate // chèque certificat
SI s_retorno_certificado="Certificado Valido" ALORS
    dados_certificado()     // certificate data //données de certificat
FIN


    PROCEDURE INTERNE verifica_certificado()
      SI _certificado..Nom="" ALORS
            s_retorno_certificado="Erro"
            Info(s_retorno_certificado)
            RETOUR
      FIN
      SI _certificado..ValidePourSignature=Faux ALORS
          s_retorno_certificado="O Certificado selecionado não pode ser utilizado para gerar uma assinatura"
        Info(s_retorno_certificado)
        RETOUR
      FIN
      SELON _certificado..Fiabilité
          CAS certificatOk:
              s_retorno_certificado="Certificado Valido"
          CAS certificatInvalide:
            s_retorno_certificado="Certificado invalidido"
        CAS certificatNonFiable:
            s_retorno_certificado="Certificado Nao Confiavel"
        CAS certificatExpiré:
            s_retorno_certificado="Expirado Certificado"
      FIN   
       Info(s_retorno_certificado)         
         
    FIN

    PROCEDURE INTERNE dados_certificado()
    EDT_DadosDoCertificado="" // Limpando edt do certificado // cleaning edt certificate // certificat edt nettoyage
    EDT_DadosDoCertificado+="=====NOVOS WINDEV 21 ===============" //Novos Windev 21//new windev 21//
    EDT_DadosDoCertificado+=RC+"Nome Completo Emissor [ "+_certificado.EmetteurComplet+" ] "
    EDT_DadosDoCertificado+=RC+"Numero Associado ["+_certificado.Empreinte+" ]" // Em Frances // Em Ingles (Fingerprint)
    EDT_DadosDoCertificado+=RC+"-Objeto   [ "+_certificado.objet+" ]"  // Em Frances // Em Ingles (  object )
    EDT_DadosDoCertificado+=RC+"===== Já tinha Windev 20  ==============="
    EDT_DadosDoCertificado+=RC+"Nome Resumido  [ "+_certificado.Nom+" ]"
    EDT_DadosDoCertificado+=RC+"Inicio Validade  [ "+_certificado.DateValiditéDébut+" ]"
    EDT_DadosDoCertificado+=RC+"Final Validade  [ "+_certificado.DateValiditéFin+" ]"
    EDT_DadosDoCertificado+=RC+"Issuer- Emissora  [ "+_certificado.Emetteur+" ]"
    EDT_DadosDoCertificado+=RC+"Reliability-Confianca  [ "+_certificado.Fiabilité+" ]"
    EDT_DadosDoCertificado+=RC+"Serial Numero  [ "+_certificado.NuméroSérie+" ]"
    EDT_DadosDoCertificado+=RC+"Certificado Valido  [ "+_certificado.ValidePourSignature+" ]"
    EDT_DadosDoCertificado+=RC+"Subject   [ "+_certificado.objet+" ]"
    EDT_DadosDoCertificado+=RC+"Thumprint - Impressão Digital  [ "+_certificado.Empreinte+" ]"
    EDT_DadosDoCertificado+=RC+"======================================"
   
    FIN


y
//Blog com Video e Exemplo
http://windevdesenvolvimento.blogspot.com.br/2016/06/curso-windev-certificado-003-ver-se.html
https://www.youtube.com/watch?v=kE0T04bbxz4   


/Selecionar o Certificado //Select the certificate //Spelectionnez le certificat
//Pegados Dados Do Certificado //taking certificate dice //Prenant certificat dice

_certificado is Certificate
_certificado = CertificateSelect()

s_retorno_certificado is string=""

verifica_certificado()
IF s_retorno_certificado="Certificado Valido" THEN
    dados_certificado()   
END




    INTERNAL PROCEDURE verifica_certificado()
      IF _certificado..Name="" THEN
            s_retorno_certificado="Erro"
            Info(s_retorno_certificado)
            RETURN
      END
      IF _certificado..ValidForSignature=False THEN
          s_retorno_certificado="O Certificado selecionado não pode ser utilizado para gerar uma assinatura"
        Info(s_retorno_certificado)
        RETURN
      END
      SWITCH _certificado..Reliability
          CASE certificateOk:
              s_retorno_certificado="Certificado Valido"
          CASE certificateInvalid:
            s_retorno_certificado="Certificado invalidido"
        CASE certificateUntrusted:
            s_retorno_certificado="Certificado Nao Confiavel"
        CASE certificateExpired:
            s_retorno_certificado="Expirado Certificado"
      END   
       Info(s_retorno_certificado)         
         
    END




    INTERNAL PROCEDURE dados_certificado()
    EDT_DadosDoCertificado="" // Limpando edt do certificado // cleaning edt certificate // certificat edt nettoyage
    EDT_DadosDoCertificado+="=====NOVOS WINDEV 21 ===============" //Novos Windev 21//new windev 21//
    EDT_DadosDoCertificado+=CR+"Nome Completo Emissor [ "+_certificado.FullIssuer+" ] "
    EDT_DadosDoCertificado+=CR+"Numero Associado ["+_certificado.Empreinte+" ]" // Em Frances // Em Ingles (Fingerprint)
    EDT_DadosDoCertificado+=CR+"-Objeto   [ "+_certificado.objet+" ]"  // Em Frances // Em Ingles (  object )
    EDT_DadosDoCertificado+=CR+"===== Já tinha Windev 20  ==============="
    EDT_DadosDoCertificado+=CR+"Nome Resumido  [ "+_certificado.Name+" ]"
    EDT_DadosDoCertificado+=CR+"Inicio Validade  [ "+_certificado.StartValidityDate+" ]"
    EDT_DadosDoCertificado+=CR+"Final Validade  [ "+_certificado.EndValidityDate+" ]"
    EDT_DadosDoCertificado+=CR+"Issuer- Emissora  [ "+_certificado.Issuer+" ]"
    EDT_DadosDoCertificado+=CR+"Reliability-Confianca  [ "+_certificado.Reliability+" ]"
    EDT_DadosDoCertificado+=CR+"Serial Numero  [ "+_certificado.SerialNumber+" ]"
    EDT_DadosDoCertificado+=CR+"Certificado Valido  [ "+_certificado.ValidForSignature+" ]"
    EDT_DadosDoCertificado+=CR+"Subject   [ "+_certificado.Subject+" ]"
    EDT_DadosDoCertificado+=CR+"Thumprint - Impressão Digital  [ "+_certificado.ThumbPrint+" ]"
    EDT_DadosDoCertificado+=CR+"======================================"
   
    END






















quinta-feira, 16 de junho de 2016

Assinar XML com certificado Digital



Forum.pcsoft.fr/fr-FR/pcsoft.br.windev/1253-assinar-xml-com-certificado-digital/read.awp



Aqui deixo para voces usando como assinar um xml usando certificado digital. em base ao exemplo do Vilani. 

Agradecimentos a @JorgeMatos - PT e @mpDani - MX

Codigo do botao

sXmlstring , sMlfirmado is string
sXmlstring = fLoadText(fExeDir()+"\arquivo.xml",foUnicode)
sMlfirmado = AssinarXML(sXmlstring)

fSaveText(fExeDir()+"\arquivoAssinado.xml",sMlfirmado)



Procedure

Procedure AssinarXML(xmlString is string)
s_IssuerName, s_SerialNumber are strings

X509Cert is X509Certificate2("certificado.pfx","SenhaCertificado")

// Cria um novo XML.
Doc is System.Xml.XmlDocument;

Doc.LoadXml(xmlString)

// cria um objeto xml assinado
VrSignedXml is SignedXml(Doc) //= SignedXml(doc);

// adiciona a chave do certificado 
VrSignedXml.SigningKey = X509Cert.PrivateKey

//Criar um Referenceobjeto que descreve o que assinar.Para assinar o documento inteiro, defina aUripropriedade"".
Reference is Reference();
Reference.set_Uri("");
//Reference.set_Uri("Soap Body");


// Adicione umXmlDsigEnvelopedSignatureTransformdo objeto para oReferenceobjeto.Uma transformação permite que o 
// verificador representar os dados XML da maneira idênticas que o signatário usado.Dados XML podem ser representados 
// de diversas maneiras, essa etapa é vital para verificação.
Env is XmlDsigEnvelopedSignatureTransform();
Reference.AddTransform(Env);

// adiciona a referencia no xml assinado
VrSignedXml.AddReference(Reference)

// Cria a chave
VrkeyInfo is KeyInfo 
// carrega o certificado em um keyinfox509 e adiciona ao keyinfo
VrkeyInfo.AddClause(new KeyInfoX509Data(X509Cert))

// Obter IssuerName e SerialNumber
kdata is KeyInfoX509Data(X509Cert)
s_IssuerName = X509Cert.IssuerName.ToString()
s_SerialNumber = X509Cert.SerialNumber
kdata.AddIssuerSerial(s_IssuerName, s_SerialNumber)
VrkeyInfo.AddClause(kdata)

// adiciona o keyinfo ao xml assinado
VrSignedXml.keyInfo = VrkeyInfo

VrSignedXml.ComputeSignature()

// busca a representacao XML da assinatura e salva no XML
xmlDigitalSignature is System.Xml.XmlElement dynamic = VrSignedXml.GetXml()

// adiciona a assinatura no documento
Doc.DocumentElement.AppendChild(Doc.ImportNode(xmlDigitalSignature, True))


//devolve o documento assinado
RESULT Doc.get_InnerXml()










WinDev - A PCSOFT ESTA COM UMA PROMOÇÃO INCRÍVEL ESSE MÊS DE JUNHO



WxInformatica








Documentação em Português
    http://www.pcsoft-windev-webdev.com/WD20brochure_PT.pdf
   
http://www.pcsoft-windev-webdev.com/WD20brochure_PT-simple.pdf
   
http://www.windev.com/windev/ebook/pt/index.html



LINKS PARA DOWNLOAD:

http://www.pcsoft.fr/st/telec/index.html




WINDEV, um poderoso IDE que permite criar projetos estratégicos com facilidade e rapidez. Permite a integração completa, a facilidade lendária, sua tecnologia avançada, para ter sucesso mais rápido projetos maiores no Windows, Linux, .NET, Java, e muito mais! (compatível Web, Mobile, Android, iOS ...)
Através de um desenvolvimento 10 vezes mais rápido, ambiente totalmente integrado, as suas equipas podem alcançar todos os objectivos que lhes foram definidos. Prazos e orçamentos respeitados. 
O WINDEV permite facilmente o desenvolvimento de novos aplicativos partilhados (Windows,Internet, Intranet...) aumentando-lhe a capacidade de resposta e rentabilidade da empresa. 
O WINDEV é uma ferramenta CASE totalmente integrada , desde a concepção à manutenção o que torna o desenvolvimento mais fácil e confiável. 
Com WINDEV, usar serviços da Web é fácil: .NET, J2EE. WINDEV gera automaticamente relatórios em PDF , com códigos de barras, fundo, etc. 
O WINDEV é uma ferramenta CASE completamente aberta a terceiras linguagens  3GL e 4GL:Java, C + +, C #, VB, Cobol, Fortran, etc., comunica com todas as base de dados do mercado: 
Oracle, MySQL, SQLServer, DB2, AS/400, Access, etc.
O WINDEV é uma ferramenta CASE totalmente aberta à interoperabilidade : XML, J2EE, NET, componentes, Word, Excel, Palm,ActiveX, TWAIN, Sockets,. DLL ...
O WINDEV é o ambiente ideal para desenvolver rapidamente aplicações poderosas e confiáveis aplicadas a qualquer área e com um ROI imediato (formação rápida, sem"royalties"), Management (CRM, ERP , EAI, EDI, VPC, KM, GRH,...), Industrial, Automação, Educação, Multimídia, Medicina, Espaço,Finanças,... Suporte técnico gratuito, apenas o custo do telefonema é seu.



    WINDEV 21 (FR)
    http://www.pcsoft.fr/st/telec/windev21/windev21_39d.htm

    Documentação em Português
    http://www.pcsoft-windev-webdev.com/WD20brochure_PT.pdf
   
http://www.pcsoft-windev-webdev.com/WD20brochure_PT-simple.pdf
   
http://www.windev.com/windev/ebook/pt/index.html







WebDev: o ambiente de desenvolvimento completo WYSIWYG para Internet e sites de Intranet. Permite perceber rapidamente os sites da Internet e intranet e aplicativos (Web & SaaS) Responsive Web Design. Webdev permite perceber rapidamente os sites da Internet e intranet e aplicativos (Web & SaaS) que gerenciam dados e processos

Responsive Web design.
     
WebDev é um ambiente de desenvolvimento integrado para o desenvolvimento de aplicações Web 2.0.
O Ajax em WebDev é nativo, basta um clique.
O WebDev permite que suas equipas desenvolvam sites de sonho, assim como todas as transações que pretenda.
As Suas equipas vão desenvolver até 10 vezes mais rápido.
Os Seus sites serão visíveis a partir de qualquer máquina, usando qualquer navegador, em qualquer sistema: Windows, Unix, Linux, MacOS,...
WebDev pode conectar-se a qualquer basede dados; HyperFileSQL, Oracle, SQL Server, AS/400, DB2, MySQL ...
O WebDev é compatível com WinDev.
Suporte técnico gratuito ,apenas o custo do telefonema é seu.
Com WebDev desenvolva sites interativos (estáticos, semi-dinâmicos e dinâmicos) rapidamente!
    
    WEBDEV 21 (FR)
    http://www.pcsoft.fr/st/telec/webdev21/webdev21_39d.htm





WINDEV MOBILE: Permite-lhe criar aplicações poderosas para smartphones e tablets (Android, iOS, Windows Mobile 10, CE ...) em algumas horas bancos de dados a bordo ou remotas, GPS, códigos de barras, ...

Mobile, o mercado em constante convulsão, 

O mercado mobile está cada vez mais a vincar o seu dia-a-dia, não perca esta oportunidade de inovar e apresentar soluções profissionais aos seus Clientes.

ANDROID, (sistema operativo da Google), está disponível em alguns dos novos dispositivos móveis de última geração, mas a boa notícia é que as soluções para o ANDROID podem ser facilmente desenvolvidas com WinDev Mobile.          

WinDev Mobile: desenvolver aplicações para PocketPC's e Smartphones (Android, Windows Mobile, iOS e WinDows 10) torna-se fácil e rápido.

Desenvolvendo 10 vezes mais rápido e com a total integração de ambientes, as suas equipas de desenvolvimento podem com facilidade atingir os objectivos a que foram propostos e as datas limites e orçamentos serão sempre respeitados.

O WinDev Mobile é um ambiente integrado de desenvolvimento disponível para Pocket PC, Smartphone, Pocket Phone e terminais industriais.

O WinDev Mobile vem com todas as ferramentas que necessita para gerir por completo o ciclo de vida das suas Aplicações: Editor de análises Merise e UML, Gestor de projectos, Gestor de código fonte,gerador do interface gráfico, linguagem de 5ª geração, debug on-line, gerador de documentação do projecto,...
O WinDev Mobile é compatível com o WinDev e WebDev



    
    WINDEV MOBILE 21 (FR)
    http://www.pcsoft.fr/st/telec/windevmobile21/windevmobile21_39d.htm

    Documentação em Português
   http://www.pcsoft-windev-webdev.com/WM20brochure_PT.pdf
   
http://www.pcsoft-windev-webdev.com/WM20brochure_PT-simple.pdf
   
http://www.windev.com/windevmobile/ebook/pt/index.html


   


HFSQL é ao mesmo tempo muito poderoso, muito rápido e muito confiável.
HFSQL é usada em milhões de sites em todo o mundo.
HFSQL funciona em Windows e Linux, em Mobiles qualquer tamanho e qualquer tipo redes, e automaticamente lida com centenas de acessos simultâneos. Ilimitado divulgação de motor HFSQL é livre com seus aplicativos WINDEV. Quando TDF 2015 HFSQL manipulações são executadas em um banco de dados de 21 bilhões de linhas. 
À procura de um banco de dados SQL confiável, rápido e gratuito?
HFSQL é para você!
HFSQL é um ambientes de banco de dados SQL integradas para WINDEV, Webdev e WINDEV Mobile. HFSQL existe versão local, rede, Cluster, cliente / servidor (Windows e Linux), Cloud e Mobile.

HFSQL 21(FR)
    http://www.pcsoft.fr/st/telec/21/telechargement.php?PACK=wx21_39d/fr/WX210PACKHFSQLCS039b.exe





 O PCSCloud é um ambiente web para subir os projetos 
desenvolvidos com Webdev
Sites e Webservices. 
Maiores detalhes:
http://www.wxinformatica.com.br/p/comprar.html

Sommaire de la LST 104

Subscrevo a LST

Eu subscrevo

França metropolitana: embarques serão enviados em 12 de Maio de carta "Frequência". As entregas estão programadas semanas 20 e 21.
territórios ultramarinos e no estrangeiro: os embarques serão enviados a partir de 19 de maio a Correio Postal Prioridade. As entregas estão programadas semanas 21 e 22, dependendo do destino.

Recurso especial TDF TECH 2016:

Veja a lista de exemplos.






Exemplos:




Telemetria: Log usuários LEs
(WINDEV)


A partir da versão 210059 a gestão do usuário está se movendo na telemetria. Agora é possível ver as estatísticas para cada usuário de forma independente.
A nova função TélémétrieIdentifieUtilisateur exclui anonimização de dados para um personalizado!
localize:
• seus clientes, suas perspectivas, etc.
• áreas geográficas para o destino (zonas de captação)

(WINDEV)


O componente "Mapa Extensão" interna permite uma melhor exploração do campo WINDEV Card.
A atualização do componente "Extensão Map" permite polígonos gerenciamento, mapas isócronos (ou zonas de captação) e mapas de calor ( ou Heatmap).
Impulsionar suas formas Webdev com um "ímã do olho"!
(Webdev)


Ao submeter formulários da web, alguns campos são necessários, pode ser útil para indicar ao usuário da Internet os campos essenciais antes da validação, como e quando você digita. Aqui está um exemplo simples para destacar campos.
looper "infinito": Carregar
os dados sobre a procura

(Webdev)


Em uma lançadeira que é o de apresentar um grande número de linhas, pode valer a pena fazer um pouco aquando do carregamento, a pedido da Internet.
Android: exibindo um distintivo no ícone para a sua aplicação
(WINDEV MOBILE)


mensagens pendentes, novas notícias ... badges (ou pellets) Os ícones de aplicativos usados ​​para realçar a presença de novos conteúdos em iOS.
No Android, este recurso não é padrão, mas pode ser facilmente -se através de uma biblioteca externa.
Personalize o botão direito do mouse
em um arquivo no Windows

(WINDEV)


menus de contexto no Windows Explorer pode rapidamente manipular arquivos e diretórios. A coleção de procedimentos "COL_SHELL_ASSOCIATION" usadas para simplesmente adicionar menus e opções.
Este recurso é muito útil, por exemplo, para executar o processamento da sua aplicação (cheque, exportação, envie, backup, etc.).
o utilizador final move os objectos! exemplo "WD objetos gráficos"
(WINDEV)


A personalização da interface do usuário (PIU) é uma característica da versão 21 dos usuários populares como FAA.
WLanguage também permite que você gerencie facilmente esta funcionalidade de programação gerenciar e tão poucas linhas de código de interfaces gráficos complexos a serem implementadas em versões anteriores!
Ihm code-switching
(WINDEV, Webdev, WINDEV MOBILE)


A manutenção de um código é muitas vezes simplificado devido ao corte ideal este código.
Esta mudança de código também simplifica a transição de uma aplicação WINDEV para Webdev ou WINDEV Mobile.
Esta é uma primeira abordagem, simples e rápido para executar esta divisão.
Um serviço web para aplicativos em um único servidor log
(WINDEV, Webdev, WINDEV MOBILE)


Configurar registros em sua aplicação, é sempre útil.
Mas você pode recuperar e analisar facilmente, é melhor!
O grupo de exemplos "WD SuiviApplication" é um sistema chave na mão para centralizar registros de aplicações através de um serviço web dedicado e conectar-se a monitorização do robô.
VOCÊ SABIA?
(WINDEV, Webdev, WINDEV MOBILE)

• Obter o nome do campo no editor de
código
• Declarando membros da classe em 1 clique
• Acelerar a visualização de uma página com imagens para carregamento adiado
PERGUNTAS E RESPOSTAS
(WINDEV, Webdev, WINDEV MOBILE)
Dicas de programação e de utilização.



Maiores Informações:

adrianoboller@gmail.com

Skype: adrianoboller

Celular: (41) 9949 1800






Teste

Teste
teste