Ir para conteúdo
  • Cadastre-se

Problema na função SendMessage()


Posts Recomendados

Primeiramente boa dia/tarde/noite.
Fiz um programa para enviar mensagens de comando para uma outra aplicação (programa). Pesquisei muito sobre o assunto e encontrei nada a respeito do meu problema. 
O que eu acontece é o seguinte: O programa só manda o comando para a aplicação quando o parâmetro é 'WM_CHAR', quando tentei o parâmetro 'WM_KEYDOWN' ele não reproduz dentro da aplicação. Porém isso ocorre apenas na aplicação na qual e eu desejo que funcione. Testei em outros lugares e funciona perfeitamente, ou seja, o problema não está no código, mas sim em alguma resistência (barreira) da aplicação em questão.
Ou seja, pra ficar mais claro: 
 
Essa linha de comando é representada na aplicação:
SendMessage(h, WM_CHAR, B, 0);
 
Essa linha de comando não é representada na aplicação:
SendMessage(h, WM_KEYDOWN, VK_RETURN, 1);
SendMessage(h, WM_KEYUP, VK_RETURN, 1);

 

OBS: 'h' é a Handle da aplicação em questão.
 
Na hora de dar o ENTER (RETURN) ele simplesmente não envia, assim como qualquer outra tecla que não seja uma letra. Então se eu colocar no campo 'Edit' a palavra 'olá!' ele fica escrevendo a palavra infinitamente e não envia.
Gostaria que alguém me ajudasse a achar alguma alternativa (de repente mudar a função usada, ou captar o comando na aplicação, usar mensagens de notificação, enviar mensagem para a handle filha).
Grato !

Link para o post
Compartilhar em outros sites
  • 1 month later...

que eu me lembro no delphi, existia eventos, oncreate, onclickdown, key e etc, ao inves de tentar usar sendmessage, tente usar postmessage, a uns anos atras quebrei minha cabeça para fazer isso do software da empresa enviar para a maquina do client via T.V(team viewer), meu gerente me ajudo falando pra usar no "evento" do "botao" ou da ação, ve se funciona, acho que é isso

 

PostMessage(FindWindow(nil, ´nome da aplicaçao´), h, WM_KEYDOWN, VK_RETURN, 1 );
 

se nao, me desculpe

 

 

OBS.: Faz anos que nao mecho mais com delphi, mas foi uma situação que marcou e me lembrei ^^

Editado por kukas9
adição (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por 652660
      Primeiramente Boa Noite.
      Pessoal, sou novo nessa área de desenvolvimento de BOTS (tem 2 dias que eu mexo com o delphi) porém já tinha uma pequena noção de programação em C. Montei um BOT bem basicão mesmo, e mexendo nos códigos aqui me surgiu uma grande dúvida. A medida que eu mudava o Handle para versões diferentes do Tibia algumas linhas de código compilavam porém não surtiam efeitos no Tibia (cliente). O que me deixou mais impressionado foi quando tentei usar no cliente do Medivia, nenhuma função funcionava. Parece que eles possuem um sistema muito bom de proteção, mas não consegui engolir até agora. Pesquisei mais a fundo e encontrei algumas funções para tentar solucionar (FindWindowEx; EnumChildWindows) mas nada resolveu.

      ENFIM, gostaria que vocês me ajudassem a fazer esse BOT funcionar no cliente do Medivia. As funções básicas mesmo, sem o uso de Address.
      Abaixo deixarei o BOT para download.
      Grato desde já.

      PBot v1.0.rar
    • Por AllanH
      Olá galera bom eu sou um pouco antigo nesse ramo de tibia porém nunca investi na area de programação, tou querendo saber quais linguagens as source usa e como aplicar, obrigado.
    • Por Hazze
      ===============SOURCE IONBOT===============
       
      Então galera..
      Meu nome é Anderson tenho 21 anos, não sou programador apenas tenho programação como hobby.

      Jogo tibia desde 2008 e me iniciei na programação 2 anos depois em 2010.
      Ao inicio foi só por curiosidade que resolvi "aprender" a programar bots pra tibia. Foi ai que eu conheci pascal e posteriormente o delphi.
      Criei meu primeiro bot healer apenas vendo sources de exemplos na internet. Ele era bem simples e contia tudo aquilo de simples que todo "1º newbie bot" era capaz de fazer (food eat, ant-kick etc..), mas apesar de simples era funcional.
      Um dia pesquisando na net procurando sobre o que mais eu poderia adicionar ao meu bot, encontrei uma source disponibilizada pelo @kimoszin que era capaz de ler o battlelist do tibia.
      A partir dai eu fiz varias mudanças no meu healer e criei muitos diferentes projetos de bots sempre procurando adicionar algo a mais.

      Esse projeto ionbot foi meu penúltimo projeto de uns 1~2 anos atrás..
      Intusiasmado em criar "algo open source" resolvi disponibilizar meu projeto a um tempo abandonado a todos.
      Muita coisa (se não a maioria) no bot foi escrita por min apenas usando a lógica por min mesmo.

      Nota:
      poderá haver trechos na source que podem parecer desnecessários ou até escritos de forma "pré histórica". Como eu disse, eu não sou um programador (pelo menos não um experiente) e tudo que eu sei sobre programação aprendi lendo artigos na net.

      Bem vamos ao que interessa..

      ====>O que o bot faz?

      O bot está atualizado para o tibia 10.53 mais pode facilmente ser atualizado.

       Healer               : auto cura (spell,potion,rune)
       Refiller              : auto restaura mana
       Friend heal       : auto cura aliados (com spell, potion ou rune)
       Auto-spell         : auto "utamo vita", "gran hur", "utito tempo"..
       Attack-spells    : usa determinada spell/rune na criatura configurada..
       Auto-attack       : auto ataca criaturas configuradas no attack-spells
       Ml-train             : treiner de magic level
       Auto-eat            : usa hotkey do food de tempos em tempos..
       Ant-idle             : evita o logout do char fazendo ele "dançar"
       Runemaker       : auto cria runas (com spells já setadas)
       Alerts                 : alerta se player, pk, membro de war etc.. Esta na tela
       Reconnect        :  reconecta o char com login e senha configaráveis
       Light-hack         : full light do tibia
       Scripter             : possibilidade de criar scripts em lua engine

      O ionbot foi criado com o intuito de tentar minimizar as chances de
      ser pego em massban (usando funções de teclado e mouse em intervalos
      ramdômicos).
      Eu e mais 4~5 amigos meus, usamos ele durante muito tempo (mais de ano)
      e ninguem foi pego em mass ban.
      Lembre-se : ao usar qualquer bot/macro de qualquer tipo (com simulação
      de teclado/mouse, com packets, dll injection, memory write etc..)
      Você sempre estará sujeito a ser banido/deleted.

      Á muita coisa o que se pode fazer com essa source basta ter imaginação.
      >>um exemplo é um client hack (onde se pode "usar" mounts, outfits premium
      alterando valores na memoria do tibia).
      >>outro exemplo é criar um "auto equip item" já que na versão atual do
      tibia é possivel equipar items através de hotkeys.

      Todas as funções podem ser facilmente alteradas para bem atender ao que
      se deseja fazer.

      ====>Como posso editar e recompilar o bot?

      O bot foi escrito no delphi 2010. Para ser mais especifico eu usei o
      embarcadero rad studio 2010 sem componentes adicionais.
       
      ====>Como atualizar a source para a versão atual do tibia?

      basicamente isso pode ser feito apenas atualizando os endereços de memória
      do tibia para a versão atual. Com o cheat engine é possivel achar todos
      os endereços.

      ====>Você dará suporte para resolver dúvidas sobre a source?

      Provavelmete não. Caso eu encontre tempo para responder eu responderei
      mais é bem provável que não. Apesar de alguns trechos não estarem
      "comentados" a source está muito fácil de ser entendida.

      ====>Porquê você está disponibilizando e tornando free open source?
      Já vi muitas pessoas fazerem isso com aplicativos bem mais complexos.
      Apesar de ter gastado muito tempo "montando" esse bot não vejo porquê não
      disponibilizar.

      ====>Porquê você escolheu o tibiaking para postar?

      A grande maioria das minhas dúvidas foi exclarecida aqui. Não vejo porque
      não contribuir com o que eu aprendi.
      ====>O que eu posso fazer com a source?

      Basicamente você pode fazer o que você quiser com a source. A partir de hoje
      eu a tornei um projeto open source. A única coisa que eu peço
      (e nem precisava pedir) é um simples "obrigado por compartilhar" e que tenha
      em mente que estou fazendo isso de bom grado.
      Mantendo os créditos da source eu também agradeceria.
       
      @AndersonHz  ou @Hazze (Eu) : Por iniciar o projeto e montar o bot.
      @Kimoszin : Por ajudar com funções/explicações essenciais
      @TibiaKing : Pela oportunidade de compartilhar o projeto aqui.
      @Outros : Por disponibilizar bibliotecas (como a Unit Lua) funções, turoriais etc..
       
      ====>Informações adicionais

      Muitas funções do bot foram tiradas da internet e eu não sei a quem devo
      me dirigir quanto aos creditos de cada função.
      Quase todas foram adaptadas por min.
      Basicamente eu apenas "montei um bot simples" com o que eu achei/aprendi
      na internet.
      Pequenas sources postadas aqui que fizeram a diferença.
      Gostaria de agradecer também a outras pessoas, mais eu nem lembro mais
      onde tirei os códigos e muito menos os nomes.

      Espero que seja de ajuda esse pequeno e simples projeto.
      Obrigado a você que leu todo esse texto   (sei que muitos irão apenas baixar)
      Comente o que achou do bot, poste a sua versão melhorada da source ou pelo
      menos agradeça se foi de ajuda. Não custa nada .
      Postar a versão melhorada da source será de ajuda a todos.
      PEÇO QUE POR FAVOR MANTENHA OS DEVIDOS AUTORES DO BOT  (ISSO INCLUI
      OS AUTORES DAS BIBLIOTECAS/FUNÇÕES/PROCEDURES USADAS NO MESMO).
       
      O DOWNLOAD DA SOURCE ESTÁ ANEXADO AO POST.
       
      ionBot.zip
       
      NAO POSTAREI O SCAN DO ARQUIVO POIS SE TRATA DA SOURCE E NÃO DO PROJETO COMPILADO.
      Se alguém quiser o projeto compilado é só pedir que eu posto.
       
      BOM PROVEITO E Obrigado Galera.
       
      Algumas screenshots:
       



       
    • Por Summ
      (Video2Brain) Curso Fundamental de After Effects CS6 100% Photoshop CS6 – 6GB AlgaWorks – Fundamentos Java e OO Art e Color – Adriano Gianini ASP, Fireworks, javascript, php, sql,xml, jogos emflash Canal dos Concursos – Portuguˆs – 5GB Canal dos Concursos – Racioc¡nio L¢gico 4GB CERS – Direito Constitucional Come‡ando do Zero 6GB CERS – Portuguˆs Come‡ando do Zero – 5GB Cinema 4D – Release 15 – 6GB Clavis – Curso de Auditoria de Seguran‡a em Aplica‡äes Web (COMPLETO).rar.1 Clavis – Curso de Auditoria de Seguran‡a em Aplica‡äes Web (COMPLETO).rar Clavis – Teste de InvasÆo em Redes e Sistemas ( COMPLETO ).rar Cole‡Æo Aprenda F cil ViolÆo – Completo – 5GB Concurso Banco do Brasil 2012 – Completo 47GB Concurso Caixa Economica + Banco do Brasil 2012 – 24GB Concurso CEF – Conhecimentos Banc rios – 14GB Criando o Caos no Photoshop 5GB Curso – HTML Curso 101 Dicas de Photoshop Curso Abobe ilustrator cs4 Curso Android – B sico 4GB Curso Asp.Net – Completo Curso C Sharp – DevMedia Curso Certifica‡Æo Linux LPI – N¡vel 1 Curso Completo de PHP, ASP, SQL, XML, JavaScript Curso Completo de Programaçãoo.rar Curso Criando uma aplica‡Æo client.server no Visual Studio 2005 (Curso B sico) Curso de Conserto de Placa-mÆe + Eletr“nica Aplicada … Inform tica 4GB Curso de Eletr“nica 5GB Curso de Eletronica em 5 DVD (Video Aula) Curso De Firewall – Revista+Cd Hacker Curso de Fotografia e V¡deo Digital – Completo 9GB Curso de HTML e CSS Essencial Curso De Infraestructura Windows Server 2003 Curso de Inglˆs [English Way] – Completo – 35GB Curso de Inglˆs English Way – Completo – 65GB Curso de Java – Completo 12GB Curso de Photoshop Curso de Php com Mysql (Programmer Web) By Viiniloko Curso de PHP com MySQL, AJAX e XML Curso de PHP Curso de wordpress – vol 2 – MX MASTERS (1) Curso de wordpress – vol 2 – MX MASTERS Curso Dreamweaver CS6 – Adriano Gianini_by_D.Azrael.rar Curso Interativo Access Curso Photoshop CS5 Completo – Adriano Gianini Curso PHP 5 Completo – Adriano Gianini 4GB Curso PHP 5 Completo – Adriano Gianini.rar Curso Pr‚-Vestibular Completo – 4GB Curso Pr‚-Vestibular Completo 32GB Curso Web design Fabio Goody.rar Dam sio – Direito Concurso da Pol¡cia Federal 2013 – 9GB Direito Administrativo Come‡ando do Zero 15GB Identidade Visual – Adriano Gianini Insanity Workout 12GB JavaScript em Video – Aulas[CM] By LilianeGomes Logica de Programa‡Æo 2014.rar Luciano Augusto – Photoshop Total Luciano Augusto – Unity 3D Total Lynda – ASP.NET MVC 4 Essential Training Matem tica Come‡ando do Zero – Renato Saraiva 11GB Material para Concursos P£blicos e Aprendizagem Estudantil 9GB MJailton – Curso Completo de MySQL MJailton – Curso Completo de PHP, CSS e HTML MX Masters – Desenvolvendo Sites Nos Padräes Web Com Tableless mxmasters WordPress.iso P90X – Extreme Home Fitness – Completo 8 GB Pack Cursos iMasters (Tutorias) Photoshop & Fotografia – A Arte da Imagem Conceitual 4GB Pol¡cia Federal – Renato Saraiva 40 GB Portuguˆs Completo – Prof. Marcelo Bernardo 8GB Prof. Neri – SQL e Banco de Dados 12GB Prof. Neri Neitzke – Curso Algoritmo e L¢gica de Programa‡Æo (3 DVDS) Prof. Neri Neitzke – Curso Android Avan‡ado Com GPS e Mapas Prof. Neri Neitzke – Curso Android Avan‡ado Prof. Neri Neitzke – Curso Android B sico Prof. Neri Neitzke – Curso ASP.NET com C# Prof. Neri Neitzke – Curso Banco de dados SQL e Modelagem (3 DVDS) Prof. Neri Neitzke – Curso C# Sharp (2 DVDS) Prof. Neri Neitzke – Curso C# Sharp DVD1 Prof. Neri Neitzke – Curso C# Sharp DVD2 Prof. Neri Neitzke – Curso de Android Completo (B sico, Avan‡ado I, Avan‡ado II) Prof. Neri Neitzke – Curso de Java EE DVD1 Prof. Neri Neitzke – Curso de Java EE DVD2 Prof. Neri Neitzke – Curso de PHP com Mysql e Dreamweaver CS4 (2 DVDS) Prof. Neri Neitzke – Curso Delphi Interbase Prof. Neri Neitzke – Curso Delphi Super Avan‡ado (2 DVDS) Prof. Neri Neitzke – Curso Delphi Super Avan‡ado DVD1 Prof. Neri Neitzke – Curso Delphi Super Avan‡ado DVD2 Prof. Neri Neitzke – Curso HTML, JavaScript, CSS DVD1 Prof. Neri Neitzke – Curso HTML, JavaScript, CSS DVD2 Prof. Neri Neitzke – Curso Java com Hibernate (DVD 1) Prof. Neri Neitzke – Curso Java com Hibernate (DVD 2 e DVD 3) Prof. Neri Neitzke – Curso Java SE I Estoque Prof. Neri Neitzke – Curso Oracle PL-SQL Forms Reports (3 DVDS) – Senha = pr0mp7 Prof. Neri Neitzke – Curso PHP O.O Carrinho de Compras – Senha = pr0mp7 Prof. Neri Neitzke – Gerador Java (2 DVDS) Prof. Neri Neitzke – Java 16 DVDS – Senha = pr0mp7 Prof. Neri Neitzke – Moodle Programa‡Æo Android [B sico] 4GB School Of Net – Curso de PHP – Imersao POO com PHP School Of Net – Curso PHP 5 POO School of Net – PHP Extreme – Workshop Online de PHP 5 – POO School of Net – Zend Framework – Desenvolvimento Profissional Com PHP No PadrÆo MVC T2TI – Curso de PHP T2TI – Curso OpenSwing T2TI – Dominando o MySQL T2TI – Dominando o Oracle T2TI – Jasper IReports T2TI – Java ECF + TEF T2TI – Java Hands On T2TI – JavaScript Starter T2TI – Siscom Java Desktop T2TI – Web Programmer – JSP Treinamentos TI – Curso ASP.NET Com C# Avan‡ado Treinamentos TI – Curso ASP.NET Com C# B sico Treinamentos TI – Curso Visual C# Avan‡ado Treinamentos TI – Curso Visual C# B sico Universidade XTI – Curso Java Universidade XTI – Curso Javascript Universidade XTI – Curso JQuery UpInside – Curso de SEO em PHP UpInside – Curso Fireworks Para Web UpInside – Curso PRO Jquery UpInside – Curso Pro PHP UpInside – Portal Imobili rio com PHP UpInside – Pro Tableless – Padräes Web Win8.1 Pro X86X64+IE11+Dec2013.iso – 4GB Windows 7 Professional SP1 [Fevereiro2014] – 5,5 GB Windows 8.1 Atualizado 14.01.14 + Aplicativos-Senhorff – 7,7 GB Zumba Fitness 24GB Zumba Fitness Gold – Live It Up 9GB Pack com 133 Cursos  
       

       
      Torrents separados  
       

       
       
      Créditos 1000% : Anderson
    • Por haith
      Olá estou tentando desenvolver um bot e estou com um pequeno problema como todos sabemos Tibia usa muito Shift e ctrl...

      tentei de desenvolver varios métodos diferentes até vir aqui e pesquisei de mais, mais a maioria das pesquisas era algo do tipo aperte a key que ele vai te dizer qual é...

      então resolvi vir em um forum de tibia para fazer a pergunta...


      alguém pode me ajudar com este código, quero que ele aperta do shift + f1 até o shift+f12 inclusive o ctrl com a mesma coisa e também os f1 até o f12 por si só.

      Mas esse processo eu acredito que seja 1 pouco demorado e pode ocorrer muitas falhas, tanto que o Shift não está funcionando só o do f-1 até o f12 e o ctrl até o f12 também...

      alguém teria um outro tipo de ideia ou algo do gênero para me ajudar?


      pois bem meu código está assim:


      function hotkey(x :string): string;
      var
      h: HWND;
      i : integer;
      begin

      ~~~~~~~~~~~~~~~~~~aqui ele começa vendo se o que foi enviado veio como f1..f-12 se não for o i vai receber 0 porém ele executa o
      sendMEssage com valor de 0..

      i :=0;
      if x ='F1' then
      i := 112
      else if x ='F2' then
      i := 113
      else if x ='F3' then
      i := 114
      else if x ='F4' then
      i := 115
      else if x ='F5' then
      i := 116
      else if x ='F6' then
      i := 117
      else if x ='F7' then
      i := 118
      else if x ='F8' then
      i := 119
      else if x ='F9' then
      i := 120
      else if x ='F10' then
      i := 121
      else if x ='F11' then
      i := 122
      else if x ='F12' then
      i := 123;
      if i=0 then
      if x ='SHIFT+F1' then
      i := 112
      else if x ='SHIFT+F2' then
      i := 113
      else if x ='SHIFT+F3' then
      i := 114
      else
      i:=0;

      h := FindWindow(nil, 'Tibia'); // acha a janela do tibia
      SendMessage(h, WM_KEYdown, i, 0); //pressiona a tecla
      SendMessage(h, WM_KEYUP, i, 0); //solta tecla

      ~~~~~~~~~~~~~~~~~~~~Nisso se o i chegar com valor de 0 ele não vai ter sido aceito por nenhum dos hotkey então vai continuar a procura....

      if i=0 then
      if x ='SHIFT+F1' then
      i := 112
      else if x ='SHIFT+F2' then
      i := 113
      else if x ='SHIFT+F3' then
      i := 114
      else if x ='SHIFT+F4' then
      i := 115
      else if x ='SHIFT+F5' then
      i := 116
      else if x ='SHIFT+F6' then
      i := 117
      else if x ='SHIFT+F7' then
      i := 118
      else if x ='SHIFT+F8' then
      i := 119
      else if x ='SHIFT+F9' then
      i := 120
      else if x ='SHIFT+F10' then
      i := 121
      else if x ='SHIFT+F11' then
      i := 122
      else if x ='SHIFT+F12' then
      i := 123;

      ~~~~~~~~~~~~~~~~~~~~~~~porém ele executa aqui de novo com valor de 0

      h := FindWindow(nil, 'Tibia'); // acha a janela do tibia
      SendMessage(h, WM_KEYDOWN, VK_SHIFT, 0);
      SendMessage(h, WM_KEYDOWN, i, 0); //pressiona a tecla
      SendMessage(h, WM_KEYUP, i, 0); //solta tecla
      SendMessage(h, WM_KEYUP, VK_SHIFT, 0); //solta tecla

      ~~~~~~~~~~~~~~~~~~~~A qui faz a mesma coisa se chegar com valor de 0 ele cointinua o processo e executa la embaixo...
      if i=0 then
      if x ='CTRL+F1' then
      i := 112
      else if x ='CTRL+F2' then
      i := 113
      else if x ='CTRL+F3' then
      i := 114
      else if x ='CTRL+F4' then
      i := 115
      else if x ='CTRL+F5' then
      i := 116
      else if x ='CTRL+F6' then
      i := 117
      else if x ='CTRL+F7' then
      i := 118
      else if x ='CTRL+F8' then
      i := 119
      else if x ='CTRL+F9' then
      i := 120
      else if x ='CTRL+F10' then
      i := 121
      else if x ='CTRL+F11' then
      i := 122
      else if x ='CTRL+F12' then
      i := 123;

      h := FindWindow(nil, 'Tibia'); // acha a janela do tibia
      SendMessage(h, WM_KEYDOWN, VK_CONTROL, 0);
      SendMessage(h, WM_KEYDOWN, i, 0); //pressiona a tecla
      SendMessage(h, WM_KEYUP, i, 0); //solta tecla
      SendMessage(h, WM_KEYUP, VK_CONTROL, 0); //solta tecla

      end;


      Mas esse processo eu acredito que seja 1 pouco demorado e pode ocorrer muitas falhas, tanto que o Shift não está funcionando só o do f-1 até o f12 e o ctrl até o f12 também...

      alguém teria um outro tipo de ideia ou algo do gênero para me ajudar?
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo