Postado Março 3, 2015 10 anos Iae galera, fmz? Bom, meu nome é Gustavo, e eu sou um pouco novo aqui neste fórum. Eu vi que esta faltando algumas coisas na area de c++, então vim trazer um programinha que eu fiz em c++ que coloca a hotkey em loop, é um pouco útil pra treinar ml, ou tacar runa no target e talz.. A função que eu uso é a SendMessage() da API do Windows pra simular o teclado, e usei o CodeBlocks pra programar. É um programa simples,pq eu também n sou fera em c++ então me perdoe se tiver alguns errinhos kkk.. Como o programa não lida com endereços de memória(até porque eu ainda não sei pegar esses endereços), creio que funciona em qualquer versão ou até em outros jogos. Eu testei em um server 10.41 que eu jogo as vezes com tibia comum, e com OTClient também. Se alguém quiser dar uma opinião , dar umas dicas sobre o programa , poste aqui Eu compartilhei esse conteúdo mais como uma forma de aprendizado para aqueles que querem aprender C++ O código é este: #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <iostream> using namespace std; int main() { system("cls"); HWND tibia; // nome da variavel que vai guardar a janela tibia = FindWindow("Tibiaclient", NULL); // guardando a janela na variavel Tibia system("color 0C"); // mudando a cor do prompt pra ficar mais bunito cout <<"Este programa foi criado para colocar uma hotkey em loop."<<endl; cout <<"Feito por Luiz Gustavo(GuguGpG) Forum: Tibia King."<<endl;; cout <<"Colocando uma hotkey em loop pode ser facil e util para \nTreinar ml ou fazer outras coisas."<<endl; cout <<"linguagem usada: C++.\nNao coloque letras, apenas numeros\n\n"<<endl; cout << "F1 = 1 | F2 = 2 | F3 = 3 | F4 = 4 | F5 = 5 | F6 = 6 | \nF7 = 7 | F8 = 8 | F9 = 9 | F10 = 10 | F11 = 11 | F12 = 12 "<<endl; cout << "\n\n\n"; cout << "Digite o numero da Hotkey : "; int op; cin >> op; int delay; switch(op){ case 1: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; // Se nao achar a janela do tibia o vai retornar pro começo Sleep(5000); return main(); } else{ do{ cout <<"Tecla F1 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F1,1); /* Tibia = janela que vai ser aplicada , WM_KEYDOWN = Aperta a tecla, VK_F1 = tecla a ser aperta, 1 = ainda nao sei pra que server mas e melhor deixar ta funcionando assim*/ SendMessage(tibia,WM_KEYUP,VK_F1,1);/*Mesma coisa que em cima, só que aqui a função WM_KEYUP é pra soltar a teclaa */ Sleep(delay*1000); system("cls"); }while(1==1); } break; case 2: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F2 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F2,1); SendMessage(tibia,WM_KEYUP,VK_F2,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; case 3: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F3 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F3,1); SendMessage(tibia,WM_KEYUP,VK_F3,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; case 4: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F4 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F4,1); SendMessage(tibia,WM_KEYUP,VK_F4,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; case 5: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F5 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F5,1); SendMessage(tibia,WM_KEYUP,VK_F5,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; case 6: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F6 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F6,1); SendMessage(tibia,WM_KEYUP,VK_F6,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; case 7: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F7 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F7,1); SendMessage(tibia,WM_KEYUP,VK_F7,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; case 8: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F8 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F8,1); SendMessage(tibia,WM_KEYUP,VK_F8,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; case 9: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F9 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F9,1); SendMessage(tibia,WM_KEYUP,VK_F9,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; case 10: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F10 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F10,1); SendMessage(tibia,WM_KEYUP,VK_F10,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; case 11: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F11 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F11,1); SendMessage(tibia,WM_KEYUP,VK_F11,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; case 12: cout << "Digite o Delay em segundos :"; cin >> delay; if (!tibia){ cout<<"Seu tibia esta fechado!"<<endl; Sleep(5000); return main(); } else{ do{ cout <<"Tecla F12 em Loop\n"; SendMessage(tibia,WM_KEYDOWN,VK_F12,1); SendMessage(tibia,WM_KEYUP,VK_F12,1); Sleep(delay*1000); system("cls"); }while(1==1); } break; default: cout <<"Opcao Invalida!\n"; system("pause"); system("cls"); return main(); break; } return 0; } É um prazer compartilhar minhas source's com este Fórum! Editado Março 3, 2015 10 anos por gugugpg (veja o histórico de edições)
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.