ESCREVER NOTEPAD COM LOOP
Valeu muito obrigado, porém da o seguinte erro [Ô]O argumento [ô]Style[ô] é um valor inválido.[Ô]
E se eu troco o caminho e coloco em outro existe, aparece [Ô]Caminho Inválido[Ô].
E se eu troco o caminho e coloco em outro existe, aparece [Ô]Caminho Inválido[Ô].
Em qual botão tu está clicando? Em qual linha o projeto da erro? Tem que postar mais informações, cara. Ninguem consegue ler mentes...
Clico no botão Executar.
Está dando erro nessa linha:
Está dando erro nessa linha:
Citação:Dim escreve As New IO.StreamWriter(Shell([Ô]C:\Users\EVANDRO\Desktop este.txt[Ô], False)) [ô] True = adicionar texto
Por acaso, esta pasta existe?
Como tu pode ver, ele abre um arquivo TXT existente no desktop do usuário [Ô]EVANDRO[Ô]. Esse usuário existe no teu pc?
Como tu pode ver, ele abre um arquivo TXT existente no desktop do usuário [Ô]EVANDRO[Ô]. Esse usuário existe no teu pc?
Sim existe, é o usuario que utilizo...
Fiz o executar2 segue o codigo:
Private Sub Executar2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Executar2.Click
Dim escreve As New StreamWriter([Ô]C:\Users\EVANDRO\Desktop este.txt[Ô], True)
Dim processo As New Process
processo.StartInfo.FileName = [Ô]notepad.exe[Ô]
processo.StartInfo.Arguments = [Ô]C:\Users\EVANDRO\Desktop este.txt[Ô]
processo.Start()
[ô]Do
escreve.WriteLine(TxtDigitar.Text)
[ô]Thread.Sleep([Ô]2000[Ô])
[ô]Loop
escreve.Close()
processo.WaitForExit()
MsgBox([Ô]O Processo foi finalizado![Ô])
End Sub
Sem o loop ele funciona, escreve o que esta no txtDigitar, porem preciso que ele faça isso de tempo em tempo e ainda não estou conseguindo.
Fiz o executar2 segue o codigo:
Private Sub Executar2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Executar2.Click
Dim escreve As New StreamWriter([Ô]C:\Users\EVANDRO\Desktop este.txt[Ô], True)
Dim processo As New Process
processo.StartInfo.FileName = [Ô]notepad.exe[Ô]
processo.StartInfo.Arguments = [Ô]C:\Users\EVANDRO\Desktop este.txt[Ô]
processo.Start()
[ô]Do
escreve.WriteLine(TxtDigitar.Text)
[ô]Thread.Sleep([Ô]2000[Ô])
[ô]Loop
escreve.Close()
processo.WaitForExit()
MsgBox([Ô]O Processo foi finalizado![Ô])
End Sub
Sem o loop ele funciona, escreve o que esta no txtDigitar, porem preciso que ele faça isso de tempo em tempo e ainda não estou conseguindo.
Cara, teu código ta muito confuso... Vamos começar do zero.
Cria um projeto com 3 textbox e um botão.
txtTexto = texto que será digitado no bloco de notas
txtTempo = intervalo de tempo entre as digitações
txtRepetir = numero de vezes que o programa digitará o texto no bloco de notas
btnProcessar = botao que executa o codigo
O codigo do form é esse:
Cria um projeto com 3 textbox e um botão.
txtTexto = texto que será digitado no bloco de notas
txtTempo = intervalo de tempo entre as digitações
txtRepetir = numero de vezes que o programa digitará o texto no bloco de notas
btnProcessar = botao que executa o codigo
O codigo do form é esse:
Public Class Form1
[ô]API do Windows que joga o foco pra alguma janela especÃfica
Private Declare Function SetForegroundWindow Lib [Ô]user32[Ô] (ByVal hwnd As Long) As IntPtr
Private Sub btnProcessar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProcessar.Click
Dim pProcesso As New Process
[ô]
pProcesso.StartInfo.FileName = [Ô]notepad.exe[Ô] [ô]Abre o Bloco de Notas
pProcesso.Start()
[ô]
For i = 1 To Integer.Parse(txtRepetir.Text())
[ô]Joga o foco para o bloco de notas
SetForegroundWindow(pProcesso.Handle)
[ô]Aguarda o foco ser transferido. Evita bugs
System.Threading.Thread.Sleep(200)
[ô]Escreve no Bloco de notas
SendKeys.Send(txtTexto.Text)
[ô]Aguarda o intervalo digitado
System.Threading.Thread.Sleep(Integer.Parse(txtTempo.Text) * 1000)
Next
[ô]
[ô]Finaliza o Bloco de notas
pProcesso.Kill()
[ô]
[ô]Messagem do fim
If (Err.Number = 0) Then
MessageBox.Show([Ô]OKAY[Ô], [Ô]Mensagem[Ô], MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly, False)
Else
MessageBox.Show([Ô]Erro[Ô], [Ô]Mensagem[Ô], MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly, False)
End If
[ô]
End Sub
[ô]
End Class
Muito grato pela ajuda, mas teria como retirar o txtRepetir, pq preciso que seja infinito e só para quando clica em um outro botão tipo [Ô]Parar[Ô]!?
Esta dando erro nessa linha:
SetForegroundWindow(pProcesso.Handle)
Erro: Uma chamada para a função PInvoke [ô]WindowsApplication1!WindowsApplication1.Form1::SetForegroundWindow[ô] desbalanceou a pilha. Isso ocorreu provavelmente porque a assinatura gerenciada de PInvoke não corresponde à assinatura de destino não gerenciada. Verifique se a convenção e o parâmetro de chamada da assinatura de PInvoke são iguais aos da assinatura não gerenciada de destino.
Você conseguiu rodar no seu PC?
Esta dando erro nessa linha:
SetForegroundWindow(pProcesso.Handle)
Erro: Uma chamada para a função PInvoke [ô]WindowsApplication1!WindowsApplication1.Form1::SetForegroundWindow[ô] desbalanceou a pilha. Isso ocorreu provavelmente porque a assinatura gerenciada de PInvoke não corresponde à assinatura de destino não gerenciada. Verifique se a convenção e o parâmetro de chamada da assinatura de PInvoke são iguais aos da assinatura não gerenciada de destino.
Você conseguiu rodar no seu PC?
Cara, tu tem que ler o código e mudar ele para tua necessidade.
Eu até comentei as linhas para auxiliar.
Se tu quer tirar o numero de repetições, é só alterar o laço de repetição.
Quanto ao erro da API SetForegroundWindow...
No meu computador, funcionou direitinho. Eu uso Windows 7. E tu?
Além disso, é importante rodar o visual studio como ADMINISTRADOR. Dependendo das configurações de segurança, o Windows pode bloquear o uso de API.
Eu até comentei as linhas para auxiliar.
Se tu quer tirar o numero de repetições, é só alterar o laço de repetição.
Quanto ao erro da API SetForegroundWindow...
No meu computador, funcionou direitinho. Eu uso Windows 7. E tu?
Além disso, é importante rodar o visual studio como ADMINISTRADOR. Dependendo das configurações de segurança, o Windows pode bloquear o uso de API.
Uso o Windows 7 e VB10, executo como administrador.
Fico grato pela paciência e dedicação, vou trabalhar nesse codigo e tentar fazer conforme as minhas necessidades, se não conseguir retorno ao fórum.
[c]Muito obrigado.
Fico grato pela paciência e dedicação, vou trabalhar nesse codigo e tentar fazer conforme as minhas necessidades, se não conseguir retorno ao fórum.
[c]Muito obrigado.
Tu copiou o código inteiro? A API foi declarada como eu coloquei?
Que erro estranho
Uma dica: toda vez que tu colar um código no forum, use a tag [Ô]C[Ô] entre colchetes.
E dá uma olhada no projeto anexo. Funcionou perfeitamente para mim...
Que erro estranho
Uma dica: toda vez que tu colar um código no forum, use a tag [Ô]C[Ô] entre colchetes.
assim
E dá uma olhada no projeto anexo. Funcionou perfeitamente para mim...
Faça seu login para responder