• 大小: 285KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: SetWindows  Hook  WH_CBT  

资源简介

SetWindowsHookEx 64位,或32位,不同,需要编译各自的库、SetWindowsHookEx 64位,或32位,不同,需要编译各自的库、

资源截图

代码片段和文件信息

// Log.cpp: implementation of the Log class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “Log.h“

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
#pragma warning(disable:4996)

//#if (defined(_UNICODE) || defined(_MBCS))
//#error Cannot compile with multibyte/wide character support
//#endif

const int Log::ToDebug   =  1;
const int Log::ToFile    =  2;
const int Log::ToConsole =  4;

const static int LINE_BUFFER_SIZE = 1024;

Log::Log(int mode int level char *filename bool append)
{
m_lastLogTime = 0;
m_filename = NULL;
m_append = false;
    hlogfile = NULL;
    m_todebug = false;
    m_toconsole = false;
    m_tofile = false;

    SetFile(filename append);
    SetMode(mode);
SetLevel(level);

// If the compiler returns full path names in __FILE__
// remember the path prefix to remove it from the log messages.
char *path = __FILE__;
char *ptr = strrchr(path ‘\\‘);
if (ptr != NULL) {
m_prefix_len = ptr + 1 - path;
m_prefix = (char *)malloc(m_prefix_len + 1);
memcpy(m_prefix path m_prefix_len);
m_prefix[m_prefix_len] = ‘\0‘;
}
}

void Log::SetMode(int mode) {
    
m_mode = mode;

    if (mode & ToDebug)
        m_todebug = true;
    else
        m_todebug = false;

    if (mode & ToFile)  {
if (!m_tofile)
OpenFile();
} else {
CloseFile();
        m_tofile = false;
    }
    
    if (mode & ToConsole) {
        if (!m_toconsole)
            AllocConsole();
        m_toconsole = true;
    } else {
        m_toconsole = false;
    }
}

int Log::GetMode() {
return m_mode;
}

void Log::SetLevel(int level) {
    m_level = level;
}

int Log::GetLevel() {
return m_level;
}

void Log::Setstyle(int style) {
m_style = style;
}

int Log::Getstyle() {
return m_style;
}

void Log::SetFile(const char *filename bool append)
{
CloseFile();
if (m_filename != NULL)
free(m_filename);
m_filename = strdup(filename);
m_append = append;
if (m_tofile)
OpenFile();
}

void Log::OpenFile()
{
// Is there a file-name?
if (m_filename == NULL)
{
        m_todebug = true;
        m_tofile = false;
        Print(0 “Error opening log file\n“);
return;
}

    m_tofile  = true;
m_lastLogTime = 0;

// If there‘s an existing log and we‘re not appending then move it
if (!m_append)
{
// Build the backup filename
char *backupfilename = new char[strlen(m_filename)+5];
if (backupfilename)
{
strcpy(backupfilename m_filename);
strcat(backupfilename “.bak“);
// Attempt the move and replace any existing backup
// Note that failure is silent - where would we log a message to? ;)
DeleteFileA(backupfilename);
MoveFileA(m_filename backupfilename);
delete [] backupfilename;
}
}

    // If filen

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-09-12 10:46  NewTest006Hook\
     目录           0  2013-03-23 10:20  NewTest006Hook\common\
     文件        5838  2012-12-27 15:18  NewTest006Hook\common\Log.cpp
     文件        2615  2012-12-28 16:16  NewTest006Hook\common\Log.h
     目录           0  2017-09-12 10:44  NewTest006Hook\Debug\
     目录           0  2017-09-12 10:26  NewTest006Hook\ipch\
     目录           0  2017-09-12 10:46  NewTest006Hook\ipch\newtest006global-a158020b\
     目录           0  2017-09-12 10:45  NewTest006Hook\NewTest006Global\
     文件        6783  2017-09-12 10:38  NewTest006Hook\NewTest006Global\NewTest006Global.cpp
     文件         663  2013-03-24 13:48  NewTest006Hook\NewTest006Global\NewTest006Global.h
     文件        7279  2013-03-24 14:06  NewTest006Hook\NewTest006Global\NewTest006Global.vcxproj
     文件        1083  2013-03-23 14:11  NewTest006Hook\NewTest006Global\NewTest006Global.vcxproj.filters
     文件         787  2013-03-24 14:10  NewTest006Hook\NewTest006Global\NewTest006Global.vcxproj.user
     文件        8582  2013-03-24 14:13  NewTest006Hook\NewTest006Global\temp.log
     文件         554  2013-03-24 14:10  NewTest006Hook\NewTest006Global\temp.log.bak
     目录           0  2017-09-12 10:45  NewTest006Hook\NewTest006Hook\
     文件        3594  2017-09-11 17:16  NewTest006Hook\NewTest006Hook.sln
     文件       37376  2017-09-12 10:44  NewTest006Hook\NewTest006Hook.suo
     目录           0  2017-09-12 10:45  NewTest006Hook\NewTest006HookTest\
     文件      104948  2017-09-11 14:14  NewTest006Hook\NewTest006HookTest\NewTest006HookTest.aps
     文件        2051  2013-03-23 15:06  NewTest006Hook\NewTest006HookTest\NewTest006HookTest.cpp
     文件         514  2013-03-23 15:06  NewTest006Hook\NewTest006HookTest\NewTest006HookTest.h
     文件        8942  2017-09-11 14:14  NewTest006Hook\NewTest006HookTest\NewTest006HookTest.rc
     文件       10846  2017-09-11 14:14  NewTest006Hook\NewTest006HookTest\NewTest006HookTest.vcxproj
     文件        2257  2013-03-23 15:08  NewTest006Hook\NewTest006HookTest\NewTest006HookTest.vcxproj.filters
     文件         143  2013-03-23 15:06  NewTest006Hook\NewTest006HookTest\NewTest006HookTest.vcxproj.user
     文件        4446  2017-09-11 17:33  NewTest006Hook\NewTest006HookTest\NewTest006HookTestDlg.cpp
     文件         928  2017-09-11 14:14  NewTest006Hook\NewTest006HookTest\NewTest006HookTestDlg.h
     文件        3222  2013-03-23 15:06  NewTest006Hook\NewTest006HookTest\ReadMe.txt
     目录           0  2013-03-23 15:06  NewTest006Hook\NewTest006HookTest\res\
     文件        1198  2017-09-11 14:14  NewTest006Hook\NewTest006HookTest\resource.h
............此处省略28个文件信息

评论

共有 条评论