我在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);
}
}
答案 0 :(得分:1)
Raymon Chen介绍了如何决定:
窗口是否为资源管理器 窗口,如果是的话
它正在查看哪个文件夹?
在他的博客中:
http://blogs.msdn.com/oldnewthing/archive/2004/07/20/188696.aspx