• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

maddox

[vb .net 2005] Correr aplicação externa

18 mensagens neste tópico

Boas, já que ainda nao me conseguiram ajudar á questao colocada anteriormente, venho por a questão de outra forma.

Como faço um botao para me correm uma aplicação externa ou para correr um ficheiro .bat?

Obrigado

Vitor Oliveira

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O Shell é velho e não presta, só foi mantido por compatibilidade com versões antigas

nem recomendo mesmo nada, nada usar esse comando muito velho, é um grande retrocesso

usa o System.Diagnostics

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes tambem utilizar a API ShellExecute

Cumps

para quê ?! ainda pior !!!!

usa o System.Diagnostics

o AVI2ISO usa e abusa disso, além das threads ... que são bués

www.avi2iso.info

o programa está todo feito em VB 2005...mal grado meu :)

devia ter começado logo em C#....mas agora é tarde de mais...que se lixe

apenas pela simplicidade...acho o C# muito mais versátil

a m**** do VB.NET herdou muita porcaria do VB6...

o SHELL é disso exemplo

nem pensem usar essa m**** de comando

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja agora, so a titulo de curiosidade, porque e que ele e assim tao mau?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja agora, so a titulo de curiosidade, porque e que ele e assim tao mau?

Tambem gostava de saber !  :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não sei programar em .NET e nem sei o que é issu do System.Diagnostics, mas porque é que dizes que utilizar uma API ainda é pior? Eu sei que a conta dissu o programa esta mais ligado ao SO e pode acontecer mais erros mas não vejo grande problema em utilizar issu. E qual é a diferença entre o System.Diagnostics e a API, ja agora ficava a saber para melhorar o meu conhecimento  :)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o SHELL foi substancialmente melhorado em DOT.NET, mas continua a ser uma grande me***...porquê ?!

porque é mau ?!  uma pessoa nem sequer tem controle sobre os processos

com o System.Diagnostics vocês podem correr uma aplicação BAT numa janela própria/form e obter todas as informações do processo

é o que o AVI2ISO usa

peguém lá um pedaço de código do AVI2ISO :

 

 Private Sub startProcess(ByVal proc As rsProc)
        'myProcess = New Process

        myProcess = New System.Diagnostics.Process

        Try
            myProcess.StartInfo.FileName = proc.programa
            myProcess.StartInfo.Arguments = proc.args

            If proc.hide Then
                myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
            Else
                myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
            End If

            myProcess.Start()

            If Me.dualcore.Checked And Me.dualcore.Enabled Then
                Select Case Me.principal1.SelectedIndex
                    Case 0
                        myProcess.PriorityClass = ProcessPriorityClass.AboveNormal
                    Case 1
                        myProcess.PriorityClass = ProcessPriorityClass.BelowNormal
                    Case 2
                        myProcess.PriorityClass = ProcessPriorityClass.High
                    Case 3
                        myProcess.PriorityClass = ProcessPriorityClass.Normal
                    Case 4
                        myProcess.PriorityClass = ProcessPriorityClass.RealTime
                End Select
            End If

            myProcess.WaitForExit()
            pExitCode = myProcess.ExitCode
            myProcess.Dispose()
            myProcess.Close()

        Catch ex As Win32Exception
            MsgBox(ex.Message)

        End Try
    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

....

Com a API tambem consegues ter algum controlo sobre o processo, talvez não seja tanto como tens com o System.Diagnostics, mas tambem tens algum controlo.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não tens nenhum...nem consegues correr um processo externo numa janela própria

usa as potencialidades novas da linguagem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
usa as potencialidades novas da linguagem

Não posso porque não sei programar em .NET  :-[

infelizmente só sei programar em VB, mas ja ando a tratar disso, tou farto de VB6....

Para executar outro prog dentro de uma form tenho de fazer umas quantas coisas... se com o System.Diagnostics consegue-se fazer issu apenas com umas linhas, issu é bem fixe  :P

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

=====

Para executar outro prog dentro de uma form tenho de fazer umas quantas coisas... se com o System.Diagnostics consegue-se fazer issu apenas com umas linhas, issu é bem fixe

======

bem terás que alterar algumas coisas, isso terás

mas isso é outra pergunta fora do ambito desta thread :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
bem terás que alterar algumas coisas, isso terás

mas isso é outra pergunta fora do ambito desta thread Smiley

eu não fiz nenhuma pergunta  só disse que se apenas fossem umas linhas com o System.Diagnostics para executar um prog e colocalo dentro de uma form então issu era mt fixe  :)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

conseguem arranjar-me um manual onde aprenda como utilizar o System.Diagnostics. apenas pretendo um botão com um código para correr um ficheiro bat ou exe que irei colocar no ambiente de trabalho. como faço isso. podem postar o código?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas eu já dei um pedaço de código que exemplifica como usar o System.Diagnostics

qual é a parte que não percebes ?!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora