Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Vamos desenferrujar a parte de programação em C# no fórum...

-

Quando nós programadores tentamos enviar as teclas Ctrl+Q para o cliente do Tibia, é um grande problema pois clientes do tipo Tibia (jogos), usam algumas condições especiais...


c.Input.SendKeyDown(Keys.Control);

c.Input.SendKeyChar(Keys.Q);

c.Input.SendKeyUp(Keys.Control);

Esse é um exemplo do que não irá funcionar no cliente do Tibia, mas e agora, 'comofaz'? é simples, enviem a 'key especial', segue abaixo o código:

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYDOWN, 0x11, 0x10001); // control key

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYDOWN, Keys.Q, 0x100001) // 'q' key

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYCHAR, 0x11, 0x100001) // ESPECIAL CHAR CODE

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYUP, 0x11, 0x10001); // control key

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYUP, Keys.Q, 0x100001) // 'q' key

Explicar um código é um tanto quanto simples, porém, você entender depende (e muito) de sua habilidade com a linguagem e/ou programação em geral. Vamos lá, agora vocês me perguntam:
  • Como você descobriu que precisa de uma 'key especial'? Explicar isso é muito fácil, segue abaixo um pequeno tutorial:
O próprio Visual Studio já vem com um programa, no qual você pode ver quais teclas foram digitadas em X janela, para ver isso é simples, apenas procure por Spy++ ("C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\spyxx.exe"); Abra ele e procure pelo Tibia; Clique na primeira Thread que aparecer; Clique com o direito em Windows 'NUMEROS' "Tibia" TibiaClient; Clique em Messages; Clique dentro da caixa que apareceu e vai em Logging Options; Na aba MESSAGES, desmarque TUDO, isso mesmo, TUDO e deixe apenas Keyboard; Clique em OK; Clique com o direito na mesma caixa de antes, e clique em Clear Message Log; Vá no seu Tibia e pressione Ctrl+Q; Repare que no Spy++ apareceu alguns Logs, é isso mesmo que queremos! Reparem: 33fdlkj.png
Pronto, agora você já sabe como enviar a tecla Ctrl+Q para o Tibia =) Outros exemplos Úteis:

Ctrl+G:


c.Input.SendMessage(c.hWnd, Hooks.WM_KEYDOWN, 0x11, 0x10001); // control key

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYDOWN, Keys.G, 0x100001) // 'g' key

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYCHAR, 0x11, 0x22001) // ESPECIAL CHAR CODE

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYUP, 0x11, 0x10001); // control key

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYUP, Keys.G, 0x220001) // 'g' key

Function logout:

public void Logout()

{

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYDOWN, 0x11, 0x10001); // control key

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYDOWN, Keys.Q, 0x100001) // 'q' key

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYCHAR, 0x11, 0x100001) // ESPECIAL CHAR CODE

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYUP, 0x11, 0x10001); // control key

c.Input.SendMessage(c.hWnd, Hooks.WM_KEYUP, Keys.Q, 0x100001) // 'q' key

}

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

Muito fera...faiz muito tempo que não faço nada no C#, mais peguei essa pra da uma desenferrujada e funfo que era uma beleza!

Abraço!

# Regras Gerais - TibiaKing.com #
Contato: [email protected]
Não respondo dúvidas via MP.


1C2tu.png4Tlqo.png1C2tu.png


 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo