求助,关于异常处理(如果能解决,再给100分!)

arryang 2004-11-05 03:46:06
我准备用VC写一个穷举 Word口令的程序

一切都准备好了,但遇到了异常处理出了问题

首先建立一个word文件,设置密码“111”
下边是我的代码:

Documents oDocs; //我在此处设置了断点,以便单步跟踪

oDocs = oWordApp.GetDocuments();
LPDISPATCH disp;

try
{

disp=oDocs.Open(COleVariant(m_strWordFile), //文件路径及其文件名
vOpt, // Confirm.
// Conversion.
vOpt, // ReadOnly.
vOpt, // AddToRecentFiles.
COleVariant("123"), // 文档文件密码,用错误密码“123”去打开word文件
// PasswordDocument.
vOpt, // PasswordTemplate.
vOpt, // Revert.
vOpt, // Write-
// PasswordDocument.
vOpt, // Write-
// PasswordTemplate.

vOpt, // Format. //Last parameter for Word 97
vOpt, // Encoding // Word 2000/2002 from here on
vOpt, // Visible
vOpt, // OpenConflictDocument
vOpt, // OpenAndRepair
vOpt, // DocumentDirection
//wdDocumentDirection LeftToRight
vOpt // NoEncodingDialog
);
按F5开始调试,F10,跟踪,跟到open函数时,由于密码错误,进行异常处理
再按f10,跟到了这里
CATCH_ALL(e)
{
lResult = AfxGetThread()->ProcessWndProcException(e, &pThreadState->m_lastSentMsg);
TRACE1("Warning: Uncaught exception in WindowProc (returning %ld).\n",
lResult);
DELETE_EXCEPTION(e);
}
END_CATCH_ALL
此异常处理已经在WINCORE.cpp中了,继续按F10,进入,然后就会跳出“密码错误,Word无法打开文档”的对话框,

我想做的就是不让我自己来处理异常,即输入密码错误,就给我返回一个错误标志,以便于我尝试其它密码。而不是一个错误对话框
我尝试了修改VC的内核代码的办法,可是也未能实现。
我以前用VB写过word穷举程序,可是速度很慢,每秒测试不到100个
所以改用VC,但却遇到了这样的问题,我也曾经想过用VB来做个ActiveX控件,用VC调用。但也没有达到提高速度的目的
目前只有这个办法了
哪位前辈做过类似的处理。指点小弟一点,小弟感激不尽,或者有什么好的建议给我,我也感激不尽。



...全文
140 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
roger_ding 2004-11-05
  • 打赏
  • 举报
回复
TYR
{
}
CATCH_ALL(e)
{
}
END_CATCH_ALL
arryang 2004-11-05
  • 打赏
  • 举报
回复
try
catch我早试过了,它根本拦截不到什么异常就直接进入内核处理了
lzzqqq 2004-11-05
  • 打赏
  • 举报
回复
你自己代码的cath里什么也不处理也弹出对话框吗?
不太可能吧?
flyelf 2004-11-05
  • 打赏
  • 举报
回复
看看open会泡出什么异常
roger_ding 2004-11-05
  • 打赏
  • 举报
回复
try
{
your code
}
catch (...)
{
}
DentistryDoctor 2004-11-05
  • 打赏
  • 举报
回复
try/catch(...)

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧