请问怎样捕获系统出现的错误,如应用程序的错误,在XP的"控制面板"→"管理工具"→"事件查看器"中能查看"应用程序"、"系统"和"安全性"三个事件类目,我希望用VB实时监督这些事件,不知道是否可行,如果可行在其他操作系统中有什么不同的地方?还望指教!

解决方案 »

  1.   

    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上已打开的记事本程序。
    ----------------------------------------------------------------------------------------
      

  2.   

    强行终止应用程序的帖子:http://community.csdn.net/Expert/topic/3245/3245384.xml?temp=2.106875E-02