Morgen, ich habe eine prinzipielle Frage zu Visual Basic for Application. Ich habe ein Programm welches VBA Scripte/Makros/Add-Ins unterstützt (Corel Draw). Wie kann ich jetzt mit einem beliebigen Zweitprogramm (in Java, C oder C++ ... geschrieben) mithilfe von VBA auf Corel "zugreifen" ? Corel <--> VBA <--> ???? <--> externes Programm Ich hoffe das ist jetzt keine zu dämliche Frage. Ich scheitere halt immer an den "Umgebungsprobleme", die rudimentäre Programmierung ist letztendlich kein Problem. Gruß Christoph
Du könntest Programme mit Parameter aufrufen, z.B. Shell("mode.com com1 baud=115200 parity=n data=8 stop=1 to=on xon=off dtr=off rts=off", vbHide) Oder wie wäre es mit eine TCP/IP-Socketverbindung zwischen den Programmen? (Über eine Loopback IP-Adresse 127.0.0.1)
Klingt gut, habe ich aber noch nie gemacht. Die Socketverbindung wäre sogar cool um das ganze System ortunabhängig zu gestalten. Das müsste ich aber erst einmal ausprobieren um herauszufinden was ich daran alles noch nicht verstehe ;-) Aber einen direkten Weg gibt es nicht?
>Aber einen direkten Weg gibt es nicht?
Was verstehst Du unter direkt? Wenn Du von einer Applikation aus direkt
auf den Speicherbereich einer anderen Applikation zugreifen möchtest: =>
Nein!
Kommunikation zwischen Applikationen über TCP oder eventuell auch UDP
ist unter Windows fie Loopback-IP recht schnell und effizient (Sicher
besser als über Dateien auf Disks)
Wenn Corel per VBA programmierbar ist, dann kann es auch mit Automation programmiert werden, Stichwörter sind hier ActiveX, (D)COM und COM+. Werden diese Schnittstellen genutzt, muss VBA gar nicht eingesetzt werden, denn das, was mit VBA gemacht wird, kann dann in ähnlicher Weise auch aus der anderen Programmiersprache heraus gesteuert werden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.