⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myindexdlg.cpp

📁 在你的计算机里有很多微软试图隐藏的文件目录.在这些目录中你会(主要)发现有这样两种东西:Microsoft Internet Explorer记录了你所访问过的所有站点---即使你已经清空了你的缓存,
💻 CPP
📖 第 1 页 / 共 2 页
字号:
   
	//在列表控件中添加记录
	str.Format("%d",UrlSum+1);
	nIndex=m_List.InsertItem(UrlSum,str);
	m_List.SetItemText(nIndex,1,"LEAK");

	fread(&Length,sizeof(char),4,fr);
	if( Length>1 )
	{ fread(dat,sizeof(char),16,fr);
    
	  tm.dwLowDateTime  =  (dat[3]<<24)+ (dat[2]<<16) + (dat[1]<<8) +dat[0];
	  tm.dwHighDateTime =  (dat[7]<<24)+ (dat[6]<<16) + (dat[5]<<8) +dat[4];

	  FileTimeToDosDateTime(&tm, &dosdate, &dostime);

 	  tm.dwLowDateTime  =  (dat[11]<<24) + (dat[10]<<16) + (dat[9]<<8) +dat[8];
	  tm.dwHighDateTime =  (dat[15]<<24) + (dat[14]<<16) + (dat[13]<<8) +dat[12];

	  if((tm.dwHighDateTime!=0) ||(dat[0]==0x0d) )
	  { FileTimeToDosDateTime(&tm, &dosdate, &dostime);
	    str.Format("%4d.%02d.%02d-%02d:%02d:%02d ",((dosdate>>9)&0x7f)+1980, (dosdate>>5)&0xf, dosdate&0x1f, 
		                                        (dostime>>11)&0x1f, (dostime>>5)&0x3f, dostime&0x1f);
	  }
	  else str.Format("Not Available");
	  m_List.SetItemText(nIndex,2,str);

	  fseek(fr,Pos+0x34,0);
	  fread(&UrlPos,sizeof(char),4,fr);

      fseek(fr,Pos+0x38,0);
	  fread(dat,sizeof(char),1,fr); 
    
	  if( (UrlPos==0xbadf00d)||(UrlPos==0) )  { UrlPos=0x68; }
	  fseek(fr,Pos+UrlPos,0);
	}
    else    { str.Format("Not Available");
	          m_List.SetItemText(nIndex,2,str);
			}
	for(i=0;;i++) 
	{	 VisitedUrl[i]=fgetc(fr);
	    if(VisitedUrl[i]==0) break;
	}
	m_List.SetItemText(nIndex,3,VisitedUrl);
	
	return(0);
}
///////////////////////////////////////////////////////////////////////////////////////////
int CMyIndexDlg::ReadREDR(long Pos)
{
    long Length;

	fseek(fr, Pos, 0);
    fread(ch,sizeof(char),4,fr);

         	
	str.Format("%d",UrlSum+1); 
	nIndex=m_List.InsertItem(UrlSum,str);   //在列表控件中添加记录
	m_List.SetItemText(nIndex,1,"REDR");

	fread(&Length,sizeof(char),4,fr);

	fread(ch,sizeof(char),8,fr);
	tm.dwLowDateTime  =  (dat[3]<<24)+ (dat[2]<<16) + (dat[1]<<8) +dat[0];
	tm.dwHighDateTime =  (dat[7]<<24)+ (dat[6]<<16) + (dat[5]<<8) +dat[4];

	if(tm.dwHighDateTime!=0)
	{ FileTimeToDosDateTime(&tm, &dosdate, &dostime);
      str.Format("%4d.%02d.%02d-%02d:%02d:%02d ",((dosdate>>9)&0x7f)+1980, (dosdate>>5)&0xf, dosdate&0x1f, 
			                                        (dostime>>11)&0x1f, (dostime>>5)&0x3f, dostime&0x1f);
	}
	else str.Format("Not Available");
	
	m_List.SetItemText(nIndex,2,str);
	
	for(i=0;;i++) 
	{	 VisitedUrl[i]=fgetc(fr);
	    if(VisitedUrl[i]==0) break;
	}
	m_List.SetItemText(nIndex,3,VisitedUrl);

	return(0);
}
//**********************************************************************************
void CMyIndexDlg::OnBUTTONSave() 
{
	OPENFILENAME ofn; 
	CString fSave;
	FILE *fp;
    
    TCHAR lpstrFilename[MAX_PATH] = "";                     //设定文件的名称储存空间 
    ZeroMemory(&ofn, sizeof(ofn));                          //清空OPENFILENAME 
    ofn.lStructSize = sizeof(OPENFILENAME);                 //lStructSize的返回值是是76 
    ofn.hwndOwner = this->m_hWnd;                           //设定父窗口 
    ofn.lpstrFilter = "所有的文件\0*.*\0文本文件\0*.TXT\0"; //设定打开文件的类型 
    ofn.nMaxFile = MAX_PATH; 
    ofn.lpstrFile=lpstrFilename; 
	ofn.lpstrInitialDir="C:\\";
    
	if(GetSaveFileName(&ofn)) { fSave=(CString)ofn.lpstrFile; }
    else { /*MessageBox("打开文件出错!"); */ return; }
    
	if((fp=fopen(fSave,"w"))==NULL)	{MessageBox("Write File Error"); return;}
	
	int Num;
	char MyText[1024];

	Num=m_List.GetItemCount();

	for(i=0; i<Num; i++)
	{ m_List.GetItemText(i, 0, MyText, 64);
	  fprintf(fp,"%s, ",MyText);
	  m_List.GetItemText(i, 1, MyText, 64);
	  fprintf(fp,"%s, ",MyText);
	  m_List.GetItemText(i, 2, MyText, 64);
	  fprintf(fp,"%s, ",MyText);
	  m_List.GetItemText(i, 3, MyText, 1024);
	  fprintf(fp,"%s\n",MyText);
	}
	fclose(fp);
}


static int CALLBACK myCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
  // lParamSort contains a pointer to the list view control.
  // The lParam of an item is just its index.
  CListCtrl* pListCtrl = (CListCtrl*) lParamSort;

  CString    strItem1 = pListCtrl->GetItemText(lParam1, nSortCol);
  CString    strItem2 = pListCtrl->GetItemText(lParam2, nSortCol);
  
  if(nSortCol>0) return strcmp(strItem1, strItem2);
  else    return( atoi(strItem1) > atoi(strItem2) );
}

//******************************************************************
void CMyIndexDlg::OnColumnclickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;

	nSortCol=pNMListView->iSubItem; 

	if(nIndex==0) return;
	
	for(i=0;i<nIndex;i++) m_List.SetItemData(i,i);

	m_List.SortItems((PFNLVCOMPARE)myCompare, (LPARAM)&m_List);

	*pResult = 0;
}

//******************************************************************
void CMyIndexDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	char mystr[1024];
    CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_LIST);
    ASSERT(pListCtrl != NULL);

    POSITION pos = pListCtrl->GetFirstSelectedItemPosition();
    if (pos == NULL)   TRACE0("No items were selected!\n");
    else {  while (pos)
			{  int nItem = pListCtrl->GetNextSelectedItem(pos);
	            m_List.GetItemText(nItem, 3, mystr, 1024);
                str.Format("%s",mystr);
	            MessageBox(str);
			}
		}
	*pResult = 0;
}


void CMyIndexDlg::OnClipBoard() 
{
	// TODO: Add your command handler code here
	DWORD dwLength = 100; // 要复制的字串长度
    HANDLE hGlobalMemory = GlobalAlloc(GHND, dwLength + 1);    // 分配内存
    LPBYTE lpGlobalMemory = (LPBYTE)GlobalLock(hGlobalMemory); // 锁定内存

    char mystr[1024];
    CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_LIST);
    ASSERT(pListCtrl != NULL);

    POSITION pos = pListCtrl->GetFirstSelectedItemPosition();
    if (pos == NULL)   TRACE0("No items were selected!\n");
    else {  while (pos)
			{  int nItem = pListCtrl->GetNextSelectedItem(pos);
	            m_List.GetItemText(nItem, 3, mystr, 1024);
			}
		}
	for(i=0;mystr[i]!='\0';i++) *lpGlobalMemory++ = mystr[i];   
	*lpGlobalMemory++='\0';
  
    GlobalUnlock(hGlobalMemory); // 锁定内存块解锁
    HWND hWnd = GetSafeHwnd();   // 获取安全窗口句柄
    ::OpenClipboard(hWnd);       // 打开剪贴板
	::EmptyClipboard();          // 清空剪贴板
    ::SetClipboardData(CF_TEXT, hGlobalMemory); // 将内存中的数据放置到剪贴板
    ::CloseClipboard();          // 关闭剪贴板
}

void CMyIndexDlg::OnVisit() 
{
	// TODO: Add your command handler code here
	char MyVisit[1024];  int flag;

    CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_LIST);
    ASSERT(pListCtrl != NULL);

    POSITION pos = pListCtrl->GetFirstSelectedItemPosition();
    if (pos == NULL)   TRACE0("No items were selected!\n");
    else {  while (pos)
			{  int nItem = pListCtrl->GetNextSelectedItem(pos);
	            m_List.GetItemText(nItem, 3, MyVisit, 1024);
			}
		}
    for(i=0,flag=0;i<100;i++) if(MyVisit[i]=='@') {flag=1; break;}
	
	if(flag) { str.Format("%s",MyVisit+i+1);
	           strcpy(MyVisit,str);  
			 }
	ShellExecute(m_hWnd, NULL, MyVisit , NULL, NULL, NULL);
}

void CMyIndexDlg::Onnotepad() 
{
	// TODO: Add your command handler code here
	WinExec("Notepad.exe",SW_SHOW);
}


void CMyIndexDlg::OnRclickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	CMenu oMenu;
	if(oMenu.LoadMenu(IDR_MENU))        
    {
       CMenu* pPopup = oMenu.GetSubMenu(0);
       ASSERT(pPopup != NULL);
       CPoint oPoint;
			  
	   // 确定鼠标位置,在其附近显示菜单
	   GetCursorPos( &oPoint );
       SetForegroundWindow();
       pPopup->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, oPoint.x, oPoint.y, this); 
	}
	*pResult = 0;
}

void CMyIndexDlg::OnRADIOWeb() 
{
	// TODO: Add your control notification handler code here

    LONG ret;
    HKEY hRegkey;
    TCHAR  DestPath[128];  //打开注册表,找出路径
    DWORD dRegLen = sizeof(DestPath);

    m_Web=0; 

	ret=::RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", 0, KEY_QUERY_VALUE, &hRegkey);
	
	if(ret==ERROR_SUCCESS) 
	  { 
		 ret=::RegQueryValueEx (hRegkey, _T("Cache"), NULL, NULL, (LPBYTE) DestPath, &dRegLen);
         strcat(DestPath,"\\Content.IE5\\index.dat");
		 m_File.Format("%s",DestPath);
	  }
	RegCloseKey (hRegkey);	 hRegkey=NULL;	 //关闭注册表
	  
    UpdateData(FALSE);
}

void CMyIndexDlg::OnRADIOHistory() 
{
	// TODO: Add your control notification handler code here
	LONG ret;
    HKEY hRegkey;
    TCHAR  DestPath[128];  //打开注册表,找出路径
    DWORD dRegLen = sizeof(DestPath);

    m_Web=1; 

	ret=::RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", 0, KEY_QUERY_VALUE, &hRegkey);
	
	if(ret==ERROR_SUCCESS) 
	  { 
		 ret=::RegQueryValueEx (hRegkey, _T("History"), NULL, NULL, (LPBYTE) DestPath, &dRegLen);
		 strcat(DestPath,"\\History.IE5\\index.dat"); 
		 m_File.Format("%s",DestPath);
	  }
	RegCloseKey (hRegkey);	 hRegkey=NULL;	 //关闭注册表
	  
    UpdateData(FALSE);
}

void CMyIndexDlg::OnRadioCookies() 
{
	// TODO: Add your control notification handler code here
		// TODO: Add your control notification handler code here
	LONG ret;
    HKEY hRegkey;
    TCHAR  DestPath[128];  //打开注册表,找出路径
    DWORD dRegLen = sizeof(DestPath);

    m_Web=2; 

	ret=::RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", 0, KEY_QUERY_VALUE, &hRegkey);
	
	if(ret==ERROR_SUCCESS) 
	  { 
		 ret=::RegQueryValueEx (hRegkey, _T("Cookies"), NULL, NULL, (LPBYTE) DestPath, &dRegLen);
		 strcat(DestPath,"\\index.dat"); 
		 m_File.Format("%s",DestPath);
	  }
	RegCloseKey (hRegkey);	 hRegkey=NULL;	 //关闭注册表
	  
    UpdateData(FALSE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -