首页 > 解决方案 > 为什么 vb .net 在 .txt 中重复写入同一行文本?

问题描述

我创建了一个 .dll 文件作为 AutoCAD 的插件。每次发生事件时,它都会在 .txt 中写入有关它的内容。为什么在.txt中重复写入同一行文本?

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices

    Public Class Class1

       <CommandMethod("AddAppEvent")>
       Public Sub AddAppEvent()

           AddHandler Application.SystemVariableChanged, AddressOf appSysVarChanged

    End Sub

    Public Sub appSysVarChanged(ByVal senderObj As Object,
                                ByVal sysVarChEvtArgs As Autodesk.AutoCAD.ApplicationServices.
                                SystemVariableChangedEventArgs)

        Dim oVal As Object = Application.GetSystemVariable(sysVarChEvtArgs.Name)

        Dim file As System.IO.StreamWriter
        file = My.Computer.FileSystem.OpenTextFileWriter("C:\Users\rita.aguiar\Documents\AutoCAD plug-in\Registo de Eventos.txt", True)
        file.WriteLine("O utilizador " & Environment.UserName & " encerrou o AutoCAD às " & DateTime.Now.ToString("hh:mm, dddd, dd MMMM yyyy"))
        file.Close()

    End Sub

End Class

.txt 文件中的示例输出:

这里写了 4 次,有时写得更多,有时写得更少。为什么会发生这种随机的事情?有没有人有同样的问题?我只想让它写一次。

O utilizador rita.aguiar encerrou o AutoCAD às 01:11, segunda-feira, 10 setembro 2018

O utilizador rita.aguiar encerrou o AutoCAD às 01:11, segunda-feira, 10 setembro 2018

O utilizador rita.aguiar encerrou o AutoCAD às 01:11, segunda-feira, 10 setembro 2018

O utilizador rita.aguiar encerrou o AutoCAD às 01:11, segunda-feira, 10 setembro 2018

非常感谢。

标签: .netvb.neteventsautocad

解决方案


我正在关注此页面:http : //docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer 的%20Guide/index.html 这甚至都不对。如果我想注册 autocad 的关闭,我需要使用 acadBeginQuit 事件,而不是该页面中所说的系统变量。


推荐阅读