000
01.03.2006, 23:32 Uhr
~chris
Gast
|
ich bin derzeit dabei ein programm zu machen, welches alle aktivitäten an der Tastatur und Maus aufzeichnet und auch wieder abspielen kann. Die Aufzeichnung funktioniert zwar aber die is viel zu langsam, so das buchstaben verloren gehen... ich habe zu diesem zweck einen timer erstellt mit nem intervall von 1. in diesem timer werden jetzt bei jedem durchlauf alle tasten überprüft... und einige tasten muss ich bis zu einer halben sekunde gedrückt halten, damit diese überhaupt wargenommen werden. gibt es eine möglichkeit das schneller zu machen? und warum läuft das überhaupt so langsam? ich hab hier mal den code:
C++: |
int sleeper=0;
int keystat[255];//array zum speichern der tastenstatusse während der aufzeichnung
int key[]={0x30,0x31,0x32,0x33,0x34,0x35, 0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44, 0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C, 0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54, 0x55,0x56,0x57,0x58,0x59,0x5A,0x70,0x71, 0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79, 0x7A,0x7B,0x08,0x09,0x0C,0x0D,0x10,0x11, 0x12,0x13,0x14,0x90,0x1B,0x20,0x21,0x22, 0x23,0x24,0x25,0x27,0x26,0x28,0x2A,0x2D, 0x2E,0x2F,0x5B,0x5C,0x5F,0x60,0x61,0x62, 0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A, 0x6D,0x6F,0x6B};//Tasten
int keycounter=0;
void __fastcall TForm1::RecorderTimer(TObject *Sender) { if (GetKeyState(0x60)<0) {//fals die taste gedrückt wurde... Recorder->Enabled=false; Sleeper->Enabled=false; Application->MessageBox("Aufzeichnung beendet!","WinBot",MB_OK); } else {
if(GetKeyState(key[keycounter])<0&&keystat[keycounter]==0)//fals die taste gedrückt wird, und fals diese noch nicht gedrückt ist... { AdjustGrid(StringGrid1, false, false, 1); StringGrid1->Row=StringGrid1->RowCount-1; StringGrid1->Cells[0][StringGrid1->Row-1]="no event"; StringGrid1->Cells[2][StringGrid1->Row-1]="sleep"; StringGrid1->Cells[3][StringGrid1->Row-1]=sleeper; AdjustGrid(StringGrid1, false, false, 1); StringGrid1->Row=StringGrid1->RowCount-1; StringGrid1->Cells[0][StringGrid1->Row-1]="no event"; StringGrid1->Cells[2][StringGrid1->Row-1]="presskey"; StringGrid1->Cells[3][StringGrid1->Row-1]=getkeystring(key[keycounter]); keystat[keycounter]=1; sleeper=0; } if(keystat[keycounter]==1)//fals die taste gedrückt ist { if(GetKeyState(key[keycounter])<0)//prüfe, ob sie immernoch gedrückt ist... {}else{//fals nicht... AdjustGrid(StringGrid1, false, false, 1); StringGrid1->Row=StringGrid1->RowCount-1; StringGrid1->Cells[0][StringGrid1->Row-1]="no event"; StringGrid1->Cells[2][StringGrid1->Row-1]="sleep"; StringGrid1->Cells[3][StringGrid1->Row-1]=sleeper; AdjustGrid(StringGrid1, false, false, 1); StringGrid1->Row=StringGrid1->RowCount-1; StringGrid1->Cells[0][StringGrid1->Row-1]="no event"; StringGrid1->Cells[2][StringGrid1->Row-1]="releasekey"; StringGrid1->Cells[3][StringGrid1->Row-1]=getkeystring(key[keycounter]); keystat[keycounter]=0; sleeper=0; } } keycounter++; if(keycounter==89) {keycounter=0;}
}//ende else }//ende void
|
Dieser Post wurde am 02.03.2006 um 09:17 Uhr von Uwe editiert. |