w00t! Posted August 18, 2005 at 03:18 AM Report Share #3182 Posted August 18, 2005 at 03:18 AM Pessoal, sabem como é que posso executar comandos em DOS em vb? Por exemplo, executar o comando echo olá. Abrir uma janela do cmd, a dizer Olá. Agradecia ajuda.. thx. Link to comment Share on other sites More sharing options...
David Pintassilgo Posted August 18, 2005 at 06:29 AM Report Share #3183 Posted August 18, 2005 at 06:29 AM Boas e bem vindo antes de mais. http://www.portugal-a-programar.hugosoft.net/viewtopic.php?t=51 aqui nesse pequeninos programas tens la isso algures, ve lá se encontras. Se não deres com isso ou logo á noite com mais tempo logo vejo e logo te digo cool stuffs to check. http://blog.zxcoders.com// Link to comment Share on other sites More sharing options...
pebat Posted August 18, 2005 at 11:11 AM Report Share #3193 Posted August 18, 2005 at 11:11 AM para fazeres ixo e so fazeres.... o comando shell ("") Link to comment Share on other sites More sharing options...
w00t! Posted August 18, 2005 at 04:05 PM Author Report Share #3215 Posted August 18, 2005 at 04:05 PM Boas e bem vindo antes de mais.http://www.portugal-a-programar.hugosoft.net/viewtopic.php?t=51 aqui nesse pequeninos programas tens la isso algures, ve lá se encontras. Se não deres com isso ou logo á noite com mais tempo logo vejo e logo te digo Agradecia que desses uma vista de olhos, e depois me dissesses.. thx. 🙂 para fazeres ixo e so fazeres.... o comando shell ("") Não dá, porque os comandos "Echo"; "Start" são comandos internos do Dos, (isto no Windows XP) se fosse no 98 provavelmente dava.. Link to comment Share on other sites More sharing options...
perdido_e_sozinho Posted August 18, 2005 at 04:15 PM Report Share #3217 Posted August 18, 2005 at 04:15 PM Exprimenta a chamar o CMD.exe e enviares os comandos com SendKey. Link to comment Share on other sites More sharing options...
w00t! Posted August 18, 2005 at 04:47 PM Author Report Share #3218 Posted August 18, 2005 at 04:47 PM Já consegui fazer o que queria! Obrigado a todos. 🙂 Link to comment Share on other sites More sharing options...
pebat Posted August 18, 2005 at 05:32 PM Report Share #3219 Posted August 18, 2005 at 05:32 PM nao tinha tido tempo de explicar bem ... a usar akele shell tens k xamar um programa um exe neste caso do msdos k no xp e o cmd.exe e dpx pode la atribuir argumentos dentro... desse shell ... so te dei mssm um comando nada mais ... entao e como e k fizeste ja agora para o ppl focar a saber Link to comment Share on other sites More sharing options...
David Pintassilgo Posted August 18, 2005 at 08:14 PM Report Share #3240 Posted August 18, 2005 at 08:14 PM é isso mesmo! 🙂 cool stuffs to check. http://blog.zxcoders.com// Link to comment Share on other sites More sharing options...
w00t! Posted August 19, 2005 at 12:01 AM Author Report Share #3268 Posted August 19, 2005 at 12:01 AM nao tinha tido tempo de explicar bem ... a usar akele shell tens k xamar um programa um exe neste caso do msdos k no xp e o cmd.exe e dpx pode la atribuir argumentos dentro... desse shell ... so te dei mssm um comando nada mais ... entao e como e k fizeste ja agora para o ppl focar a saber Pois, é como é que metes os atributos? Pela lógica usa-se shell("cmd echo Olá") Mas assim só abre o cmd.. Ou o comando echo ou start, tem-se que meter entre qualquer caracter? Eu queria usar o ms-dos por causa do comando /wait que ele possui, mas acabei por concluir que dá para fazer isso em vb. Estou a fazer um programa com actualizações do WinXP, saquei um script de um site "shellandwait", que executa o 2º shell apenas quando o 1º acabar, era isso que queria fazer.. Mas estou com mais problemas.. aqui está o código. Function ShellAndWait(FileName As String) Dim objScript On Error GoTo ERR_OpenForEdit Set objScript = CreateObject("WScript.Shell") ShellApp = objScript.Run(FileName, 1, True) ShellAndWait = True EXIT_OpenForEdit: Exit Function ERR_OpenForEdit: MsgBox Err.Description GoTo EXIT_OpenForEdit End Function Private Sub Timer1_Timer() ShellAndWait App.Path & ("\WindowsXP-KB873333-x86-PTG.exe /M /Q") ShellAndWait App.Path & ("\WindowsXP-KB873339-x86-PTG.exe /M /Q") ShellAndWait App.Path & ("\WindowsXP-KB883939-x86-PTG.exe /M /Q") End Sub Até aqui tudo bem.. mas se meto mais 'exe's' a abrir, dá-me um erro no Windows "A estação de trabalho vai ser encerrada", e fecha-me os programas todos que tenho aberto, inclusive o .exe das actualizações, mas se for ao taskmanager dá para ver o processo do exe aberto, e das actualizações ou seja, ele continua a instalar as actualizações mas com o programa fechado (ou pelo menos não está visivel).. Sabem alguma alternativa de fazer isto, ou alguma ideia de onde vem o erro? Cumprimentos. ;) Link to comment Share on other sites More sharing options...
perdido_e_sozinho Posted August 19, 2005 at 10:19 AM Report Share #3282 Posted August 19, 2005 at 10:19 AM Pelo que percebi o que queres fazer é executar uma aplicação apartir de uma aplicação de VB.NET e aguadares que esta termine para executar outra e assim sucessivamente. Aconselho-te a usares o Shell, uma vez que este pode aguardar que a aplicação seja encerrada, assim como definir um timeout e o tipo de focus. Shell ( Pathname, EstiloDaJanela, Wait, Timeout) Se for necessário podes colocar parametros pra instalação silenciosa no pathname. Em relação ao erro há que ter em conta que as actualizações por vezes necessitam que todos os programas estejam encerrados. Se a actualização necessitar de reiniciar então tens outros problemas. Nesse caso aconselho-te a guardar a informação das actualizações já instaladas e a colocares a aplicação no arranque para que esta corra a actualização seguinte no próximo arranque. Com os melhores cumprimentos, Sérgio Matias Link to comment Share on other sites More sharing options...
max Posted August 19, 2005 at 11:50 AM Report Share #3292 Posted August 19, 2005 at 11:50 AM que vb usas? Se for o ultimo podes usar: Console.WriteLine("olá") Link to comment Share on other sites More sharing options...
w00t! Posted August 19, 2005 at 07:57 PM Author Report Share #3309 Posted August 19, 2005 at 07:57 PM Pelo que percebi o que queres fazer é executar uma aplicação apartir de uma aplicação de VB.NET e aguadares que esta termine para executar outra e assim sucessivamente.Aconselho-te a usares o Shell, uma vez que este pode aguardar que a aplicação seja encerrada, assim como definir um timeout e o tipo de focus. Shell ( Pathname, EstiloDaJanela, Wait, Timeout) Se for necessário podes colocar parametros pra instalação silenciosa no pathname. Em relação ao erro há que ter em conta que as actualizações por vezes necessitam que todos os programas estejam encerrados. Se a actualização necessitar de reiniciar então tens outros problemas. Nesse caso aconselho-te a guardar a informação das actualizações já instaladas e a colocares a aplicação no arranque para que esta corra a actualização seguinte no próximo arranque. Com os melhores cumprimentos, Sérgio Matias Hey, desde já obrigado pela ajuda. Também dá pra aplicar esse comando "wait" no shell atravez do vb6? É o que uso.. Edited: Ok, exprimentei assim: Shell App.Path & ("\WindowsXP-KB873339-x86-PTG.exe /M /Q"), vbMinimizedNoFocus, wait Mas deu erro.. :cry: Em relação ao erro há que ter em conta que as actualizações por vezes necessitam que todos os programas estejam encerrados. Se a actualização necessitar de reiniciar então tens outros problemas. Nesse caso aconselho-te a guardar a informação das actualizações já instaladas e a colocares a aplicação no arranque para que esta corra a actualização seguinte no próximo arranque. Eu já testei as actualizações todas num .bat, e actualizava na boa.. Link to comment Share on other sites More sharing options...
w00t! Posted August 21, 2005 at 08:48 PM Author Report Share #3456 Posted August 21, 2005 at 08:48 PM Alguem..? :? Link to comment Share on other sites More sharing options...
perdido_e_sozinho Posted August 22, 2005 at 10:45 AM Report Share #3554 Posted August 22, 2005 at 10:45 AM O código que te indiquei é de VB.NET pelo que no VB6 não funciona, uma vez que o comando shell foi melhorado VB.NET. Estive a pesquisar e quase todas as soluções passam por monitorizar os processos, o que é um método complexo. Vou tentar obter algumas informações sobre uma forma mais simplificada, mas por agora não sou grande ajuda. Link to comment Share on other sites More sharing options...
w00t! Posted August 23, 2005 at 04:00 AM Author Report Share #3682 Posted August 23, 2005 at 04:00 AM Adicionei o atributo /Z, ao ficheiro e já não dá o erro. ;) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now