electric Posted November 29, 2006 at 06:58 PM Report #67660 Posted November 29, 2006 at 06:58 PM 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
Icaro Posted November 30, 2006 at 12:45 PM Report #67942 Posted November 30, 2006 at 12:45 PM podes ser mais específico, não entendo o que pretendes fazer, abrir a consola do windows e colocar-lhe comandos é isso?
Guest id194 Posted November 30, 2006 at 02:47 PM Report #67957 Posted November 30, 2006 at 02:47 PM Isso é uma aplicação com forms correcto? Explora o System.Console
electric Posted November 30, 2006 at 04:30 PM Author Report #67971 Posted November 30, 2006 at 04:30 PM 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 🙂
electric Posted November 30, 2006 at 04:51 PM Author Report #67975 Posted November 30, 2006 at 04:51 PM 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 :\
Icaro Posted November 30, 2006 at 05:58 PM Report #67983 Posted November 30, 2006 at 05:58 PM 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
electric Posted November 30, 2006 at 06:09 PM Author Report #67984 Posted November 30, 2006 at 06:09 PM 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
Icaro Posted November 30, 2006 at 06:16 PM Report #67985 Posted November 30, 2006 at 06:16 PM 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
electric Posted November 30, 2006 at 06:19 PM Author Report #67987 Posted November 30, 2006 at 06:19 PM 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 ?
Icaro Posted November 30, 2006 at 06:34 PM Report #67990 Posted November 30, 2006 at 06:34 PM 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
Icaro Posted November 30, 2006 at 07:48 PM Report #68005 Posted November 30, 2006 at 07:48 PM 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
electric Posted November 30, 2006 at 09:48 PM Author Report #68029 Posted November 30, 2006 at 09:48 PM 1 form 2 timer 1 cbx 3 btn hum vou ver se percebo isso melhor xD é k o meu ojectivo é aprender 😉 + alguma coisa 🙂
electric Posted December 1, 2006 at 06:43 PM Author Report #68170 Posted December 1, 2006 at 06:43 PM 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
electric Posted December 1, 2006 at 06:51 PM Author Report #68172 Posted December 1, 2006 at 06:51 PM 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
pt_V1p3r Posted December 6, 2006 at 05:52 PM Report #69208 Posted December 6, 2006 at 05:52 PM 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 ,,,
vbmaster Posted December 6, 2006 at 05:58 PM Report #69209 Posted December 6, 2006 at 05:58 PM Relembro que a secção Dúvidas e ajudas é para isso mesmo que serve! 😉
electric Posted December 8, 2006 at 12:16 AM Author Report #69530 Posted December 8, 2006 at 12:16 AM 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
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