📄 myindexdlg.cpp
字号:
//在列表控件中添加记录
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 + -