Jump to content

[VB.NET 2005] Executar automaticamente na CMD


Recommended Posts

Posted

Boas para kem meu ajudou no meu post antigo fica a saber da historia mas para akeles k não eu vou contar 🙂

eu desenvolvi 1 programa que no fundo tinha como função procurar o programa no pc

depois tinha 1 timer k no fim do tempo se esgotava o programa que tinha escolhido arrancava ( programa ou outro)

agora eu keria saber como faço para que ao fim do tempo determinado o programa execute algo na linha de comandos....

pra remediar o k fiz foi criar 1 *.bat com o comando que pretendia e depois o programa executava esse bat e tava feito mas eu pretendia algo automatico porque a mt gente que nem sabe editar o bat e neste caso e penso k em mts é sempre presiso colocar o nome do PC e este varia logo eu tinha que ter isso td numa linha em que eu pedi-se o nome do pc numa tbx essa tbx iria meter o valor numa var e depois eu teria o comando e era so ajustar a var a essa linda ... confuso n é 😉

se alguem souber de algo ja sabe 😛

[]'s

Posted

podes ser mais específico,

não entendo o que pretendes fazer, abrir a consola do windows e colocar-lhe comandos é isso?

Posted

podes ser mais específico,

não entendo o que pretendes fazer, abrir a consola do windows e colocar-lhe comandos é isso?

Sim eu kero k o timer kando acabe o tempo execute 1 comando a nivel de consola .. sera algo para acabar com 1 processo neste caso

Isso é uma aplicação com forms correcto?

Explora o System.Console

sim 1 form .. trabalho simples anbiente grafico 🙂

Posted

pah é assim se isto parecer parvo é normal é k so tive as bases de VB.net 🙂 inda tou a aprender mas por min :\

eu puz  o seguinte

System.Console.WriteLine("TASKKILL.exe....")

meu raciocinio foi k ia escrever isso na consola e logo killar o processo mas n :\

Posted

Estive a rever o teu código para ver se entendia, já experimeitei esta solução que te vou dizer e funciona

se queres fechar o processo que criate basta

P.kill()

agora como está o teu código actualmente terás de criar um novo timer

talvez fosse melhor retirares o código do timertick para os butões de forma a só necessitares de um único tmr

Posted

pah o meu objectivo n é acabar com o meu programa mas sim com 1 determinado programa...

como por exemplo se colocares este codigo na cmd

TASKKILL.exe /S electricPC/F /IM programa1.exe /T

mata o programa1 do pc electricPC 

so k eu punha isso num file criado por min *.bat k escolhia e mandava executar kando acabava o tempo

só k eu queria por isso de modo automatico pois o programa so servira pra esse mxm programa

mas onde ta o nome do pc penso k terei de por 1 variavel onde sera previamente atribuido o nome do pc do user

de uma tbx pra variavel e da variavel ra cmd :\

pah espero ter sido melhor a explicar desta X lol mas é k vim a pouco do liceu e tive a marrar lol da nisso 🙂

[]'s

Posted

mas o p.kill() não acaba com o teu programa mas sim com o programa que foi aberto pela variável p

é verdade à pouco esqueci-me que tens de por a varável p como public

Posted

tão sendo assim eu tinha de por o programa a abrir logo pelo meu programa e depois criar outro timer onde tara esse p.kill é isso k keres dizer certo ?

Posted

Eu pensei que fosse para fechar o programa que foi aberto pelo timer

Se assim for

Podes aproveitar o mesmo timer para abrir e fechar o programa

vou ver se posto o code inteiro aqui

Posted

aproveitando o teu código:

Public Class Form2
    Dim P As New Process

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Resultado As DialogResult
        Resultado = DlgoFicheiro.ShowDialog
        If (Resultado = Windows.Forms.DialogResult.OK) Then
            TbxFicheiro.Text = DlgoFicheiro.FileName
        End If


    End Sub

    Private Sub Tmr_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmr.Tick
        
        LblDescontar.Text = Val(LblDescontar.Text) - 1

        If LblDescontar.Text = "0" Then
            tmr.Stop()
            Try
                If (TbxFicheiro.Text <> "") Then
                    P.StartInfo.FileName = TbxFicheiro.Text
                    P.Start()
                    P.WaitForInputIdle()
                    LblDescontar.Text = "15"
                End If
            Catch ex As Exception
                MessageBox.Show("Ficheiro não encontrado")
            End Try

        End If


    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        tmr.Start()


    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        tmr.Stop()
    End Sub

   

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        tmr2.Start()


    End Sub



    Private Sub CbxTempos_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CbxTempos.SelectedIndexChanged
        LblDescontar.Text = CbxTempos.Text
    End Sub

    Private Sub tmr2_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tmr2.Tick

        LblDescontar.Text = Val(LblDescontar.Text) - 1


        If LblDescontar.Text = "0" Then



            P.Kill()
            tmr2.Stop()
            LblDescontar.Text = "15"
        End If

    End Sub

    Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        LblDescontar.Text = "15"
    End Sub
End Class

assim abre e encerra a aplicação

mas têm de ser dois timers, tinhas razão

Posted

1 form

2 timer

1 cbx

3 btn

hum vou ver se percebo isso melhor xD é k o meu ojectivo é aprender 😉 + alguma coisa 🙂

Posted

boas tive a ver hj o codigo e n funcionou :\ e mxm k funcione dame a impressão k o k vai fazer é abrir e fechar logo de seguida :\

penso k ha e deve haver maneira + simples so  k inda n me dei ao trabalho de pensar mt nisso pk tenho outros trabalhitos :\

vou ver se penso melhor nisso e quando axar solução falo aqui pro ppl

[]'s

Posted

afinal bastante simples e eu aki com perguntas :\

ora bem retirei esta parte do codigo do timer

P.StartInfo.FileName = TbxFicheiro.Text
            P.Start()

e pula no btn de escolha de caminho

depois bastou meter o p.kill() no tmr

logo acabei por continuar com 1 unico timer

o programa que abro é killado assim k o tempo acaba e ta feito 😛

bem + uma parte do meu trabalho realisada 🙂 obrigado pelas dicas 😛

[]'s

Posted

oi tou a apanhar do ar mas o teu problema é controlar os processos ??

Dim arrPROCESSOS() As Process 'crias um array de processos

Try
         arrPROCESSOS = Process.GetProcessesByName(nome do processo)
         If arrPROCESSOS(0).Responding = True Then
            If arrPROCESSOS.GetUpperBound(0) > 0 Then
               MsgResultStyle = MsgBoxStyle.OKOnly + MsgBoxStyle.Critical
               MsgResult = MsgBox("encontrei o processo")
               End 'fecha a aplicação ...
            End If
         End If
      Catch ex As Exception
         MsgBox(ex.ToString)
      End Try

embora eu esteja a usar isto para descobrir se existe uma 2ª instancia da minha aplicação, como ja reparaste podes usar o array de processos para tudo o qye queiras fazer .. espero ter ajudado ,,,

Posted

oi tou a apanhar do ar mas o teu problema é controlar os processos ??

Dim arrPROCESSOS() As Process 'crias um array de processos

Try
         arrPROCESSOS = Process.GetProcessesByName(nome do processo)
         If arrPROCESSOS(0).Responding = True Then
            If arrPROCESSOS.GetUpperBound(0) > 0 Then
               MsgResultStyle = MsgBoxStyle.OKOnly + MsgBoxStyle.Critical
               MsgResult = MsgBox("encontrei o processo")
               End 'fecha a aplicação ...
            End If
         End If
      Catch ex As Exception
         MsgBox(ex.ToString)
      End Try

embora eu esteja a usar isto para descobrir se existe uma 2ª instancia da minha aplicação, como ja reparaste podes usar o array de processos para tudo o qye queiras fazer .. espero ter ajudado ,,,

ya tenho de testar isso mas pra minha 1ª versão optei por 1 programa k killa  o que apaga como ja podes ter visto

isso k meteste ai penso k seja so mesmo pra 1 determinado programa ( pendente do nome do programa que introduzimos)

obrigado secalhar inda vou usar isso na minha V2.0

[]'s

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.