Olá pessoal, estava no trabalho precisando fazer um portal de produtos criados pelaempresa; fica mais fácil centralizar tudo em um portal. O usuário entra naintranet, loga apenas uma vez e abre os programas que quiser. Porém, bati acabeça na porta quando percebi que a maioria dos produtos são locais; isto é;funciona localmente na máquina do usuário e precisa ser instalado para o devidofuncionamento.

            Bati com acabeça na parede também por perceber que ainda existem programas feitos com alinguagem VB 6.0, Delphi, DOS e outros além de C#.NET.

 

Referências:

Ferramenta de desenvolvimento: Visual Studio .NET 2008

Linguagem: C#.NET

Linguagem Script: JavaScript

Framework 3.5



            Além das referênciasacima, o código pode ser feito em qualquer ferramenta do Visual Studio .NET,uma mais nova ou mais antiga sem problema. Isso serve também para o framework.

            Continuandoa história, estava com problemas, pois precisava passar usuário e senha paraque não precisasse logar novamente dentro do aplicativo. A idéia foi àseguinte: O usuário loga no portal e com isso todos os sistemas aparecem praele de acordo com as permissões. Ao clicar em um programa, o software local aparececom a tela correta e logado.

            Lembrandoque cada software precisa de usuário e senha. Ficou bem complicado fazer comque esse portal funcionasse, porém a empresa só usa IE (Internet Explorer);ficou mais específico. É muito importante fazer software web que funcione emtodos os browsers, mas já que a empresa usa apenas IE, aproveitei!

            Tive quefazer uma alteração nos aplicativos para receber usuário e senha, ou seja, o arquivo.exerecebe usuário e senha criptografados para logar automaticamente.

 

 

Na prática

            Pesquisandona internet e estudando sobre a linguagem C#.NET, me deparei que o portal ficana intranet e os aplicativos ficam localmente. Portanto, não posso usar o Process.Startou qualquer outro comando do C#.NET, porque não existe software instalado noservidor e sim na máquina. Tive que passar para a linguagem script, VBScript ouJavaScript. Achei um código que verifica um caminho específico via javascript efunciona apenas no browser IE (Internet Explorer). Code 1.1

 

 

<script type="text/javascript" language="javascript">

        function AbreAplicacao(caminho, tipo, usuario, senha) {

            var fso = new ActiveXObject('Scripting.FileSystemObject');

            var WshShell = new ActiveXObject('WScript.Shell');

            if (fso.FileExists(caminho))

                WshShell.Exec(caminho+' '+tipo+' ' + usuario+ ' ' +senha);

            else

                alert('A aplicação não está instalada neste computador.')

        }

    </script>

 

Referência: Code 1.1

 

            Em resumo,o código usa ActiveX e acessa o FileSystemObject. Depois disso, uso oWScript.Shelll, se no FileSystemObject existir o arquivo que mandei comocaminho na função, ele chama passando os parâmetros, caso contrário exibe umalerta na tela falando que a aplicação não está instalada.

            No primeiromomento, chamando a função passando os dados via javascript funcionouperfeitamente. Agora o desafio seria executar o mesmo dado pela linguagemC#.NET na plataforma ASP.NET.

            Tentei detudo, mas não estava dando certo. Resumindo, o que deu certo foi criar um Label<asp:label...> dentro da página chamando a função javascript. (Code 1.2)

 

 

//colocar no final da página

<asp:Label ID="lblScript" runat="server"></asp:Label>

 

                    string comando = @"<script>AbreAplicacao('C:\\Caminho da Aplicacao\\Arquivo.exe','DIGITACAO','usuario','senha')</script>";

                    lblScript.Text = comando;

 

Referência: Code 1.2

 

            Assim,mesmo a página web estando no servidor; chama uma aplicação que está localmentena máquina do usuário. Resolveu o meu problema perfeitamente. É lógico queexiste uma regra específica para o tipo da aplicação que não mostrei aqui mas,o importante é que, você pode usar o código explicado acima para chamaraplicativos dentro do seu computador.

            Lembrandoque só funciona se o site tiver HTTPS e no Internet Explorer.

Fico por aqui, espero que tenha gostado.

 

Mauricio Junior

www.mauriciojunior.org

blog.mauriciojunior.org