将最近查看或打开的文件夹保存到日志文件中

时间:2009-10-01 14:03:32

标签: c++ visual-c++

我在visual c ++中有一个win32 API应用程序,我想将最近查看或打开的文件夹保存到日志文件中。我有一个代码,用于存储打开日志文件的当前窗口。打开当前窗口的代码如下。可以操纵此代码来为最近查看的文件夹创建日志文件。

static TCHAR wndText[100];
    TCHAR tempWndText[100];
    TCHAR timestamp[255];
    DWORD written;
    time_t t=time(0);
    ctime_s(timestamp,sizeof(timestamp),&t);    
    SetFilePointer(_Wfile,0,NULL,FILE_END);
    TCHAR buf[255];
    wsprintf(buf,"\r\n-->%s\r\n",timestamp);
WriteFile(_Wfile,buf,(DWORD)lstrlen(buf)*sizeof(TCHAR),&written,NULL);

while(1)
{
    Sleep(5);  
    flush();
    hWndCurWnd=GetForegroundWindow();
    GetWindowText(hWndCurWnd,tempWndText,100);
    if(_Wfile==INVALID_HANDLE_VALUE)
    {
        return;
    }

    if(lstrcmp(tempWndText,wndText)!=0)
    {
        lstrcpyn(wndText,tempWndText,255);
        wsprintf(buf,"\r[%s]\r\n",wndText);
        WriteFile(_Wfile,buf,(DWORD)lstrlen(buf)*sizeof(TCHAR),&written,NULL);
    }

}

1 个答案:

答案 0 :(得分:1)

Raymon Chen介绍了如何决定:

  1. 窗口是否为资源管理器 窗口,如果是的话

  2. 它正在查看哪个文件夹?

  3. 在他的博客中:

    http://blogs.msdn.com/oldnewthing/archive/2004/07/20/188696.aspx