怎样实时捕获系统错误?
请问怎样捕获系统出现的错误,如应用程序的错误,在XP的"控制面板"→"管理工具"→"事件查看器"中能查看"应用程序"、"系统"和"安全性"三个事件类目,我希望用VB实时监督这些事件,不知道是否可行,如果可行在其他操作系统中有什么不同的地方?还望指教! 问题点数:50、回复次数:4Top
1 楼cdxiaoke(子星)回复于 2005-01-24 13:14:11 得分 0
另外,当应用程序出现错误,怎样让它结束?Top
2 楼yo_jo(跳出盒子)回复于 2005-01-24 14:02:04 得分 50
1. 可以用微软Resource Kit工具箱中的dumpel.exe工具将日志文件导出为文本,然后再进行分析。关于实时监督,则要看你导出的时间间隔了,建议使用线程来做。
----------------------------------------------------------------------------------------
dumpel的格式为:
dumpel -f file [-s \server] [-l log [-m source]] [-e n1 n2 n3..] [-r] [-t] [-dx]
-s \server 输出远程计算机日志,如果是本地,这个可以省略。
-f filename 输出日志的位置和文件名。
-l log log 可选为System,Security,Application,可能还有别的如DNS等。
----------------------------------------------------------------------------------------
http://www.microsoft.com/windows2000/techinfo/reskit/default.asp
----------------------------------------------------------------------------------------
2. 当应用程序出现错误,如果不是死循环,操作系统应该会自动终止它的。如果要人为强行终止一个应用程序,可以使用Taskkill的方法:
----------------------------------------------------------------------------------------
Taskkill的格式为:
Taskkill [/s Computer] [/u Domain\UserName [/p Password]] {/fi FilterName [{/pid ProcessID | /im ImageName}] | /pid ProcessID | /im ImageName} [/f] [/t]
s、/u、/p的意义与 tasklist相同。
/fi FilterName——指定将要终止或不终止的进程的类型;
/pid ProcessID——指定将终止的进程的ID号;
/im ImageName——指定将终止的进程名称,可使用通配符 (?和* );
/f——指定将强制终止的进程。对于远程进程可忽略此参数,所有远程进程都将被强制终止。
例: Taskkill /s jsj4 /f /im notepad.exe
强行终止远程计算机jsj4上已打开的记事本程序。
----------------------------------------------------------------------------------------Top
3 楼yo_jo(跳出盒子)回复于 2005-01-24 14:04:09 得分 0
强行终止应用程序的帖子:
http://community.csdn.net/Expert/topic/3245/3245384.xml?temp=2.106875E-02Top
4 楼cdxiaoke(子星)回复于 2005-01-25 12:30:26 得分 0
谢谢,结贴给分!Top




