win.Execute(); //Chamando arquivos ou programas do seu programa Prisma

Iniciado por adalberto, Outubro 14, 2015, 05:05:31 PM

tópico anterior - próximo tópico

adalberto

**Antes de mais nada vá à página de downloads e baixe a atualização mais recente de Prisma. (12/10/2015 ou superior).**
http://linguagemprisma.net/ccount/click.php?id=baixar_prisma_menu

Obs. outra grande mudança é que a biblioteca win foi desmembrada do interpretador prisma.exe devido a questões de portabilidade, facilidade de compilação, e economia de memória caso não precise usá-la.

Basta incluí-la no seu programa antes de usar suas funções: 

inclua'win'; //só isso!


win.Execute(...)  é ótima e muito poderosa. Pense naquela situação em que você quer que seu aplicativo chame um outro programa executando-o em um processo diferente. Por exemplo, abrir uma página da internet no navegador padrão do sistema, executar um comando do sistema, ou abrir um documento no aplicativo padrão etc.

Vamos lá então!

sintaxe:    win.Execute( id , modo, alvo , param , diretorio , visual );

em que:

id = nulo ou o hwnd de uma janela.

modo - é uma string que indica a forma de chamar o alvo. Veja abaixo as opções de modos:

    ""  ou nulo  - string vazia ou nulo -  apenas chama o alvo.
    "edit" - chama um arquivo de texto para ser editado em seu programa padrão, ex. *.prisma abre com prismacod
    "open" - chama qualquer documento e o abre com seu programa padrão. Menos os da modalidade "edit"
    "runas" - executa um programa *.exe pedindo permissão de privilégio administrador.
    "explore" - abre o explorador de arquivos, na pasta indicada em alvo.
    "find" - abre uma página de pesquisa de arquivos na pasta indicada em alvo.
    "print" - imprime o arquivo indicado em alvo.

alvo = é o arquivo, endereço, ou diretório a ser executado. (Lembre-se que "." significa diretório atual)

param = são os parâmetros passados para o alvo. Deixe espaço entre os parâmetros. Ex.: " -o file.out file.in -std=c99 "

diretorio = string que indica a pasta onde será o ambiente de execução. Geralmente na mesma pasta do arquivo a ser aberto.

visual = Variável predefinida em win que indica se o arquivo ou programa será aberto minimizado, maximizado, normal, oculto etc. Sempre inicia com sw_ (Show_Window); Eis algumas delas a seguir:

    sw_minimize , sw_mostre , sw_maximize , sw_oculte;

Vamos aos exemplos agora:


inclua'win';
// a partir da versão Prisma-1.0.94 win é separada de prisma
//sendo necessário incluí-la.

//chamando a calculadora no diretório C:\:

win.poe(conv_w'Vamos abrir a calculadora a partir do diretório C:\\\n\n clique ok');
win.Execute(nulo , 'open' , 'calc' , '' , 'C:\\' );
//note que foi omitido o último parâmetro, o padrão é sw_mostre(mostra a janela normal);

win.poe(conv_w[[Abrindo a pasta C:\Prisma\1.0\bin\:

clique ok]]);


//abrindo a pasta C:\Prisma\1.0\bin\:
win.Execute(nulo,'explore' , 'C:\\Prisma\\1.0\\bin\\', '' , '', sw_maximize );

win.poe(conv_w[[abrindo um site com navegador padrão:

clique ok]]);
//abrindo um site com navegador padrão:
win.Execute(nulo,nulo,'www.linguagemprisma.net/blog' , '', '' , sw_maximize );
//note que o segundo parâmetro foi omitido, nulo no lugar de algum valor, o padrão é 'open' (abrir);


win.poe(conv_w[[
executando um programa com parâmetros:

clique ok]]);
//executando um programa com parametros:
win.Execute(nulo, //hwnd de uma janela
            '' , //modo; aqui foi omitido com aspas vazias, o padrão é abrir o alvo.
            'C:\\Prisma\\1.0\\bin\\prismacod.pbrexe' , //arquivo ou programa a ser aberto(alvo)
            'teste.prisma' , //parametros
            '.' ,           //diretório de execução (ponto indica a pasta atual)
            sw_maximize // visual => maximizado
);


win.poe(conv_w[[
abrindo o wordpad com pedido de permissão de privilégios

clique ok]]);

//abrindo o wordpad com pedido de permissão de privilégios
win.Execute( nulo , 'runas', 'wordpad' , '' , '.' , sw_maximize );


win.poe(conv_w[[


    P   R   I   S   M   A
       
  .............FIM.................

   Clique ok para sair!

       ]]);