Página 1 de 1

MYRUN com suporte para Windows 98

Enviado: 28 Set 2007 12:13
por rossine
Olá a todos,

Para rodar o "MYRUN" no windows 98, o WSH tem que estar instalado.
Vejam o exemplo abaixo que ensina como instalar ele.

Código: Selecionar todos

* Este programa tem como função exemplificar o uso da função "myrun" sobre o windows 98
* O programa abaixo (em meus testes), executou sem problemas e sem abrir aquela janelinha
* preta.

#include "fivewin.ch"

*************
function MAIN( cComando )
*************

if pcount() > 0
   && Lembrete: Para se testar este programa passando um parametro, faça assim:
   &&           Ex: tesmyrun "arj a teste *.*" <- Observe que tem que ter as "aspas" no
   &&                                          INICIO e no FIM, pois senão o programa 
   &&                                          entende que o parametro passado é somente
   &&                                          a primeira palavra, ou seja, "arj"
   msgstop( myrun( cComando,,, .T. ) )
else
   && Via código já tem que ter as aspas.
   msgstop( myrun( "dir > teste.txt",,, .T. ) )
endif

return NIL

**************
function MYRUN( cComan, nStyle, lWait, lShowR )
**************

local oShell, nRet

nStyle := iif( valtype( nStyle ) != "N",   0, nStyle )
lWait  := iif( ValType( lWait )  != "L", .T., lWait )
lShowR := iif( ValType( lShowR ) != "L", .F., lShowR )
**cComan := iif( !GetEnv( "OS" ) == "Windows_NT", "start " + cComan, cComan )

if !IsActiveX( "WScript.Shell" )
   if winexec( "REGSVR32 " + GetSysDir() + "\wshom.ocx /s" ) = 0
      msgstop( "Não foi possível instalar o serviço <Windows Scripting> !!!" + CRLF + ;
               "Para instalar este serviço, é necessário o arquivo <wshom.ocx>", "Atenção" )
      if os_iswin98()
         msginfo( "Faça o seguinte:" + CRLF + ;
                  "" + CRLF + ;
                  "Vá em:" + CRLF + ;
                  "- Configurações" + CRLF + ;
                  "- Painel de controle" + CRLF + ;
                  "- Adicionar/remover programas" + CRLF + ;
                  "- Instalação do windows" + CRLF + ;
                  "- Acessórios" + CRLF + ;
                  "- Detalhes" + CRLF + ;
                  "- Marque a opção: [X] Windows scripting Host" + CRLF + ;
                  "- Execute este programa novamente", "Dica para instalar o <Windows Scripting>" )
      endif
      return .F.
   endif
endif

try
   oShell := CreateObject( "WScript.Shell" ) 
catch
   msgstop( "<WScript.Shell> não disponível. [" + Ole2TxtError()+ "]" )
   return .F.
end

nRet := oShell:Run( "%comspec% /c " + cComan, nStyle, lWait )

if lShowR
   msgstop( "Retorno da função MYRUN() para o Comando [" + cComan + "]: " + ltrim(Str( nRet )) )
endif

oShell := NIL
 
return iif( nRet = 0, .T., .F. )
Veja se funciona para vocês. Se notarem algum problema me digam ok ? :xau

Abraços,

Rossine.