HighBass Postado Agosto 4, 2009 Denunciar Share Postado Agosto 4, 2009 ola, gostaria de uma ajuda.Tenho um programa na area de trabalho que tem as teclas de atalho CTRL+ALT+AUso o VB 6 com windows XPE preciso que nessa rotina quando eu clicar no botao do formulario, esse programa se abra, utilizando as teclas de atalho, ou seja, CTRL+ALT+Ajá tentei com: SendKeys "^%(A)"e simplesmente não acontece nada, como posso fazer isso??Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xistyle Postado Agosto 5, 2009 Denunciar Share Postado Agosto 5, 2009 Você teria que usar o vbCtrlMask + vbAltMask + vbKeyA... acho que isso simularia o Ctrl + Alt + A, mas não sei se irá abrir o programa.Esse aplicativo que abre com essas teclas de atalho, está em execução (running)? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Agosto 5, 2009 Denunciar Share Postado Agosto 5, 2009 Este programa só pode ser aberto atravéz da teclas "CTRL+ALT+A" ? Tenta descobrir qual o nome do arquivo e a sua localização e chame ele diretamente pelo nome pelo VB.Se não souber como chamar um arquivo em VB avisa ai. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 5, 2009 Autor Denunciar Share Postado Agosto 5, 2009 Olha so:Tenho um programa com um icone na area de trabalho que tem as teclas de atalho "CTRL + ALT + A".So que eu preciso criar uma maneira de chamar esse programa dentro de um outro programa em VB, (ao qual eu estou desenvolvendo), já utilizei tb o comando shell, porem o programa não abre por bug dele mesmo, e não tenho o codigo desse programa.então pensei em utilizar as teclas de atalho do icone deste programa dentro do VB utilizando o sendkeys, porem não consigo abrir, simplesmente não acontece nada.Me ajudem pois não sei mais onde buscar ajuda.obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Agosto 5, 2009 Denunciar Share Postado Agosto 5, 2009 Então você precisa usar uma API do Windows. O sendkeys não resolve. Infelizmente eu não achei nada parecido com o seu problema para facilitar, mas uma tentativa que você pode fazer é usar a API SendMessage do Windows. O exemplo mais parecido que achei foi este site: http://www.xtremevbtalk.com/showthread.php?t=92526.Para dar certo você vai precisar saber o nome da janela do aplicativo que você vai chamar.Se eu tivesse mais tempo eu tentava ver se o exemplo da certo para você, mas hoje estou meio enrolado.Tenta ver o que você consegue. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Agosto 5, 2009 Denunciar Share Postado Agosto 5, 2009 Como você está utilizando a função Shell ?Seria +/- isso:Shell "C:\arquivo.exe" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 6, 2009 Autor Denunciar Share Postado Agosto 6, 2009 Ola so, já tentei de tudo e não deu certo.Porem estou com outra ideia agora...Estou abrindo um arquivo .bat pelo VB, e nesse arquivo BAT tem um path de um arquivo executavel.Esse arquivo executavel tem uma tela de login onde eu preciso passar o usuario e a senha e clicar em um botao OK, cujo atalho é ALT+O.Gostaria de passar esse usuario e senha por programaçao para que assim quando eu executar esse programa e tb logo em seguida estar clicando no botao OK.Como faço isso atraves do sendkeys, pois eu não estou conseguindo.Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 6, 2009 Denunciar Share Postado Agosto 6, 2009 fizemos isso certa vez nesse tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=124445 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 6, 2009 Autor Denunciar Share Postado Agosto 6, 2009 (editado) Estou fazendo de um outro jeito, porem, agora estou com um outro problema.Estou abrindo pelo VB um outro aplicativo e nesse aplicativo tem uma tela de menu, onde a tecla F1 chama outra tela, estou usando sendkeys da seguinte forma:SendKeys "{F1}", Falseso que não esta acontecendo nada, alguém saberia me dizer onde esta o erro???Eu tenho que jogar o foco para o VB novamente ou pode sempre permanecer no programa aberto??No caso, somente a tecla F1 que não funciona, se eu colocar qualquer outra tecla funciona normalmenteObrigado. Editado Agosto 6, 2009 por HighBass Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 6, 2009 Denunciar Share Postado Agosto 6, 2009 acho q antes de usar o SendKeys você tera q usar chamar o SetForegroundWindow como no exemplo acima. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 A situaçao agora é outra.Tenho um programa que abre outro programa, e tem uma tela de menus em que não se da para mover pela tecla TAB, somente pelo mouse ou com as teclas F1..F5Nessa tela tem um menu de opçoes onde preciso clicar nele com o mouse ou apertar a tecla F1Porem, preciso enviar um sendkeys para o atalho que é com a tecla F1, e não consigo, não faz nada.alguém sabe me dizer o que fazer?obrigado mais uma vez. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 acho q antes de usar o SendKeys você tera q usar chamar o SetForegroundWindow como no exemplo acima. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 como assim?? não entendi??nas outras telas que tem menus, a tecla TAB funciona e assim eu consegui fazer com que funcionasse o sendkeys enviando a tecla TAB, porem nesta ultima tela do programa que o VB abre, não funciona a tecla TAB, por isso não consigo fazer o sendkeys funcionar, preciso nessa ultima tela simular o pressionamento da tecla F1, e é essa a pedra no meu sapato, se souber de algum codigo ou logica podem passar ok, obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 (editado) mas tipo assim, você abre o programa e imediatamente já da o sendkeys??ou você abre e depois de a janela estar aberta, você espera o usuario clicar em um botao ou coisa assim pra fazer o sendkeys??porque se o usuario clicar em um botao ou coisa assim, a janela perde o foco e ai você precisaria do SetForegroundWindow como eu disse.mas de teste tente fazer o sendkeys de qualquer otra coisa. faca um tab pra ver se não acontece nd, ou de algum caracter q você possa ver alguma reposta no outro programa, pra gente ver se ele recebe sendkeys de outras coisas. Editado Agosto 7, 2009 por kuroi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 (editado) O programa abre, e depois é enviado os sendkeys, estao funcionando, so que na ultima tela tem menus que so funciona se eu clicar com o mouse ou presisonar as teclas de atallho vai de F1..F5, nessa tela não da pra navegar com a tecla TAB.Nessa tela é que não vai o F1, para poder abrir a ultima tela entendeu. E ai eu já não sei como prosseguir, pois preciso abrir essa ultima tela e quem desenvolveu esse programa não tem como me ajudar.Nessa ultima tela o cursor para em um campo texto para digitar um numero (o que não é o meu caso), eu preciso prosseguir com F1, porem, como eu disse antes, não consigo tirar o foco do campo texto porque a tecla TAB não funciona nesta tela, apenas clicando com o mouse ou digitando o F1 Editado Agosto 7, 2009 por HighBass Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 você tentou o teste q eu falei de passar o sendkeys de qualquer caractere pra ver se vai??mas posta o codigo todo q você ta usando pra gente ver. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 já tentei substituir o F1 por outra tecla, porem não faz nada, o problema é que quando o foco esta no programa é como se não existisse outra tecla de atalho a não ser os F1...F5o codigo esta logo abaixo:Private Sub Timer1_Timer() Select Case I 'digita o usuario "adm" Case 0 SendKeys "adm" I = I + 1 'clica no botao OK Case 1 SendKeys "{ENTER}" I = I + 1 'como o foco já esta em F1, então pressiona Enter Case 2 SendKeys "{ENTER}" I = I + 1 'muda o foco para F1 com TAB e pressiona Enter Case 3 SendKeys "{TAB}" SendKeys "{ENTER}" I = I + 1 'envia o cpf/cnpj para a caixa de texto do programa e pressiona Enter Case 4 SendKeys CPF_CNPJ SendKeys "{ENTER}" I = I + 1 'ATE AQUI FEZ TUDO CERTINHO 'DAQUI PRA FRENTE não FUNCIONA MAIS 'aqui precisa abrir outra tela, porem não faz nada Case 5 SendKeys "{F1}" I = I + 1 Case 6 End End Select End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 highbass, depois daquele enter, ele abre uma nova janela no outro programa, certo??então, acho q é como eu tava dizendo, você não tem o foco da janela q deve receber as teclas, por isso não funciona.ai entra o SetForegroundWindow como eu tava dizendo, olha la o tópico q eu passei.você vai ter q implementear juntamente com o FindWindow. espero q o texto da janela q você precisa passar o sendkeys seja sempre o mesmo...so q implementar esse FindWindow tb é um poco chato... em vez disso, você pudia tb tentar usar o Alt + TAB pra dar o foco no seu programa. tipo assim:SendKeys "%{TAB}"mas isso ai é uma gde gambiarra q so vai funcionar se você tiver certeza q o usuario não esta usando outros programas ao mesmo tempo, senao, você pode se perder nas janelas e ai já era. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 Olha so, desde o inicio é somente uma tela, não fica abrindo mais telas, então nesse caso, acredito que o foco esteja sempre no programa do inicio ao fim. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 tem razao, não deveria perder o foco.so não entendi o q você quis dizer com isso aqui:o problema é que quando o foco esta no programa é como se não existisse outra tecla de atalho a não ser os F1...F5e quanto a essa parte aqui:já tentei substituir o F1 por outra tecla, porem não faz nadavocê quis dizer q o sendkeys não funciona, ou ele funciona mas não serve pra fazer o q você quer?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 As unicas teclas que eu tenho para poder fazer alguma coisa no programa são as F1 ate F5, porem, o TAB não funciona para navegar entra as opçoes, somente posso fazer algo ou clicando ou pressionando as teclas F1O sendkeys não faz nada, não da erro e tb não faz o que deveria fazer entendeu que é enviar a tecla F1 como se fosse um presisonamento de teclas Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 Descobri uma coisa nova...Na penultima tela que da pra navegar com o TAB, tb a tecla F1 serve como atalho, porem o F1 não funciona com o sendkeys, consigo somente atraves do TAB e quando chega no foco dou enter.Na ultima tela é que ta dando dor de cabeça, porque não consigo nem navegar com a tecla TAB.O que acontece com o F1 que não funciona??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 8, 2009 Denunciar Share Postado Agosto 8, 2009 (editado) estranho, aqui funciona normal, por exemplo:Shell "notepad", vbNormalFocusSendKeys "{F1}"[/code]ele chama a ajuda do bloco de notas.quanto tempo ta esse seu timer??sera q ele não ta rapido demais?? ai entre o enter anterior e o f1 não taria dando tempo de carregar a proxima tela e por isso você não ta tendo resposta??EDITADO:pensando agora, se o F1 não funciona na tela anterior, o timer não tem nd a ver ne...mas então... sera q não é alguma coisa no seu programa q ta bloqueando o F1??experimenta abrir um vbp novo em branco e poe somente o codigo de abrir o outro programa e o sendkeys pra ver se o f1 vai funcionar.se não funcionar, teste então aquele codigo do notepad q passei acima, porque pelo menos aquele tem q funcionar. Editado Agosto 8, 2009 por kuroi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HighBass Postado Agosto 10, 2009 Autor Denunciar Share Postado Agosto 10, 2009 teste Shell "notepad", vbNormalFocus SendKeys "{F1}"e funcionou beleza, mas no meu programa não sei o que acontece. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 10, 2009 Denunciar Share Postado Agosto 10, 2009 teste Shell "notepad", vbNormalFocusSendKeys "{F1}"[/code]e funcionou beleza, mas no meu programa não sei o que acontece.esse teste funcionou num novo vbp ou no programa q você já estava desenvolvendo??experimenta abrir um vbp novo em branco e poe somente o codigo de abrir o outro programa e o sendkeys pra ver se o f1 vai funcionar.esse teste aqui você tentou?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
HighBass
ola, gostaria de uma ajuda.
Tenho um programa na area de trabalho que tem as teclas de atalho CTRL+ALT+A
Uso o VB 6 com windows XP
E preciso que nessa rotina quando eu clicar no botao do formulario, esse programa se abra, utilizando as teclas de atalho, ou seja, CTRL+ALT+A
já tentei com:
SendKeys "^%(A)"
e simplesmente não acontece nada, como posso fazer isso??
Obrigado.
Link para o comentário
Compartilhar em outros sites
24 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.