[Source] WindowLogger - C++

Started by Dark_Side, 12 de June , 2006, 03:47:43 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Dark_Side

Hi,
Estou tentado relembrar C++, iniciei por este programa. Trata-se de um programa que loga o nome de todas as janelas acessadas em um arquivo .LOG, enquanto o programa estiver executando.

Obs: É um Window Application.

WINDOWLOGGER.CPP
#include <iostream>
#include <fstream>
#include <windows.h>
#include <cstring>
using namespace std;

HWND window,aux;
SYSTEMTIME time;
char titulo[255];
int hora,mim,sec;
ofstream log;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
while(1){
Sleep(10);
window = GetForegroundWindow();
if(window !=0 && window!=aux){
GetWindowText(window,titulo,255);
aux = window;
if(strcmp(titulo,"")!=0){
GetLocalTime(&time);

hora = time.wHour;
mim = time.wMinute;
sec = time.wSecond;

log.open("c:\\log.log",ios::app);
log << "[";

if(hora < 10)
log << "0" << hora << ":";
else
log << hora << ":";

if(mim < 10)
log  << "0"<< mim << ":";
else
log  << mim << ":";

if(sec < 10)
log << "0" << sec << "] ";
else
log << sec << "] ";

log << titulo << "\n";
log.close();
}}}
return 0;
}
Ah, gostaria de agradeçer o incentivo de vocês, e aproveitar para dizer que não agradeço em todos os tópicos para evitar flood. Vlw.
Bye.

rog

vc gostas mesmo de logger nê

ate que emfim um codigo cpp

eu nao vi a funçao main(), sera que funfa sem ela ?

no mingw ele bug na declaraçao do

SYSTEMTIME time;

rog
realty.sys is corrupt :  reboot the universe (Y/N)

HadeS

Acho que não vai funcionar sem o início da função main().

Ele poderia enviar as informações para uma página em PHP (Assim como a maioria dos seus codes), o que acha?

HadeS

Dark_Side

Como se trata de um Window Application, a função MAIN() é susbstituída pela função WINMAIN().
Quanto ao erro do SYSTEMTIME, talvez seja necessário verificar se existe no header WINDOW.H do compilador.
Finalmente, voltando à sugestão do HadesS, posso implementar, obrigado pela sugestão.

caesar2k

#pragma comment(linker, "/ENTRY:Entrada")

void Entrada(){
}

Dá na mesma, e o exe fica menor. Você poderia melhorar esse programa com um WH_JOURNALRECORD. Toda a vez que o mouse for clicado (WM_MOUSEDOWN), compara as janelas e loga. É mais bonito e mais prático do que usar um loop infinito e Sleep().

Dark_Side

Hi,
Legal sua colocação, confesso que não eu não pensei em utilizar HOOK que é mais bonitinho e prático como você disse, muito obrigado pela sugestão.
Bye.