PROBLEMA COM KEYSTATE
Citação::
A propriedade Interval do Timer é selecionado em milisegundos (ms). Cada segundo tem 1000 milisegundos (ms).
Se tu colocar [Ô]1[Ô] como valor da propriedade, o teu timer será executado a cada milisegundo.
Ocorre que o pressionar de uma tecla por uma pessoa dura entre 300ms e 1 segundo. O próprio teclado fisicamente não consegue trabalhar mais rápido, já que a tecla precisa ser pressionada, registrada e solta.
Por isso que o texto está sendo repetido.
Se tu quer resolver teu problema, aumente o valor da propriedade Interval para 300~1000 ou crie alguma maneira (variável) de saber se a tecla já foi pressionada nos últimos X milisegundos.
E difÃcil vc compreender se vc nem baixou o exe que eu deixei ... Já falei e repito: DIGITANDO MESMO COM A TECLA NÃO ESTANDO PRESSIONADA ... Baixa o .exe ou faz uma form igual a minha se vc quiser coloque com timer 300, 500, 1000, 5000 se for o caso... Após isso comprima ela e vá onde você salvou o .exe e execute como ADMINISTRADOR ... aperte a tecla e solte ... como se você estivesse digitando....
OBS: o sendkey tem que ter no minimo 50 caracteres ...
Outra coisa se pudesse deixar o skype eu mostraria sem problemas através do compartilhamento de telas pois e difÃcil explicar o erro... Pq se não fizer exatamente oque eu falei em todas minhas respostas ... Não vai ter o erro igual...
Pois como agora você disse que o erro pode ser por causa do tempo do timer ou é por causa disso... Mais se tivesse feito oque eu pedi [Ô]BAIXAR O EXE DIGITAR O TEXTO DO OBS, APERTAR A TECLA DO TECLADO E SOLTAR[Ô] Você veria oque estava ocorrendo...
P.S: Meu skype ta ai só add estarei a prontidão...
é ter muita boa fé... Manda o projeto oras... Até porque, pedir pra alguém criar um projeto só pra testar isso é tenso...
Abraços!
Desculpe mas me sinto na obrigação de defencer o colega ASHKATCHUP que dedicou tempo dele para te ajudar. Sem muitas delongas, farei apenas duas citações de seus comentários...
Citação:e outra já falei porque o erro acontece... ele fica detectando que a tecla ainda está pressionada e fica digitando infinitamente... Esse é apenas um projeto teste ... Só tem praticamente esses códigos ai...
Se tu já sabe porque o erro acontece, então não precisa de ajuda, visto já conhecer o motivo. A menos que o que tu quis dizer seja que sabe qual o erro (mas não o porque) e neste caso te expressasse mal.
Se foi foi expressãpo mal feita, precisas de ajuda em teu código mesmo, então quando o colega ASHKATCHUP pediu para postar os códigos, ele apenas pediu para que tu fornecesse as condições para tu mesmo ser ajudado. Não diga que ele está insistindo, afinal o interesse é teu e ele apenas quer te ajudar, igual tantos outros.
Citação:Você falou que quer saber o porque ele acontece na obs já coloquei como faz para você ver ele acontecendo..
Citação:
:
OBS: Escreva um texto tipo este [Ô]Oi como vai voce[Ô] Logo em seguida abra um bloco de notas e aperte F4 ... vai começar escrever sem parar ...
para parar isso aperte ctrl +alt +delete caso não consiga fechar a aplicação
Mas como ta insistindo segue ele....
FORM 1
Com relação a executar teu .exe em nossas máquinas, sem chance. Ajudamos no código, não em ver o erro repetindo. Temos alguns anos de programação nas costas e entendemos bem lÃngua portuguesa, pode ter certeza que entendemos tua dificuldade sem executar um .exe que não sabemos se foi infectado por algum vÃrus em teu computador (mesmo sendo sem seu conhecimento da infecção).
Tudo de bom.
Citação::
Cara, você acha mesmo que alguém num fórum de programação vai executar um arquivo executável?
é ter muita boa fé... Manda o projeto oras... Até porque, pedir pra alguém criar um projeto só pra testar isso é tenso...
Abraços!
Já ta ai .. Em alguma das minhas respostas
Citação::
JoaoMeira...
Desculpe mas me sinto na obrigação de defencer o colega ASHKATCHUP que dedicou tempo dele para te ajudar. Sem muitas delongas, farei apenas duas citações de seus comentários...
e outra já falei porque o erro acontece... ele fica detectando que a tecla ainda está pressionada e fica digitando infinitamente... Esse é apenas um projeto teste ... Só tem praticamente esses códigos ai...
Se tu já sabe porque o erro acontece, então não precisa de ajuda, visto já conhecer o motivo. A menos que o que tu quis dizer seja que sabe qual o erro (mas não o porque) e neste caso te expressasse mal.
Se foi foi expressãpo mal feita, precisas de ajuda em teu código mesmo, então quando o colega ASHKATCHUP pediu para postar os códigos, ele apenas pediu para que tu fornecesse as condições para tu mesmo ser ajudado. Não diga que ele está insistindo, afinal o interesse é teu e ele apenas quer te ajudar, igual tantos outros.
Você falou que quer saber o porque ele acontece na obs já coloquei como faz para você ver ele acontecendo..
Citação:
:
OBS: Escreva um texto tipo este [Ô]Oi como vai voce[Ô] Logo em seguida abra um bloco de notas e aperte F4 ... vai começar escrever sem parar ...
para parar isso aperte ctrl +alt +delete caso não consiga fechar a aplicação
Mas como ta insistindo segue ele....
FORM 1
Com relação a executar teu .exe em nossas máquinas, sem chance. Ajudamos no código, não em ver o erro repetindo. Temos alguns anos de programação nas costas e entendemos bem lÃngua portuguesa, pode ter certeza que entendemos tua dificuldade sem executar um .exe que não sabemos se foi infectado por algum vÃrus em teu computador (mesmo sendo sem seu conhecimento da infecção).
Tudo de bom.
Eu disse que o ASHKATCHUP está insistindo em que o erro é no timer!! Não no executável pois como falei ele está detectando a tecla apertada mesmo estando sem apertar... Mandei os códigos da form mais como eu disse o erro acontece como executa em modo adm ... [Ô]ENTÃO NÃO EXECUTA EM MODO ADMIN[Ô] Preciso dele em modo admin!! Pois se a form esta minimizada e você aperta a key com uma janela ativa em modo administrador não funciona.... [Ô] VOCÊ SABE PORQUE O ERRO ACONTECE, ENTÃO NÃO PRECISA DE AJUDA....[Ô] Ok... EU SEI COMO O ERRO ACONTECE, NÃO por que acontece... até porque o meu pedido de ajuda e como eu resolvo isso... [Ô]NÃO VOU EXECUTAR SEU EXECUTÃVEL PODE TER VÃRUS OU VOCÊ COLOCOU[Ô] , Pra que eu pediria ajuda e colocaria um vÃrus no executável?? ou porque eu mandaria um executável infectado se eu preciso de ajuda, Também falei se não quisesse executar só usar os códigos que eu passei... mas lembrando MODO ADM... AINDA MAIS dei uma opção pode me ligar no skype qualquer hora só era me avisar que iria me ligar ... Que eu mostraria em minha tela...
[Ô]Desculpe mas me sinto na obrigação de DECENDER[Ô] Não tem ninguém brigando para precisar de [Ô]DECENDER[Ô] eu só disse que ele esta desatento as minhas mensagens pois ele disse que o problema e no TIMER e é no keystate que detecta a key pressionada mesmo não estando ( REPETINDO ISSO... )
Enfim cara se ler todas minhas mensagens e seguir minhas instruções vai acontecer o erro dai eu quero ajuda de como faz para não acontecer ( E é obvio que e mais facil entender se estiver tendo o mesmo erro do que eu )
é acho que e só, tomará que dê para entender ...
PS: [Ô]Temos alguns anos de programação nas costas[Ô] Ok... Só olhar a minha data de inscrição vai ver que eu não comecei ontem, ou esse mês ou esse ano...
PS²: [Ô]entendemos bem lÃngua portuguesa[Ô] Gostei do seu cinismo, estava achando que escreviam em hebraico...
[txt-color=#e80000]Não fui grosso com ninguém não fiz cinismo com ninguém mas tu vir me responder de tal maneira... faça me rir.. [/txt-color]
ASHKATCHUP me ajudou e está me ajudando bastante... ao contrario de você que devia estar sem oque fazer e veio comentar errado e ainda por cima interpretando tudo muito mal... (OBS: MUITO MAL)... Começei mexer no vb.net em 2010 e se eu soubesse de tudo não teria me cadastrado aqui... E se eu postei um tópico pedindo ajuda, e porque eu PRECISO da AJUDA...
ASHKATCHUP continue assim... quero falar novamente você está me ajudando muito ... e se você também entendeu mal como pessoa... me desculpe por qualquer coisa... espero que lendo isso você entenda ...( CASO NÃO TENHA ENTENDIDO )
Você diz que eu falei:
Citação:
[Ô]NÃO VOU EXECUTAR SEU EXECUTÃVEL PODE TER VÃRUS OU VOCÊ COLOCOU[Ô] , Pra que eu pediria ajuda e colocaria um vÃrus no executável?
Mas eu falei, na verdade foi outra coisa. Você pede para ler seus tópicos, mas leia você isto:
Citação:pode ter certeza que entendemos tua dificuldade sem executar um .exe que não sabemos se foi infectado por algum vÃrus em teu computador (mesmo sendo sem seu conhecimento da infecção).
Outro exemplo. Você diz que eu falei:
Citação:VOCÊ SABE PORQUE O ERRO ACONTECE, ENTÃO NÃO PRECISA DE AJUDA....
Mas eu falei:
Citação:Se tu já sabe porque o erro acontece, então não precisa de ajuda, visto já conhecer o motivo. A menos que o que tu quis dizer seja que sabe qual o erro (mas não o porque) e neste caso te expressasse mal.
Nunca foi dito que você intencionalmente pode ter infectado um .exe! Mas que .exe não se executa!
Além de apontar coisas que não foram ditas, você cita como se tivesse sido usado letras maiúsculas, em forma de grito por teclado. JoaoMeira, você foi o único que fez isto!
Você também colocou falas suas, junto com as minhas, em uma única citação, e quem ler apenas o último tópico vai pensar que eu disse uma coisa que foi você que falou! Foi má intenção? Ou apenas desatenção, que você diz que o colega ASHKATCHUP é que que tem?
Eu lamento, mas você quer mais briga e exigências do que ajuda.
Não há como te ajudar, porque não é isto exatamente o que você quer. Ou se quer, não sabe como conseguir, indo pelas vias incorretas.
De minha parte vai ficar o assunto por aqui.
Vamos para outros tópicos.
Tudo de bom.
Citação::
JoaoMeira...
Você diz que eu falei:
[Ô]NÃO VOU EXECUTAR SEU EXECUTÃVEL PODE TER VÃRUS OU VOCÊ COLOCOU[Ô] , Pra que eu pediria ajuda e colocaria um vÃrus no executável?
Mas eu falei, na verdade foi outra coisa. Você pede para ler seus tópicos, mas leia você isto:
pode ter certeza que entendemos tua dificuldade sem executar um .exe que não sabemos se foi infectado por algum vÃrus em teu computador (mesmo sendo sem seu conhecimento da infecção).
Outro exemplo. Você diz que eu falei:
VOCÊ SABE PORQUE O ERRO ACONTECE, ENTÃO NÃO PRECISA DE AJUDA....
Mas eu falei:
Se tu já sabe porque o erro acontece, então não precisa de ajuda, visto já conhecer o motivo. A menos que o que tu quis dizer seja que sabe qual o erro (mas não o porque) e neste caso te expressasse mal.
Nunca foi dito que você intencionalmente pode ter infectado um .exe! Mas que .exe não se executa!
Além de apontar coisas que não foram ditas, você cita como se tivesse sido usado letras maiúsculas, em forma de grito por teclado. JoaoMeira, você foi o único que fez isto!
Você também colocou falas suas, junto com as minhas, em uma única citação, e quem ler apenas o último tópico vai pensar que eu disse uma coisa que foi você que falou! Foi má intenção? Ou apenas desatenção, que você diz que o colega ASHKATCHUP é que que tem?
Eu lamento, mas você quer mais briga e exigências do que ajuda.
Não há como te ajudar, porque não é isto exatamente o que você quer. Ou se quer, não sabe como conseguir, indo pelas vias incorretas.
De minha parte vai ficar o assunto por aqui.
Vamos para outros tópicos.
Tudo de bom.
Disse que o ASHKATCHUP está me ajudando .. e outra... nenhum momento citei que você falou nada só disse coisas que talvez iriam falar ...
Viu como tua interpretação e boa?? e ESCREVER EM MAIUSCULO e uma forma de chamar a atenção pois não gosto de ficar escrevendo em negrito
[.b] EXEMPLO [./b]
Obs: Sem os PONTOS.
Não estou querendo briga com ninguém mas como você veio falando de defender o ASHKATCHUP sendo que interpretou mal (NOVAMENTE), queria que eu falasse:
TUDO BEM CARA EU NÃO SEI ESCREVER EM PORTUGUÊS, E VOCÊ ESTA CERTÃSSIMO EM [Ô]DECENDER[Ô] ELE, E EU PASSEI O CODIGO DO PROJETO ERRADO SÓ PARA ELE NÃO CONSEGUIR ME AJUDAR.
Só que você já veio falando coisas de outro sentido eu dei as opções baixar o meu executavel e abrir somente.
ou colocar o codigo que eu passei no projeto e executar o .EXE em modo ADM ( DO PROJETO QUE VOCÊ CRIOU NÃO O MEU).
OBS: ISSO NÃO é EXIGENCIA ELE PERGUNTOU COMO OCORRIA E EU FALEI...
Você vim falar que eu quero brigar ... Entro no fórum praticamente todo dia só para visualizar esse tópico ver se consigo encontrar a solução 2 paginas eu e o ASHKATCHUP trocando informações, e você fala que eu quero caçar briga... OK!
Então meu amigo me desculpe qualquer coisa que eu te falei mas você se expressa muito mal então se não e isso que você quer dizer (TUDO CITADO ACIMA..)
Enfim, em nenhum momento fiz exigências eu apenas falava [Ô]não funcionou[Ô], [Ô]funcionou[Ô], [Ô]pra que serve isso?[Ô] coisas do tipo... Sempre seguindo oque ELES me pediam...
De qualquer forma, eu baixei o teu exe, executei como administrador e esse comportamento que tu descreve não aconteceu.
Quando eu aperto F4, o programa escreve a frase umas 2~3 vezes no notepad. Ele não fica repetindo infinitamente.
Ou seja, o problema não é o código nem a API. Deve ser algo no teu PC.
Citação::
O ZEUZEBIO3 está certo quanto à postagem de executáveis: por causa de virus, preferimos que se poste o código fonte.
De qualquer forma, eu baixei o teu exe, executei como administrador e esse comportamento que tu descreve não aconteceu.
Quando eu aperto F4, o programa escreve a frase umas 2~3 vezes no notepad. Ele não fica repetindo infinitamente.
Ou seja, o problema não é o código nem a API. Deve ser algo no teu PC.
Okay, após ver esta mensagem mandei para uns amigos no skype que relataram ter o mesmo erro que o meu após apertar F4 algumas vezes... (E FALARAM QUE SÓ ERA APERTAR F4 NOVAMENTE QUE PARAVA... ) Mas não teria um jeito sem ser pressionar F4 novamente ?
OBS: Fiz oque pediu sobre um intervalo entre uma mensagem e a outra...
Declarei a dim no inico do .vb
Dim tescrita As String = 0
Na timer com intervalo de 1 adicionei este codigo
If hotkey2 = True Then
If tescrita = 0 Then
SendKeys.Send(Form2.TextBox1.Text)
tescrita = 100
End If
End If
E este fora da:
If ComboBox1.Visible = False And ComboBox2.Visible = False Then
If tescrita > 0 Then
tescrita = tescrita - 1
End If
o timer ficou assim...:
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
Dim hotkey2 As Boolean
If tescrita > 0 Then
tescrita = tescrita - 1
End If
If ComboBox1.Visible = False And ComboBox2.Visible = False Then
If ComboBox2.Text = [Ô]F4[Ô] Then
hotkey2 = GetAsyncKeyState(Keys.F4)
ElseIf ComboBox2.Text = [Ô]F5[Ô] Then
hotkey2 = GetAsyncKeyState(Keys.F5)
End If
If hotkey2 = True Then
If tescrita = 0 Then
SendKeys.Send(Form2.TextBox1.Text)
tescrita = 100
End If
End If
End If
End Sub
Qual a versão do Visual Studio tu está usando?
Qual versão do Windows tu usa? x64 ou x86?
Me add no skype: juvenalbk
hotkey2 = (GetAsyncKeyState(Keys.F4) < 0)