[Resolvido]DOS sem a janela preta

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido [Resolvido]DOS sem a janela preta

Mensagem por Ufrarion em Dom 01 Jul 2012, 11:25

Aew galera!!!

Estou querendo executar um comando no cmd mas sempre aparece rapidamente a janela, estou com a silentdos.dll e a GEX mas como não tem exemplo não sei seus argumentos e variável eo silex não achei o link, se alguem tiver um exemplo para a silentdos.dll, silentdos.gex ou algum outro método ficaria muito agradecido.

Obrigado


Última edição por Ufrarion em Dom 01 Jul 2012, 23:51, editado 1 vez(es)

Ufrarion

Número de Mensagens : 222
Data de inscrição : 06/06/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por GameMakerTutoriais em Dom 01 Jul 2012, 13:26


hmmm... Dá pra gente fazer isso sem dll's. Fiz um script aqui que acredito que servirá. A vantagem é que você pode incorporar o batch inteiro dentro do seu projeto gml e não apenas uma única linha de comando...

Salve-o com o nome "batch_script":



O primeiro argumento se refere ao modo de comportamento da janela. Coloquei a tabelinha no próprio script. O segundo argumento é o script propriamente dito. Basta escrevê-lo normalmente dentro de uma string em código gml:

Código:

batch_script(1,
    '
        @echo off
        title Program
        echo -----------------------------------
        echo My Batch Script
        echo -----------------------------------
        pause > nul
        exit
    '
    );

Só é bom ficar atento na forma como você monta o script, porque alguns caracteres são usados no Game Maker de forma diferente, mas isso já são detalhes.

Só comentando: não é "DOS". Esse é o sistema, o correto é "prompt" (o autor da dll também errou no nome). =D

Abraços!

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por Ufrarion em Dom 01 Jul 2012, 23:50

Ninja8086 perfeito esse teu script, a unica coisa que tive que usar foi o cmd.exe no começo para usar o cmd da system32 (apesar, eu não sabia que tinha diferença de funcionamento):

Código:
batch_script(0,"cmd.exe /c "codigo aqui")
Sobre o MS-DOS, estou ciente que o MS-DOS é um eo prompt de comando é outro, mas para não ter confusão de nomes preferir botar DOS mesmo. Rolling Eyes

Ufrarion

Número de Mensagens : 222
Data de inscrição : 06/06/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por GameMakerTutoriais em Seg 02 Jul 2012, 12:58


Ufrarion escreveu:a unica coisa que tive que usar foi o cmd.exe no começo para usar o cmd da system32 (apesar, eu não sabia que tinha diferença de funcionamento):

Mas não tem diferença, a menos que ele estivesse usando o interpretador do command.com ao invés do cmd.exe, o que é muito improvável porque o command é bastante antigo.

O que eu uso normalmente é extensão ".cmd" ao invés da ".bat", mas em suma, o funcionamento é o mesmo. Isso é só usado pra diferenciar um modelo de script de outro, mas talvez tenha sido esse o problema (não sei se a associação na sua máquina está diferente).

Troca a linha 16 do script (nessa enumeração aí do pastebin) por isso:

Código:
runcmd := tempdr + '\run.bat';

Falou! (não é necessário usar "cmd /c")

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por Ufrarion em Seg 02 Jul 2012, 14:24

Agora que eu vi que não precisa do cmd.exe /c, pq deu uma confusão aqui e no fim achei que presisava mas o comando msconfig dá que não é reconhecido no teu script e num arquivo bat normal e no cmd direto funcionam, estou botando assim:

Código:
batch_script(1,"msconfig")
Isso é só uma duvida porque para o que eu queria mesmo já consegui usar, mas é estranho o msconfig não abrir.

Ufrarion

Número de Mensagens : 222
Data de inscrição : 06/06/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por GameMakerTutoriais em Seg 02 Jul 2012, 19:30

É porque a partir do script, você executa um arquivo bat e não um comando. Qualquer executável que não tenha o caminho já reconhecido pela variável %path% (que é a variável de ambiente usada pelo prompt, nesse caso), não vai funcionar. O que você vai ter que fazer é:

1 - Indicar o caminho completo do executável ...
Código:
c:\caminho\programa.exe

2 - ... ou usar o comando "start executável", ex:
Código:
start msconfig

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por Ufrarion em Seg 02 Jul 2012, 23:43

Mas se tu botar num arquivo bat só "msconfig" ele vai abrir assim como prompt tambem, e no script não levando a pensar que ele não se comporta totalmente como um bat o que é estranho já que ele cria um arquivo bat não é???
E os 2 métodos não deram resultado, sendo que o primeiro ele não abre, ele não abre nenhum arquivo pelo caminho dele, mas funciona por exemplo o comando shutdown:

Código:
//Não funciona
batch_script(0,"D:\kkk.bat");
E o segundo método dá o mesmo erro do prompt mas em uma caixa de mensagem do Windows.

Ufrarion

Número de Mensagens : 222
Data de inscrição : 06/06/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por GameMakerTutoriais em Ter 03 Jul 2012, 01:39


Funciona normalmente. Até pelo fato de você ter mencionado "system32", eu tenho certeza absoluta que funciona no seu S.O. Tem como você postar seu código aqui? Por ele eu vou poder entender melhor que pode estar acontecendo.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por Ufrarion em Ter 03 Jul 2012, 17:18

Tentei esses 4 comandos mas somente o shutdown funciona no seu script sendo que testei num arquivo bat e todos funcionaram normalmente:

Código:
batch_script(0,'C:\Windows\System32\msconfig.exe');
batch_script(0,'msconfig');
batch_script(0,'ipconfig');
batch_script(0,'shutdown -s -f -t 10')

Ufrarion

Número de Mensagens : 222
Data de inscrição : 06/06/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por GameMakerTutoriais em Ter 03 Jul 2012, 21:13

Não faz sentido ele abrir de uma forma, mas não abrir de outra. Não há nada errado nesses comandos e todos tem que funcionar. Pensei que fosse algo relacionado com path de cada um, mas não faz sentido que o shutdown.exe funcione e o ipconfig.exe não, pois eles ficam originalmente na mesma pasta.

Mas eu te garanto com 100% de certeza que esse erro não é do script. Pensei que fosse algum aplicativo barrando o "wscript.exe" (que eu usei pra ocultar o batch), mas também não pode ser pois você consegue executar alguns comandos. Também não é erro relacionado com aspas...

Você poderia testar mais esses comandos aqui e me dizer qual é a mensagem que aparece na janela do prompt?

Código:
batch_script(1,'C:\Windows\System32\msconfig.exe & pause');
batch_script(1,'msconfig & pause');
batch_script(1,'ipconfig & pause');

Todos esses comandos funcionam aqui normalmente e mesmo sabendo que funcionaria, ainda testei na máquina virtual e o resultado foi o mesmo.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por Ufrarion em Ter 03 Jul 2012, 21:28

Testei os comandos e o do ipconfig funcionou mas o do msconfig e do caminho do msconfig nada, segue abaixo as screenshots:

Spoiler:
Spoiler:
Spoiler:

Ufrarion

Número de Mensagens : 222
Data de inscrição : 06/06/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por GameMakerTutoriais em Ter 03 Jul 2012, 21:59


Vou dar meu último tiro. Se não funcionar, eu realmente não sei o que é. Se não der certo, use a execute_program do Game Maker direto pra abrir o msconfig.

Código:

batch_script

(
    1,

'
    @echo off
    if not defined WINDIR (
        echo Erro.
        pause
        goto quit
    )

    for /f "delims=" %%a in (' + "'dir /b /on /s %WINDIR%\msconfig.exe') do (
        echo Encontrado: %%a
        %%~sa
        pause
        goto quit
    )
   
    :quit
");

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por Ufrarion em Ter 03 Jul 2012, 22:12

Executei o codigo e só abriu a tela do cmd e ficou preta sem nada escrito sem abrir nada e com o execute_program deu a mesma coisa que naquela screenshot.
Ta parecendo que é algum tipo de problema com o GM porque nenhuma forma de abrir o msconfig pelo GM abre mas com um arquivo bat ou no Executar do Windows funciona normal.

Ufrarion

Número de Mensagens : 222
Data de inscrição : 06/06/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por GameMakerTutoriais em Ter 03 Jul 2012, 22:20


Pois é, o que eu fiz aí foi pesquisar pelo msconfig e tentar executá-lo do exato lugar onde ele está. A janela fica aberta porque está pesquisando e demora um pouco até encontrar. Se não encontrar, ela fecha.

Infelizmente não faço ideia do que seja, aqui funcionou normalmente.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por Ufrarion em Ter 03 Jul 2012, 22:34

Agora que vi que estava pesquisando e funcionou:

Código:
Encontrado: C:\Windows\winsxs\amd64_microsoft-windows-msconfig-exe_31bf3856ad364
e35_6.1.7600.16385_none_366f302ab7711738\msconfig.exe
Pressione qualquer tecla para continuar. . .
Mas estranho mesmo porque na system32 tem o msconfig até porque copiei o caminho dele de lá mesmo.

Ufrarion

Número de Mensagens : 222
Data de inscrição : 06/06/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por GameMakerTutoriais em Ter 03 Jul 2012, 23:29

Ta parecendo que é algum tipo de problema com o GM porque nenhuma forma de abrir o msconfig pelo GM abre mas com um arquivo bat ou no Executar do Windows funciona normal.

Tira a prova usando a função "execute_program()", se não funcionar deve ser alguma coisa específica no seu sistema. Por exemplo, alguns programas na minha máquina também não rodam sem permissão, mas no meu caso, é meu firewall que faz isso. Mas isso é um exemplo. Não sei o que pode ser especificamente. Pode ser muita coisa.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por Ufrarion em Ter 03 Jul 2012, 23:56

Eu vo esperar para ver se consigo testar em outro computador, como no teu funcionou direito pode ser algo no sistema ou de autorização mesmo.

Ufrarion

Número de Mensagens : 222
Data de inscrição : 06/06/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por GameMakerTutoriais em Qui 05 Jul 2012, 10:23


Só pra reforçar: você tem que usar "start msconfig" ou o caminho completo dele, porque isso não trabalha como a caixa de executar do Windows. Nem todo computador tem a pasta do msconfig já registrada no path.

Código:
batch_script(0,
'
%SystemRoot%\system32\dllcache\msconfig.exe
'
);

...ou (mais garantido, tanto pro XP quanto pro Seven, etc.)...

Código:
batch_script(0, 'start msconfig');

Sem isso é provável que o teste não funcione.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]DOS sem a janela preta

Mensagem por Conteúdo patrocinado Hoje à(s) 06:14


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum