In VB(A) geht das so:
Code
Sub test()
Dim TheApplication As Application
Dim TheActiveDrawing As Drawing
Dim GraphicsCollection As Graphics
Dim NewGraphic As Graphic
Set TheApplication = IMSIGX.Application
Set TheActiveDrawing = TheApplication.ActiveDrawing
Set GraphicsCollection = TheActiveDrawing.Graphics
Set NewGraphic = GraphicsCollection.AddLineSingle(1, 1, 0, 1, 10, 0)
Set NewGraphic = GraphicsCollection.AddLineSingle(1, 10, 0, 10, 10, 0)
Set NewGraphic = GraphicsCollection.AddLineSingle(10, 10, 0, 10, 1, 0)
Set NewGraphic = GraphicsCollection.AddLineSingle(10, 1, 0, 1, 1, 0)
End Sub
Alles anzeigen
Mit den AutoIt-DLL-Funktionen DLLCall, DLLOpen habe ich das nicht adaptiert bekommen.
Wie im VBA-Code zu sehen ist, wird mit dem Aufruf der IMSIGX.dll ein Objekt zurückgegeben, was wohl mit den AutoIt-DLL-Funktionen nicht geht.
Wie könnte man das realisieren?
Mit der AutoIt-COM-Funktionalität (GetObject usw.) kann ich erfolgreich direkt auf das Programm (exe) zugreifen, aber es ist dann recht langsam. Der Zugriff über die COM-Schnittstellen-DLL wäre als "InProg-Server" viel schneller.
Hier noch ein paar Screenshots von der VB-IDE, wenn man im Schrittbetrieb die komplizierte Struktur des referenzierten Objekts der COM-Schnittstellen-DLL "aufblättert":
Grüsse aus Berlin
PSblnkd