几个问题,100分,解决还有分加 1.如何判断电脑是否安装了OFFICE?如果装了,装了多少组件?装在那个目录下?2.如何清空IE的临时文件,历史纪录,Cookies?3.如何动态添加菜单,动态删除菜单,动态响应菜单?我想把IE的收藏夹在我的程序中做成菜单 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 2void CDelHistoryDlg::OnDelHistory() { // TODO: Add your control notification handler code here TCHAR szPath[MAX_PATH]; if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_RECENT, FALSE)) { EmptyDirectory(szPath); } SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RecentDocs"));}BOOL CDelHistoryDlg::EmptyDirectory(LPCTSTR szPath, BOOL bDeleteDesktopIni, BOOL bWipeIndexDat){ WIN32_FIND_DATA wfd; HANDLE hFind; CString sFullPath; CString sFindFilter; DWORD dwAttributes = 0; sFindFilter = szPath; sFindFilter += _T("\\*.*"); if ((hFind = FindFirstFile(sFindFilter, &wfd)) == INVALID_HANDLE_VALUE) { return FALSE; } do { if (_tcscmp(wfd.cFileName, _T(".")) == 0 || _tcscmp(wfd.cFileName, _T("..")) == 0 || (bDeleteDesktopIni == FALSE && _tcsicmp(wfd.cFileName, _T("desktop.ini")) == 0)) { continue; } sFullPath = szPath; sFullPath += _T('\\'); sFullPath += wfd.cFileName; //去掉只读属性 dwAttributes = GetFileAttributes(sFullPath); if (dwAttributes & FILE_ATTRIBUTE_READONLY) { dwAttributes &= ~FILE_ATTRIBUTE_READONLY; SetFileAttributes(sFullPath, dwAttributes); } if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { EmptyDirectory(sFullPath, bDeleteDesktopIni, bWipeIndexDat); RemoveDirectory(sFullPath); } else { DeleteFile(sFullPath); } } while (FindNextFile(hFind, &wfd)); FindClose(hFind); return TRUE;}BOOL CDelHistoryDlg::DeleteUrlCache(DEL_CACHE_TYPE type){ BOOL bRet = FALSE; HANDLE hEntry; LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry = NULL; DWORD dwEntrySize; //delete the files dwEntrySize = 0; hEntry = FindFirstUrlCacheEntry(NULL, NULL, &dwEntrySize); lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new char[dwEntrySize]; hEntry = FindFirstUrlCacheEntry(NULL, lpCacheEntry, &dwEntrySize); if (!hEntry) { goto cleanup; } do { if (type == File && !(lpCacheEntry->CacheEntryType & COOKIE_CACHE_ENTRY)) { DeleteUrlCacheEntry(lpCacheEntry->lpszSourceUrlName); } else if (type == Cookie && (lpCacheEntry->CacheEntryType & COOKIE_CACHE_ENTRY)) { DeleteUrlCacheEntry(lpCacheEntry->lpszSourceUrlName); } dwEntrySize = 0; FindNextUrlCacheEntry(hEntry, NULL, &dwEntrySize); delete [] lpCacheEntry; lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new char[dwEntrySize]; } while (FindNextUrlCacheEntry(hEntry, lpCacheEntry, &dwEntrySize)); bRet = TRUE;cleanup: if (lpCacheEntry) { delete [] lpCacheEntry; } return bRet;}void CDelHistoryDlg::OnDelCookies() { // TODO: Add your control notification handler code here TCHAR szPath[MAX_PATH]; DeleteUrlCache(Cookie); if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_COOKIES, FALSE)) {//得到目录,并清空 EmptyDirectory(szPath); }}void CDelHistoryDlg::OnDelInternetTempFile() { // TODO: Add your control notification handler code here TCHAR szPath[MAX_PATH]; DeleteUrlCache(File); if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_INTERNET_CACHE, FALSE)) { //得到临时目录,并清空它. EmptyDirectory(szPath); }}void CDelHistoryDlg::OnDelHistoryAddress() { // TODO: Add your control notification handler code here //浏览器地址栏历史地址的清除 SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Internet Explorer\\TypedURLs"));}void CDelHistoryDlg::OnDelHistoryPassword() { // 清除自动密码历史记录 SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Internet Explorer\\IntelliForms"));}void CDelHistoryDlg::OnDelFavorite() { //清收藏夹中的内容 TCHAR szPath[MAX_PATH]; if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_FAVORITES, FALSE)) { //得到目录,并清空 EmptyDirectory(szPath); }} 判断是否安装了word程序bool IsWordExist(BOOL bPrompt){ static bool bExist, bFirst=true; if (bFirst) { bFirst = false; CReg reg; bExist = (bool)reg.Open(HKEY_CLASSES_ROOT, "Word.Document", KEY_READ); } if (!bExist) { if (bPrompt) AfxMessageBox ("没有安装Microsft Word 95或更高版本,操作不能执行!", MB_ICONSTOP); return false; } return true;} 装没装OFFICE可以通过注册表来看。动态添加菜单 -- 删除 -- 响应 CMenu menu ; menu.CreatePopupMenu(); menu.AppendMenu(MF_BYCOMMAND | MF_STRING, ID_FUNC_MENU , "……" ); menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_BOTTOMALIGN|TPM_LEFTBUTTON,pt.x,pt.y,this);至于响应么,你就加个消息么, ON_BN_CLICKED( ID_FUNC_MENU , OnFUN) ON_COMMAND_RANGE(ID_FUNC_MENU ,ID_FUNC_MENU ,OnFunc) scmsir(小小鸟),你的代码有问题Compiling...WinTools.cppAutomatically linking with SkinPlusPlusDLL.dllLinking...WinToolsDlg.obj : error LNK2001: unresolved external symbol __imp__DeleteUrlCacheEntry@4WinToolsDlg.obj : error LNK2001: unresolved external symbol __imp__FindNextUrlCacheEntryA@12WinToolsDlg.obj : error LNK2001: unresolved external symbol __imp__FindFirstUrlCacheEntryA@12Debug/WinTools.exe : fatal error LNK1120: 3 unresolved externalsError executing link.exe.WinTools.exe - 4 error(s), 0 warning(s) www.vckbase.com上有例子,上去看看 求助关于转义符的问题 GDI+重要吗? 为什么我的OnInitDialog()被执行了两次? 在VC++中怎么查询数据库用户? 请问可以修改tab control上Tab1,Tab2,。。。。这些字体可以修改吗 关于QQ游戏外挂mouse_event不起作用的原因,及我的对对碰外挂程序. 在不知道key的情况下,如何得到map中的全部元素? webbrowser控件弹窗的问题 求用socket实现http请求的源代码? DissectingMFC问题请教 哪位朋友能提供VC++6.0英文原版 求关于Windows编程---界面设计相关的书籍
{
// TODO: Add your control notification handler code here
TCHAR szPath[MAX_PATH];
if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_RECENT, FALSE))
{
EmptyDirectory(szPath);
}
SHDeleteKey(HKEY_CURRENT_USER,
_T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RecentDocs"));}
BOOL CDelHistoryDlg::EmptyDirectory(LPCTSTR szPath, BOOL bDeleteDesktopIni,
BOOL bWipeIndexDat)
{
WIN32_FIND_DATA wfd;
HANDLE hFind;
CString sFullPath;
CString sFindFilter;
DWORD dwAttributes = 0; sFindFilter = szPath;
sFindFilter += _T("\\*.*");
if ((hFind = FindFirstFile(sFindFilter, &wfd)) == INVALID_HANDLE_VALUE)
{
return FALSE;
} do
{
if (_tcscmp(wfd.cFileName, _T(".")) == 0 ||
_tcscmp(wfd.cFileName, _T("..")) == 0 ||
(bDeleteDesktopIni == FALSE && _tcsicmp(wfd.cFileName, _T("desktop.ini")) == 0))
{
continue;
} sFullPath = szPath;
sFullPath += _T('\\');
sFullPath += wfd.cFileName; //去掉只读属性
dwAttributes = GetFileAttributes(sFullPath);
if (dwAttributes & FILE_ATTRIBUTE_READONLY)
{
dwAttributes &= ~FILE_ATTRIBUTE_READONLY;
SetFileAttributes(sFullPath, dwAttributes);
} if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
EmptyDirectory(sFullPath, bDeleteDesktopIni, bWipeIndexDat);
RemoveDirectory(sFullPath);
}
else
{
DeleteFile(sFullPath);
}
}
while (FindNextFile(hFind, &wfd));
FindClose(hFind); return TRUE;
}
BOOL CDelHistoryDlg::DeleteUrlCache(DEL_CACHE_TYPE type)
{
BOOL bRet = FALSE;
HANDLE hEntry;
LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry = NULL;
DWORD dwEntrySize; //delete the files
dwEntrySize = 0;
hEntry = FindFirstUrlCacheEntry(NULL, NULL, &dwEntrySize);
lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new char[dwEntrySize];
hEntry = FindFirstUrlCacheEntry(NULL, lpCacheEntry, &dwEntrySize);
if (!hEntry)
{
goto cleanup;
} do
{
if (type == File &&
!(lpCacheEntry->CacheEntryType & COOKIE_CACHE_ENTRY))
{
DeleteUrlCacheEntry(lpCacheEntry->lpszSourceUrlName);
}
else if (type == Cookie &&
(lpCacheEntry->CacheEntryType & COOKIE_CACHE_ENTRY))
{
DeleteUrlCacheEntry(lpCacheEntry->lpszSourceUrlName);
} dwEntrySize = 0;
FindNextUrlCacheEntry(hEntry, NULL, &dwEntrySize);
delete [] lpCacheEntry;
lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new char[dwEntrySize];
}
while (FindNextUrlCacheEntry(hEntry, lpCacheEntry, &dwEntrySize)); bRet = TRUE;
cleanup:
if (lpCacheEntry)
{
delete [] lpCacheEntry;
}
return bRet;
}
void CDelHistoryDlg::OnDelCookies()
{
// TODO: Add your control notification handler code here
TCHAR szPath[MAX_PATH];
DeleteUrlCache(Cookie);
if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_COOKIES, FALSE))
{//得到目录,并清空
EmptyDirectory(szPath);
}
}void CDelHistoryDlg::OnDelInternetTempFile()
{
// TODO: Add your control notification handler code here
TCHAR szPath[MAX_PATH];
DeleteUrlCache(File);
if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_INTERNET_CACHE, FALSE))
{ //得到临时目录,并清空它.
EmptyDirectory(szPath);
}
}void CDelHistoryDlg::OnDelHistoryAddress()
{
// TODO: Add your control notification handler code here
//浏览器地址栏历史地址的清除
SHDeleteKey(HKEY_CURRENT_USER,
_T("Software\\Microsoft\\Internet Explorer\\TypedURLs"));
}void CDelHistoryDlg::OnDelHistoryPassword()
{
// 清除自动密码历史记录
SHDeleteKey(HKEY_CURRENT_USER,
_T("Software\\Microsoft\\Internet Explorer\\IntelliForms"));}void CDelHistoryDlg::OnDelFavorite()
{
//清收藏夹中的内容
TCHAR szPath[MAX_PATH];
if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_FAVORITES, FALSE))
{ //得到目录,并清空
EmptyDirectory(szPath);
}
}
bool IsWordExist(BOOL bPrompt)
{
static bool bExist, bFirst=true;
if (bFirst)
{
bFirst = false;
CReg reg;
bExist = (bool)reg.Open(HKEY_CLASSES_ROOT, "Word.Document", KEY_READ);
}
if (!bExist)
{
if (bPrompt) AfxMessageBox ("没有安装Microsft Word 95或更高版本,操作不能执行!", MB_ICONSTOP);
return false;
}
return true;
}
menu.CreatePopupMenu();
menu.AppendMenu(MF_BYCOMMAND | MF_STRING, ID_FUNC_MENU , "……" );
menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_BOTTOMALIGN|TPM_LEFTBUTTON,pt.x,pt.y,this);至于响应么,你就加个消息么, ON_BN_CLICKED( ID_FUNC_MENU , OnFUN)
ON_COMMAND_RANGE(ID_FUNC_MENU ,ID_FUNC_MENU ,OnFunc)
Compiling...
WinTools.cpp
Automatically linking with SkinPlusPlusDLL.dll
Linking...
WinToolsDlg.obj : error LNK2001: unresolved external symbol __imp__DeleteUrlCacheEntry@4
WinToolsDlg.obj : error LNK2001: unresolved external symbol __imp__FindNextUrlCacheEntryA@12
WinToolsDlg.obj : error LNK2001: unresolved external symbol __imp__FindFirstUrlCacheEntryA@12
Debug/WinTools.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.WinTools.exe - 4 error(s), 0 warning(s)