WScript.Shell

75 views
Skip to first unread message

Pablo Barros

unread,
May 27, 2005, 10:37:05 AM5/27/05
to arqhp
Estou fazendo uma interface para carregar os jogos e programas da lan
house (função do programa de controle dos computadores que permite uma
página no lugar do desktop e que usa apenas o IE).

O problema é justamente de não estar conseguindo abrir alguns
programas, mesmo usando a função WScript.Shell que um colega aqui da
lista indicou.

Só que alguns programas simplesmente não abre...

Alguém já fez algo semelhante e conseguiu?! Porque será que este
código permite abrir um word da vida e não um "Alien x Predator 2"?

Pablo Barros
Totalmente desesperado de ter feito a interface e ver tudo indo pelo
ralo por falta de conhecimento.

Leonardo Faria Coelho

unread,
May 27, 2005, 10:56:17 AM5/27/05
to ar...@googlegroups.com
Mas que erro que dá??

Não sei se ajuda, mas você pode tentar fazer com php também, tipo assim:
<a href="carregajogo.php?id=starwars">

e seu arquivo php assim:
<?
if (id == "starwars"){
exec ("c://pasta do jogo");
}
else(id == "pacman") {
exec ("c....");
}
?>
a função exec() permite que você execute um aplicativo no micro do cliente.
--
Leonardo Faria Coelho
Programador de interfaces
http://www.leonardofaria.net
http://www.f8comunicacao.com
http://www.fuananet.com
37 32221795 | 88065919

Pablo Barros

unread,
May 27, 2005, 11:20:07 AM5/27/05
to ar...@googlegroups.com
O erro é simplesmente dar uma piscada de preto no monitor, como se
fosse carregar o programa, não não carrega.
Noutro caso, diz que não foi possível carregar o AOM.exe (Age of
Mythology) sendo que se eu clico no atalho no desktop funciona
perfeitamente. Então o problema parece residir na interface do IE.

Bem, essa interface será usada em cada estação da lan house. Estou
instalando-a em cada máquina e colocando os htmls também em cada
máquina. O que tenho até agora é html + js + css.

Pelo que entendi aquele WScript.Shell permite abrir executáveis (e
outros arquivos) pelo IE (sim, só pode ser IE). Essa solução via PHP
(que não manjo nada) permite fazer o mesmo? Se puder, e funcionar,
ótimo.

Mas entenda que hoje consigo abrir alguns jogos, outros não. Queria
saber se existe alguma restrição nesta função. Talvez eu tenha que
mudar algo no registro da minha máquina, sei lá. Se for esse o caso,
ótimo...

Leonardo Faria Coelho

unread,
May 27, 2005, 12:23:48 PM5/27/05
to ar...@googlegroups.com
Talvez seria algum problema de compatibilidade?
Você copia exatamente a linha de comando de execução do programa?
Coloca no ar para, sei lá, o pessoal dar uma analisada.

On 5/27/05, Pablo Barros <pablo...@gmail.com> wrote:
>

Rafael Mendes H. Perez

unread,
May 27, 2005, 12:52:07 PM5/27/05
to ar...@googlegroups.com
Você falou que funciona clicando no atalho -- ja conferiu se esse atalho
contém parametros pro jogo? Alguns executáveis só abrem com eles.

[]s
Rafael

João Vagner

unread,
May 27, 2005, 1:58:05 PM5/27/05
to ar...@googlegroups.com
Olá Galera.

Não sei se alguem aqui, ja usou o php localmente para testar funcionalidades da função mail(), enviar email com ela, sem precisar enviar pro servidor tal e coisa para testar.

Eu tentei configurar, colocando o smtp do meu site, smtp.joaovagner.com.br, mas o servidor requer autenticação, e a função mail() por ser limitada não achei nada sobre autenticação segura no manual, nem em nenhum lugar.

Já andei procurando no google sobre envio de email autenticado, ou qualquer forma de envio de email localmente pelo php (localhost, 127.0.0.1, 192.168.0.4), e não obtive a resposta.

Não quero utilzar classes para enviar email, basta a mail(); .

Alguem ja teve uma experiência dessas, que poderia me ajudar?

Vou colocar a configuração do php.ini abaixo, e vejam se cometi algum erro:

  [mail function]
  ; For Win32 only.
  SMTP = mail.joaovagner.com.br
  smtp_port = 25
  
  ; For Win32 only.
  sendmail_from = jo...@joaovagner.com.br
  
  ; For Unix only.  You may supply arguments as well (default: "sendmail -t
 -i").
  ;sendmail_path = sendmail -t -i
  
  ; Force the addition of the specified parameters to be passed as extra
 parameters
  ; to the sendmail binary. These parameters will always replace the value of
  ; the 5th parameter to mail(), even in safe mode.
  ;mail.force_extra_parameters =


o erro retornado é:

Warrning: mail() [function.mail]: SMTP server response: 553 sorry, that
 domain isn't in my list of allowed rcpthosts (#5.7.1) in
 c:\apache\htdocs\novo\abrir.php on line 98

A versão do meu php é a 5.

Obrigado desde já ;)

Abraços

Pablo Barros

unread,
May 27, 2005, 4:53:39 PM5/27/05
to ar...@googlegroups.com
Tem jogo que tem parâmetro sim (Counter Strike e Alien x Pedrator 2),
o resto não.
Esses que têm parâmetro vou contornar o erro com um .bat chamando o
arquivo e passando o parâmetro.

Pablo Barros

unread,
May 27, 2005, 5:00:24 PM5/27/05
to ar...@googlegroups.com
Será que flash tem jeito? Pois poderia fazer um flash que ocupe toda a
área do navegador que por sua vez está ocupando todo o desktop. Mas
não manjo nada de flash, aprenderia pra fazer isso hehe.

Pablo Barros

unread,
May 27, 2005, 5:07:50 PM5/27/05
to ar...@googlegroups.com
Boa idéia. Mas como o negócio é bem específico (pois vai ser instalado
somente nos computadores da lan house) aqui vão as especificações para
rodar:
- IE 6 (não testem no FF hehe)
- Vai ser visto em fullscreen (o programa é que faz isso) e
desabilitei o botão direito na área de trabalho. Aqui está:
http://www.sixlanhouse.com.br/client/index.html

IMPORTANTE:
Pra ficar com visualização perfeita, baixe e instale essa fonte
(repito, como é um ambiente controlado, pude me dar ao luxo):
http://www.sixlanhouse.com.br/client/STAN0753.ttf

Quem quiser baixar pra poder editar os caminhos pra ver ele abrindo
algum jogo ou programa, aqui está o .zip:
http://www.sixlanhouse.com.br/client/station.zip (1,97Mb)

Maxwel Leite

unread,
May 27, 2005, 6:41:01 PM5/27/05
to ar...@googlegroups.com
Pablo Barros escreveu:
> Boa idéia. Mas como o negócio é bem específico (pois vai ser instalado
> somente nos computadores da lan house) aqui vão as especificações para
> rodar:
> - IE 6 (não testem no FF hehe)
> - Vai ser visto em fullscreen (o programa é que faz isso) e
> desabilitei o botão direito na área de trabalho. Aqui está:
> http://www.sixlanhouse.com.br/client/index.html
>
> IMPORTANTE:
> Pra ficar com visualização perfeita, baixe e instale essa fonte
> (repito, como é um ambiente controlado, pude me dar ao luxo):
> http://www.sixlanhouse.com.br/client/STAN0753.ttf
>
> Quem quiser baixar pra poder editar os caminhos pra ver ele abrindo
> algum jogo ou programa, aqui está o .zip:
> http://www.sixlanhouse.com.br/client/station.zip (1,97Mb)


Acho que esse lance pode ser feito no Firefox/Mozilla tb através da
extensão "mozex" <http://mozex.mozdev.org/>.

O artigo que mostra como configurar:
http://www.newsforge.com/article.pl?sid=04/10/12/1644203

Exemplo de como seria no arquivo "prefs.js" e criar um batch para
"filtrar" os comandos, por medida de segurança:

user_pref("mozex.universal.command", "filtro-exec.bat");
user_pref("mozex.universal.schemes", "exec");



Então era só por um link no HTML assim:
<a href="exec://nome-do=jogo-ou-programa">Jogo ou Programa tal</a>


--
Maxwel Leite
Running: Fedora Core 3 (kernel 2.6.11)




____________________________________________________
Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis! http://mail.yahoo.com.br

Vinicius Pinto

unread,
May 27, 2005, 7:13:24 PM5/27/05
to ar...@googlegroups.com

Pablo Barros

unread,
May 27, 2005, 7:26:54 PM5/27/05
to ar...@googlegroups.com
Mas infelizmente não pode ser via firefox. Aquilo que disponibilizei
pra vcs vai substituir a área de trabalho. Quem vai fazer isso é o
software de controle da lan house.
Tem que ser no IE mesmo.

João Vagner

unread,
May 27, 2005, 10:26:53 PM5/27/05
to ar...@googlegroups.com
O Link Não abriu Vinicius :(

----------------------
Vinicius Pinto escreveu:

Vinicius Pinto

unread,
May 27, 2005, 11:17:22 PM5/27/05
to ar...@googlegroups.com
Basicamente a função mail() não suporta envio de mensagens através de
servidores SMTP que requerem autenticação. A solução é enviar usando
sockets. Estou reproduzindo abaixo o código da função que está no link
que te passei. Teste e veja se funciona. Uma classe muito utilizada
também é a http://phpmailer.sourceforge.net/.


<?php
//new function

$to = "po...@example.com";
$nameto = "Who To";
$from = "po...@example.com";
$namefrom = "Who From";
$subject = "Hello World Again!";
$message = "World, Hello!"
authSendEmail($from, $namefrom, $to, $nameto, $subject, $message);
?>


<?php
/* * * * * * * * * * * * * * SEND EMAIL FUNCTIONS * * * * * * * * * * * * * */

//Authenticate Send - 21st March 2005
//This will send an email using auth smtp and output a log array
//logArray - connection,

function authSendEmail($from, $namefrom, $to, $nameto, $subject, $message)
{
//SMTP + SERVER DETAILS
/* * * * CONFIGURATION START * * * */
$smtpServer = "mail.server.com";
$port = "25";
$timeout = "30";
$username = "smtpusername";
$password = "smtppassword";
$localhost = "localhost";
$newLine = "\r\n";
/* * * * CONFIGURATION END * * * * */

//Connect to the host on the specified port
$smtpConnect = fsockopen($smtpServer, $port, $errno, $errstr, $timeout);
$smtpResponse = fgets($smtpConnect, 515);
if(empty($smtpConnect))
{
$output = "Failed to connect: $smtpResponse";
return $output;
}
else
{
$logArray['connection'] = "Connected: $smtpResponse";
}

//Request Auth Login
fputs($smtpConnect,"AUTH LOGIN" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authrequest'] = "$smtpResponse";

//Send username
fputs($smtpConnect, base64_encode($username) . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authusername'] = "$smtpResponse";

//Send password
fputs($smtpConnect, base64_encode($password) . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['authpassword'] = "$smtpResponse";

//Say Hello to SMTP
fputs($smtpConnect, "HELO $localhost" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['heloresponse'] = "$smtpResponse";

//Email From
fputs($smtpConnect, "MAIL FROM: $from" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['mailfromresponse'] = "$smtpResponse";

//Email To
fputs($smtpConnect, "RCPT TO: $to" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['mailtoresponse'] = "$smtpResponse";

//The Email
fputs($smtpConnect, "DATA" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['data1response'] = "$smtpResponse";

//Construct Headers
$headers = "MIME-Version: 1.0" . $newLine;
$headers .= "Content-type: text/html; charset=iso-8859-1" . $newLine;
$headers .= "To: $nameto <$to>" . $newLine;
$headers .= "From: $namefrom <$from>" . $newLine;

fputs($smtpConnect, "To: $to\nFrom: $from\nSubject:
$subject\n$headers\n\n$message\n.\n");
$smtpResponse = fgets($smtpConnect, 515);
$logArray['data2response'] = "$smtpResponse";

// Say Bye to SMTP
fputs($smtpConnect,"QUIT" . $newLine);
$smtpResponse = fgets($smtpConnect, 515);
$logArray['quitresponse'] = "$smtpResponse";
}
?>

Maxwel Leite

unread,
May 27, 2005, 11:28:09 PM5/27/05
to ar...@googlegroups.com
João Vagner escreveu:
> O Link Não abriu Vinicius :(

Aqui deu certo, João.

Valeu por apontar essa função, Vinicius. Essa vai ser muito útil pra mim.

Janio Sarmento

unread,
May 28, 2005, 6:33:08 AM5/28/05
to ar...@googlegroups.com
Leonardo Faria Coelho escreveu:
> a função exec() permite que você execute um aplicativo no micro do cliente.

De onde você tirou essa informação?

Janio

Leonardo Faria Coelho

unread,
May 28, 2005, 10:26:53 AM5/28/05
to ar...@googlegroups.com

Janio Sarmento

unread,
May 28, 2005, 10:31:27 AM5/28/05
to ar...@googlegroups.com
E onde está escrito que o programa externo vai ser executado no
cliente?

Você testou isso antes de dizer ao cara que funciona desse jeito?

Janio


Leonardo Faria Coelho escreveu:

Leonardo Faria Coelho

unread,
May 28, 2005, 10:32:53 AM5/28/05
to ar...@googlegroups.com
Funciona sim.

On 5/28/05, Janio Sarmento <sarm...@gmail.com> wrote:
>
> E onde está escrito que o programa externo vai ser executado no
> cliente?
>
> Você testou isso antes de dizer ao cara que funciona desse jeito?
>
> Janio
>
>
> Leonardo Faria Coelho escreveu:
> > http://br.php.net/manual/pt_BR/function.exec.php
> >
> > On 5/28/05, Janio Sarmento <sarm...@gmail.com> wrote:
> > >
> > > Leonardo Faria Coelho escreveu:
> > > > a função exec() permite que você execute um aplicativo no micro do cliente.
> > >
> > > De onde você tirou essa informação?
>
>


Pablo Barros

unread,
May 28, 2005, 11:29:31 AM5/28/05
to ar...@googlegroups.com
Acho que não é programa externo e sim um programa interno. Estou errado?

João Vagner

unread,
May 28, 2005, 11:58:40 AM5/28/05
to ar...@googlegroups.com
Olá Vinicius

Obrigado mesmo, funcionou perfeitamente :-)

Brigadão


Vinicius Pinto escreveu:

Rafael Mendes H. Perez

unread,
May 28, 2005, 1:50:16 PM5/28/05
to ar...@googlegroups.com
exec() roda no lado do servidor. Para funcionar você teria que ter um
apache e php instalados em cada máquina.

[]s
Rafael

Maxwel Leite

unread,
May 28, 2005, 2:25:26 PM5/28/05
to ar...@googlegroups.com
Rafael Mendes H. Perez escreveu:
> exec() roda no lado do servidor. Para funcionar você teria que ter um
> apache e php instalados em cada máquina.

Na verdade acho que não é esse exec que eles estão falando, estão
falando do exec do JScript/VBScript:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wslrfexecmethod.asp

Ou seja, já vem embutido em toda versão do Windows.

Janio Sarmento

unread,
May 28, 2005, 2:42:19 PM5/28/05
to ar...@googlegroups.com
Não, Pablo, não está (totalmente) errado.

O exec() do PHP vai rodar um programa que esteja acessível ao usuário
do Apache no servidor onde tudo está executando. É um programa
externo, mas como é lógico pensar, não tem absolutamente NADA a ver
com a máquina cliente.

Os programas de computador até que estão bem evoluídos, mas para
mágica ainda falta um pedaço a trilhar.

Janio


Pablo Barros escreveu:

Rafael Mendes H. Perez

unread,
May 29, 2005, 2:01:28 PM5/29/05
to ar...@googlegroups.com
Eu tava falando do sugerido pelo Leonardo nesse link:
http://br.php.net/manual/pt_BR/function.exec.php

O do windows funciona tranquilamente, exceto pelos problemas já
apontados pelo Pablo.

[]s
Rafael
>Yahoo! Mail, cada vez melhor: agora com 1GB de espa�o gr�tis! http://mail.yahoo.com.br
>
>
>
>

Eudes Nunes

unread,
May 30, 2005, 1:03:49 PM5/30/05
to ar...@googlegroups.com
Em Sáb, 2005-05-28 às 00:17, Vinicius Pinto escreveu:
> Basicamente a função mail() não suporta envio de mensagens através de
> servidores SMTP que requerem autenticação. A solução é enviar usando
> sockets. Estou reproduzindo abaixo o código da função que está no link
> que te passei. Teste e veja se funciona. Uma classe muito utilizada
> também é a http://phpmailer.sourceforge.net/.


Tem também funções de SMTP das bibliotecas da Pear que são úteis para
envios autenticados.

http://pear.php.net/package/Mail

--
[ ]'s
Eudes Nunes

Reply all
Reply to author
Forward
0 new messages