none
Como posso acessar um sistema em outra linguagem e executar uma ação. RRS feed

  • Pergunta

  • Olá,

    preciso dar uma funcionalidade no meu programa c# que acesse um sistema escrito em delphi e execute uma funcionalidade do mesmo.

    Como posso fazer isto?

    Existe alguma espécie de macro que eu possa automatizar esta ação? abrir um menu, entrar em uma tela e mandar executar um botão?

    É possível?

    Grato.

    terça-feira, 8 de fevereiro de 2011 11:47

Respostas

  • Rafael,

    Tem duas saídas pra esse problema:

    1) Encapsular a funcionalidade em uma DLL com interface C e acessar do .NET

    2) Trabalhar com API do Windows para fazer essa navegação.

    Eu não sei como fazer o 2 diretamente, mas acredito que seja possível, pegar o handle da janela e simular ações de usuário. Não deve ser lá mto simples, tampouco seguro. Precisar ter um bom conhecimento da API do Windows.

    A API do Windows, por ser em C, pode ser acessada através do .Net, através do P/Invoke.

    Aqui tem alguns exemplos de como acessar DLL's não gerenciadas. Se a interface da DLL delphi for C, dá para acessar desta forma também.

     

    http://ericlemes.com/2010/06/23/dotnet-interop-pt/

    http://ericlemes.com/2010/07/02/dotnet-interop-pt2/

     

    Abraço,

    Eric

    terça-feira, 8 de fevereiro de 2011 15:19

Todas as Respostas

  • Bom dia rafael, que eu conheça, você não consegue fazer isso diretamente. Acredito que você deva criar uma interface de serviço em uma aplicação para ser acessada pela outra. Serão duas aplicações que rodarão na mesma máquina? Acho que socket pode ser uma boa opção, mais vale dar uma pesquisada sobre interoperabilidade de serviços na mesma máquina.

    terça-feira, 8 de fevereiro de 2011 13:04
  • hmm.

    Caso:

    Existe um sistema utilizado por toda empresa, que possui uma funcionalidade de gerar um arquivo X.

    A Empresa não possui o código deste sistema, existe possibilidade de fazer um programa que acesse este sistema e execute tal operação?

     

    terça-feira, 8 de fevereiro de 2011 13:26
  • Rafael,

    Tem duas saídas pra esse problema:

    1) Encapsular a funcionalidade em uma DLL com interface C e acessar do .NET

    2) Trabalhar com API do Windows para fazer essa navegação.

    Eu não sei como fazer o 2 diretamente, mas acredito que seja possível, pegar o handle da janela e simular ações de usuário. Não deve ser lá mto simples, tampouco seguro. Precisar ter um bom conhecimento da API do Windows.

    A API do Windows, por ser em C, pode ser acessada através do .Net, através do P/Invoke.

    Aqui tem alguns exemplos de como acessar DLL's não gerenciadas. Se a interface da DLL delphi for C, dá para acessar desta forma também.

     

    http://ericlemes.com/2010/06/23/dotnet-interop-pt/

    http://ericlemes.com/2010/07/02/dotnet-interop-pt2/

     

    Abraço,

    Eric

    terça-feira, 8 de fevereiro de 2011 15:19