AHK-共享内存

时间:2018-09-18 22:08:38

标签: autohotkey shared-memory

我正在尝试通过AutoHotKey读取特定应用程序共享的内存。

我知道共享内存在那里并且有值,因为我有可以很好地读取它的Python代码。

但是,在AHK中,无论实际数据是什么,我似乎每次运行都获得随机值。 代码如下:

Class ByteArrayPdfSplitter
    Inherits iText.Kernel.Utils.PdfSplitter

    Private currentOutputStream As MemoryStream

    Public Sub New(ByVal pdfDocument As iText.Kernel.Pdf.PdfDocument)
        MyBase.New(pdfDocument)
    End Sub

    Protected Overrides Function GetNextPdfWriter(ByVal documentPageRange As iText.Kernel.Utils.PageRange) As iText.Kernel.Pdf.PdfWriter
        currentOutputStream = New MemoryStream()
        Return New iText.Kernel.Pdf.PdfWriter(currentOutputStream)
    End Function

    Public ReadOnly Property CurrentMemoryStream As MemoryStream
        Get
            Return currentOutputStream
        End Get
    End Property

    Public Class DocumentReadyListender
        Inherits IDocumentReadyListener

        Private splitter As ByteArrayPdfSplitter

        Public Sub New(ByVal splitter As ByteArrayPdfSplitter)
            Me.splitter = splitter
        End Sub

        Public Sub DocumentReady(ByVal pdfDocument As iText.Kernel.Pdf.PdfDocument, ByVal pageRange As iText.Kernel.Utils.PageRange)
            pdfDocument.Close()
            Dim contents As Byte() = splitter.CurrentMemoryStream.ToArray()
            Dim pageNumber As String = pageRange.ToString()
        End Sub
    End Class

End Class

我知道该值只能是0或1,但是AHK给我的数字是3276855。 当消息框显示缓冲区中的StrGet结果时,不会打印任何内容。 我知道共享内存和视图是实际值,而不是0,因此调用应该成功。

我做错什么了吗?

0 个答案:

没有答案