我正在尝试通过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,因此调用应该成功。
我做错什么了吗?